none
Saltare cella RRS feed

  • Domanda

  • Ciao a tutti. Ho un problema con VBA Excel.

    Premessa: ho un elenco che parte da A4 (lunghezza variabile) con colonne da A a K.

    Le celle appartenenti alle colonne E ed F possono assumere valori Double, con "" = 0.

    Qualora, ad esempio, E5 + F5 <> 0 ed io provassi a selezionare A5 automaticamente il focus dovrebbe passa alla riga sottostante (A6); cosi anche per B5 (in B6) e C5 (in C6).

    La regola dovrebbe valere a partire da A4 e fino a fine elenco. 

    In pratica vorrei rendere inaccessibile le celle A,B e C qualora E+F>0.

    Grazie a tutti.

    • Spostato Mila Daniel Ovidiu martedì 7 settembre 2010 08:21 VBA (Da:Microsoft Visual Basic Forum)
    lunedì 6 settembre 2010 13:13

Risposte

  • Ciao a tutti. Ho un problema con VBA Excel.

    Premessa: ho un elenco che parte da A4 (lunghezza variabile) con colonne da A a K.

    Le celle appartenenti alle colonne E ed F possono assumere valori Double, con "" = 0.

    Qualora, ad esempio, E5 + F5 <> 0 ed io provassi a selezionare A5 automaticamente il focus dovrebbe passa alla riga sottostante (A6); cosi anche per B5 (in B6) e C5 (in C6).

    La regola dovrebbe valere a partire da A4 e fino a fine elenco. 

    In pratica vorrei rendere inaccessibile le celle A,B e C qualora E+F>0.

    Grazie a tutti.


    Questo evento, da copia/incollare nel modulo di codice *del foglio* dove vuoi questa cosa, dovrebbe fare quanto chiedi:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

        Dim rng As Range
        Dim lRiga As Long
       
        lRiga = Me.Range("A" & Rows.Count).End(xlUp).Row
        Set rng = Me.Range("A6:C" & lRiga)
       
        If Target.Cells.Count > 1 Then Exit Sub
        If Not Intersect(Target, rng) Is Nothing Then
            If Me.Cells(Target.Row, 5).Value + _
                Me.Cells(Target.Row, 6).Value > 0 Then
                Target.Offset(1, 0).Select
            End If
        End If
           
        Set rng = Nothing
       
    End Sub

    Immagino, tu non lo dici, che la colonna A abbia sempre un dato. Non ho capito questa tua frase: Le celle appartenenti alle colonne E ed F possono assumere valori Double, con "" = 0. Una cella ha un valore numerico quando contiene un numero. "" è una stringa vuota e non possiamo utilizzarla in nessuna operazione matematica!

     


    Mauro Gamberini - Microsoft© MVP(Excel)
    http://www.maurogsc.eu/
    giovedì 4 novembre 2010 17:21