XL 2016 Code VBA

DAMIEN CERESER

XLDnaute Nouveau
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 ?

Merci beaucoup
 
Solution
Bonjour le fil, DAMIEN CERESER, sylvanu (re)

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

sylvanu

XLDnaute Barbatruc
Supporter XLD
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. ;)
 

DAMIEN CERESER

XLDnaute Nouveau
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. ;)

Merci beaucoup Sylvanu ! C'est exactement ce que je voulais ! Je suis trop content !
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, DAMIEN CERESER, sylvanu (re)

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
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 328
Membres
103 180
dernier inscrit
Vcr