Ciao a tutti,
ho rispolverato questa vecchio post e ho provato a riadattare la macro di Flash con la correzione di Anthony, ma essendo cambiate le esigenze non riesco a fare lavorare la macro nell'ordine corretto..
Spiego le nuove caratteristiche del foglio
immetto un valore in B4, >>>>>>>>>>>>>>>>>>>>> premo invio
devo saltare nella cella D4, compilo >>>>>>>>>>> premo invio
devo saltare nella cella F4, compilo >>>>>>>>>>> premo invio
devo saltare nella cella B7, compilo >>>>>>>>>>> premo invio
devo saltare nella cella D7, compilo >>>>>>>>>>> premo invio
devo saltare nella cella F7, compilo >>>>>>>>>>> premo invio
devo saltare nella cella B10, compilo >>>>>>>>>>> premo invio
devo saltare nella cella D10, compilo >>>>>>>>>>> premo invio
devo saltare nella cella B13, compilo >>>>>>>>>>> premo invio
devo saltare nella cella D13, compilo >>>>>>>>>>> premo invio
devo saltare nella cella F13, che nella fattispecie è una cella unita con intervallo F10:H13
Ho creato questa Macro ma non lavora correttamente, nel senso che dopo aver compilato i primi 3 campi (fino ad F4) passa anche per H4 e non va bene... Provo a postarla e confido in un vostro aiuto
- Codice: Seleziona tutto
CheckAreaB = "B4:B13"
CheckAreaD = "D4:D13"
CheckAreaF = "F4:F10"
CheckAreaH = "H7"
If Not Application.Intersect(Target, Range(CheckAreaB)) Is Nothing Then
Target.Offset(0, 2).Select
End If
If Not Application.Intersect(Target, Range(CheckAreaD)) Is Nothing Then
Target.Offset(0, 2).Select
End If
If Not Application.Intersect(Target, Range(CheckAreaF)) Is Nothing Then
Target.Offset(3, -4).Select
Target.Offset(0, 2).Select
End If
If Not Application.Intersect(Target, Range(CheckAreaH)) Is Nothing Then
Target.Offset(3, -6).Select
End If
End Sub
Questo codice l'ho inseriro in coda a quest'altro
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Area As String, inArea As Range, myC As Range
'
Application.EnableEvents = False
If Target.Address = "$B$7" Then
Range("D7, F7, H7, B10, D10, B13, F10:H13").ClearContents
ElseIf Target.Address = "$D$7" Then
Range("F7, H7, B10, D10, B13, F10:H13").ClearContents
ElseIf Target.Address = "$B$4" Then
Range("D4,F4").ClearContents
End If
Application.EnableEvents = True
'
Area = "B7" '<<< l'area da convertire in maiuscolo
Set inArea = Application.Intersect(Target, Range(Area))
If Not inArea Is Nothing Then
Application.EnableEvents = False
For Each myC In inArea
If myC.Value <> "" Then
myC.Value = UCase(myC.Value)
End If
Next myC
Application.EnableEvents = True
End If