aresca ha scritto:
.... Per cortesia, spiegami come faccio a fare in modo che la macro punti alle celle/colonne del mio foglio... Cioè, quali sono le sezioni di codice che devo modificare per far si che il controllo venga eseguito non nelle colonnee A e B ma su altre? Quale anche la parte di codice da modificare per far eseguire il controllo in una delimitata zona del foglio?
salve
premessa:
Sarebbe opportuno che nelle richieste si facciano esempi pertinernti alle proprie necessità e non inventare situazioni diverse da essi.
Per puntare a celle di colonne diverse definite Target l'istruzione da cambiare è questa:
If Target.Column = 1 Then
che sta a significare: se la cella oggetto della modificata si trova nella colonna 1 (A) esegui il codice
se la tua colonna non è più la A ma la C dovrai modificare la riga come segue:
If Target.Column = 3 Then
Nel caso in cui la cella legata al Target non fosse più neanche la cella della colonna adiacente (D)
dovrai modificare anche questa riga: Target.Offset(0, 1).Value = x che significa:spostati di una colonna
rispetto al Target ed inserisci il valore della variabile X
Nel caso infine di un'area ben definita del foglio dovra usare l'istruzione "Intersect"
supponendo che l'area interessata al controllo fosse il range(C1:C50) , il codice andrebbe scritto come segue:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim miorange As Range
Set miorange = Application.Intersect(Target, Range("C1:C50"))
If Not (miorange Is Nothing) Then
If Target.Value <> "" Then
x = InputBox("immetti il valore per la cella" & Target.Offset(0, 1).Address)
If x = "" Then
MsgBox ("non immesso alcun valore per la cella" & Target.Offset(0, 1).Address)
Target.Value = ""
Else
Target.Offset(0, 1).Value = x
End If
End If
End If
Set miorange = Nothing
End Sub
saluti
Giap