Bonjour à tous, je suis tout nouveau sur le forum. Je ne suis pas forcément un expert sur Excel et en VBA, mais je me débrouille pour trouver sur différents forums des formules et des bouts de codes pour améliorer mes tableaux.
Pour le coup, je bute sur la macro ci-dessous:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("F2")) Is Nothing Then
Range("G2").Value = ""
Range("H2").Value = ""
End If
If Not Intersect(Target, Range("G2")) Is Nothing Then
Range("H2").Value = ""
End If
End Sub
Elle fonctionne très bien, mais je souhaite l'appliquer exactement comme ça sur 1000 lignes. Quelqu'un peut-il m'aider ?
Si j'ai bien compris la problématique
Une variante avec un seul IF
VB:
Private Sub Worksheet_SelectionChange(ByVal T As Range)
If Not Intersect(T, Range("F2:G1000")) Is Nothing Then
T.Offset(, 1).Resize(, 2 - (T.Column Mod 2)) = Empty
End If
End Sub
Bonjour Damien, et bienvenu sur le forum
Mettez plutôt votre code en forme, c'est plus lisible pour le lecteur ( avec l'outil ci dessus : </> )
Ci dessous un essai.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("F2:F1000")) Is Nothing Then
Range("G" & Target.Row).Value = ""
Range("H" & Target.Row).Value = ""
End If
If Not Intersect(Target, Range("G2:G1000")) Is Nothing Then
Range("H" & Target.Row).Value = ""
End If
End Sub
Target.row donne le N° de ligne, Target.column le N° de colonne.
En espérant que ça fasse ce que vous voulez.
Bonjour Damien, et bienvenu sur le forum
Mettez plutôt votre code en forme, c'est plus lisible pour le lecteur ( avec l'outil ci dessus : </> )
Ci dessous un essai.
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("F2:F1000")) Is Nothing Then
Range("G" & Target.Row).Value = ""
Range("H" & Target.Row).Value = ""
End If
If Not Intersect(Target, Range("G2:G1000")) Is Nothing Then
Range("H" & Target.Row).Value = ""
End If
End Sub
Target.row donne le N° de ligne, Target.column le N° de colonne.
En espérant que ça fasse ce que vous voulez.
Si j'ai bien compris la problématique
Une variante avec un seul IF
VB:
Private Sub Worksheet_SelectionChange(ByVal T As Range)
If Not Intersect(T, Range("F2:G1000")) Is Nothing Then
T.Offset(, 1).Resize(, 2 - (T.Column Mod 2)) = Empty
End If
End Sub