Bonjour,
Je voudrais savoir s'il est possible qu'un userform s'ouvre sous condition sur la feuille excel.
Je m'explique:
Je veux que mon userform s'ouvre si pour deux ligne, les valeurs des colonnes A et B sont identiques.
Merci de votre aide.
Bonjour,
Je voudrais savoir s'il est possible qu'un userform s'ouvre sous condition sur la feuille excel.
Je m'explique:
Je veux que mon userform s'ouvre si pour deux ligne, les valeurs des colonnes A et B sont identiques.
Merci de votre aide.
oui c'est possible
tu va dans les macro associé a ta feuille ensuite tu tape le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Worksheet_Change(ByVal Target As Range) et tu met ta condition ici sur les cellules ou colonnes End Sub
Merci pour ton aide imaril.
Cependant, je n'arrive pas à obtenir ce que je veux.
Si j'ai bien compris, j'ai utilisé ton code dans le code de "ThisWorkBook"
Voila ce que j'ai ecrit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long Dim j As Long Dim lastrow As Long lastrow = ThisWorkbook.Worksheets(1).Range("A65536").End(xlUp).Row For i = 1 To lastrow For j = i To lastrow If Cells(1, i) = Cells(1, j) And Cells(2, i) = Cells(2, j) Then UserForm.Show Next j Next i Else End Sub
Mais ça ne fonctionne pas lorsque je saisi les mêmes valeurs pour les colonnes A et B sur 2 lignes différentes rien ne se passe ...![]()
il faut le mettre ton code dans :feuille1("ton nom de feuille") au lieu de thisworkbook et ca devrai fonctionner
oui je me suis rendu compte qu'il fallait le mettre dans "feuil1" mais ça ne marche toujours pas...
En fait avec ce code la fenetre apparait a chaque modification de la feuille excel...normal vu que pour i=1 et j=1 je compare la cellule avec elle même!
J'ai donc modifié la 7eme ligne de code avec :
for j=i+1 to lastrow
Mais là plus rien ne se passe (en créant le doublon ) , je ne comprend pas...
ca devrai fonctionner
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long Dim j As Long Dim lastrow As Long If Target.Column = 1 Or Target.Column = 2 Then lastrow = ThisWorkbook.Worksheets(1).Range("A65536").End(xlUp).Row For i = 1 To lastrow For j = i To lastrow If Cells(1, i) = Cells(1, j) And Cells(2, i) = Cells(2, j) Then UserForm.Show Next j Next i End If End Sub
mais je comprend pas vraiment pourquoi tu met :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 For i = 1 To lastrow For j = i To lastrow If Cells(1, i) = Cells(1, j) And Cells(2, i) = Cells(2, j) Then UserForm.Show Next j Next i
Partager