J'aimerais lier une liste d=E9roulante de choix en colonne C avec une liste=
de validation de donn=E9es en colonne B.
Quand un choix est fait en colonne B, automatiquement une liste d=E9roulant=
e est cr=E9=E9e en colonne C si on a plus d'une occurrence qui correspond a=
u choix effectu=E9 dans la liste de validation.
Seulement, j'ai un souci dans le code VBA pour sélectionner le premier élément de la deuxième liste en colonne C, s'il y a eu un changement dans la liste en colonne B :
Seulement, j'ai un souci dans le code VBA pour sélectionner le premier élément de la deuxième liste en colonne C, s'il y a eu un changement dans la liste en colonne B :
Seulement, j'ai un souci dans le code VBA pour sélectionner le premier élément de la deuxième liste en colonne C, s'il y a eu un changement dans la liste en colonne B :
http://cjoint.com/?EDsaLg0sSym
MichD
En supposant que j'ai compris la question,
Remplace cette ligne de code de la procédure en feuille module "BDD")
With Worksheets("Listes") Target.Offset(0, 1) = .Range("B2:B" & .Range("B65536").End(xlUp).Row).Item(1) End With
Apitos
Bonjour Michon,
J'aimerais afficher dans la deuxième liste de validation (Colonne C Feuil le BDD) le premier élément de la plage "TTT" correspondante au choix fa it dans la première liste de validation (Colonne B feuille BDD).
Si je choisi "A" le premier élément affiché dans la deuxième liste sera "1A"
Si je choisi "B", le premier élément affiché sera "1B"
"1C" pour le choix de "C" "1D" pour le choix de "D"...etc.
Bonjour Michon,
J'aimerais afficher dans la deuxième liste de validation (Colonne C Feuil le BDD) le premier élément de la plage "TTT" correspondante au choix fa it dans la première liste de validation (Colonne B feuille BDD).
Si je choisi "A" le premier élément affiché dans la deuxième liste sera "1A"
Si je choisi "B", le premier élément affiché sera "1B"
"1C" pour le choix de "C"
"1D" pour le choix de "D"...etc.
J'aimerais afficher dans la deuxième liste de validation (Colonne C Feuil le BDD) le premier élément de la plage "TTT" correspondante au choix fa it dans la première liste de validation (Colonne B feuille BDD).
Si je choisi "A" le premier élément affiché dans la deuxième liste sera "1A"
Si je choisi "B", le premier élément affiché sera "1B"
"1C" pour le choix de "C" "1D" pour le choix de "D"...etc.
MichD
La procédure au complet du module feuille de la feuille BDD
'----------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim X As Variant If Target.Column = 2 Then If Target.Count = 1 And Target <> "" Then With Worksheets("Listes") X = Application.Match(Target, .Range("A2:A" & .Range("A65536").End(xlUp).Row), 0) If Not IsError(X) Then Application.EnableEvents = False Target.Offset(0, 1) = .Range("B2:B" & .Range("B65536").End(xlUp).Row).Item(X) Application.EnableEvents = True End If End With End If End If End Sub '-----------------------------------------------------
La procédure au complet du module feuille de la feuille BDD
'-----------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim X As Variant
If Target.Column = 2 Then
If Target.Count = 1 And Target <> "" Then
With Worksheets("Listes")
X = Application.Match(Target, .Range("A2:A" & .Range("A65536").End(xlUp).Row), 0)
If Not IsError(X) Then
Application.EnableEvents = False
Target.Offset(0, 1) = .Range("B2:B" & .Range("B65536").End(xlUp).Row).Item(X)
Application.EnableEvents = True
End If
End With
End If
End If
End Sub
'-----------------------------------------------------
La procédure au complet du module feuille de la feuille BDD
'----------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim X As Variant If Target.Column = 2 Then If Target.Count = 1 And Target <> "" Then With Worksheets("Listes") X = Application.Match(Target, .Range("A2:A" & .Range("A65536").End(xlUp).Row), 0) If Not IsError(X) Then Application.EnableEvents = False Target.Offset(0, 1) = .Range("B2:B" & .Range("B65536").End(xlUp).Row).Item(X) Application.EnableEvents = True End If End With End If End If End Sub '-----------------------------------------------------
Apitos
Merci pour le code.
Seulement j'ai une erreur d'exécution sur cette ligne si le nombre de cel lules sélectionnées est supérieur 1.
If Target.Count = 1 And Target <> "" Then
Merci pour le code.
Seulement j'ai une erreur d'exécution sur cette ligne si le nombre de cel lules sélectionnées est supérieur 1.
Seulement j'ai une erreur d'exécution sur cette ligne si le nombre de cel lules sélectionnées est supérieur 1.
If Target.Count = 1 And Target <> "" Then
Jacquouille
toutes tes cel comptées sont-elles vides? Essaie avec OR au lieu de And .... and tu verras la différence
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "Apitos" a écrit dans le message de groupe de discussion :
Merci pour le code.
Seulement j'ai une erreur d'exécution sur cette ligne si le nombre de cellules sélectionnées est supérieur 1.
If Target.Count = 1 And Target <> "" Then
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com
toutes tes cel comptées sont-elles vides?
Essaie avec OR au lieu de And .... and tu verras la différence
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"Apitos" a écrit dans le message de groupe de discussion :
cebbb0c7-e5d2-4cd1-90d4-ecd6670b9958@googlegroups.com...
Merci pour le code.
Seulement j'ai une erreur d'exécution sur cette ligne si le nombre de
cellules sélectionnées est supérieur 1.
If Target.Count = 1 And Target <> "" Then
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
toutes tes cel comptées sont-elles vides? Essaie avec OR au lieu de And .... and tu verras la différence
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "Apitos" a écrit dans le message de groupe de discussion :
Merci pour le code.
Seulement j'ai une erreur d'exécution sur cette ligne si le nombre de cellules sélectionnées est supérieur 1.
If Target.Count = 1 And Target <> "" Then
--- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. http://www.avast.com
MichD
Comme ceci :
Private Sub Worksheet_Change(ByVal Target As Range) Dim X As Variant If Target.Column = 2 Then If Target.Count = 1 Then If Target <> "" Then With Worksheets("Listes") X = Application.Match(Target, .Range("A2:A" & .Range("A65536").End(xlUp).Row), 0) If Not IsError(X) Then Application.EnableEvents = False Target.Offset(0, 1) = .Range("B2:B" & .Range("B65536").End(xlUp).Row).Item(X) Application.EnableEvents = True End If End With End If End If End If End Sub
Comme ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim X As Variant
If Target.Column = 2 Then
If Target.Count = 1 Then
If Target <> "" Then
With Worksheets("Listes")
X = Application.Match(Target, .Range("A2:A" & .Range("A65536").End(xlUp).Row), 0)
If Not IsError(X) Then
Application.EnableEvents = False
Target.Offset(0, 1) = .Range("B2:B" & .Range("B65536").End(xlUp).Row).Item(X)
Application.EnableEvents = True
End If
End With
End If
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range) Dim X As Variant If Target.Column = 2 Then If Target.Count = 1 Then If Target <> "" Then With Worksheets("Listes") X = Application.Match(Target, .Range("A2:A" & .Range("A65536").End(xlUp).Row), 0) If Not IsError(X) Then Application.EnableEvents = False Target.Offset(0, 1) = .Range("B2:B" & .Range("B65536").End(xlUp).Row).Item(X) Application.EnableEvents = True End If End With End If End If End If End Sub
Apitos
Bonsoir,
Merci Michon.
Ne peut-on pas abréger ces trois lignes (Eviter les If) ?
If Target.Column = 2 Then If Target.Count = 1 Then If Target <> "" Then
Bonsoir,
Merci Michon.
Ne peut-on pas abréger ces trois lignes (Eviter les If) ?
If Target.Column = 2 Then
If Target.Count = 1 Then
If Target <> "" Then