Création listes de validation en VB
Résolu/Fermé
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
-
19 mai 2012 à 16:24
sipherion Messages postés 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 - 5 oct. 2012 à 13:36
sipherion Messages postés 1809 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 - 5 oct. 2012 à 13:36
A voir également:
- Création listes de validation en VB
- Ethernet n'a pas de configuration ip valide - Guide
- Vb - Télécharger - Langages
- Creation compte gmail - Guide
- Creation de compte google - Guide
- Creation de site web - Guide
7 réponses
Eltorosam137
Messages postés
28
Date d'inscription
samedi 15 octobre 2011
Statut
Membre
Dernière intervention
19 mai 2012
7
19 mai 2012 à 16:38
19 mai 2012 à 16:38
Bonjour,
Moi pour obtenir des liste déroulantes qui nécessitent deux filtres avancé sur une plage dont je récupère les valeurs par "copier les valeurs dans une autre plage", de cette plage j'effectue un second filtre avancé avec la même manip
pour ne pas avoir de bloc vide dans ta liste déroulante tu dois utiliser une méthode xldown pour descendre jusqu'en bas de toutes tes données et ajouter toutes tes valeurs en remontant de cellule en cellule avec la méthode add jusqu'au moment ou la cellule est égale au contenu du sommet de ta colonne et ainsi tu as le contenu résultant de ton filtre avancé
Moi pour obtenir des liste déroulantes qui nécessitent deux filtres avancé sur une plage dont je récupère les valeurs par "copier les valeurs dans une autre plage", de cette plage j'effectue un second filtre avancé avec la même manip
pour ne pas avoir de bloc vide dans ta liste déroulante tu dois utiliser une méthode xldown pour descendre jusqu'en bas de toutes tes données et ajouter toutes tes valeurs en remontant de cellule en cellule avec la méthode add jusqu'au moment ou la cellule est égale au contenu du sommet de ta colonne et ainsi tu as le contenu résultant de ton filtre avancé
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
19 mai 2012 à 17:12
19 mai 2012 à 17:12
Salut Eltorosam137, et merci pour ta réponse :)
Mais je ne comprends pas ce que tu veux dire, tu parles de filtres automatiques avancés alors que ce n'est pas du tout le sujet :-)
Cela concerne la création d'une liste de valeur pour la validation du contenu d'une cellule.
Cependant, j'aimerais bien en savoir un peu plus sur cette méthode xldown et add, si tu pouvais me donner un exemple ce serait sympas ;-)
Mais je ne comprends pas ce que tu veux dire, tu parles de filtres automatiques avancés alors que ce n'est pas du tout le sujet :-)
Cela concerne la création d'une liste de valeur pour la validation du contenu d'une cellule.
Cependant, j'aimerais bien en savoir un peu plus sur cette méthode xldown et add, si tu pouvais me donner un exemple ce serait sympas ;-)
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
20 mai 2012 à 14:11
20 mai 2012 à 14:11
Petit up svp :-)
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
22 mai 2012 à 14:31
22 mai 2012 à 14:31
Up ! :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
27 mai 2012 à 14:11
27 mai 2012 à 14:11
Up !
Utilisateur anonyme
Modifié par Lupin.PC4 le 27/05/2012 à 15:38
Modifié par Lupin.PC4 le 27/05/2012 à 15:38
Bonjour,
Voici comment je procède :
n.b. Serie est ici une adresse explicite, ex.: $G$53:$H$78 sous
forme de string.
Je recommande de construire la formule à côté :
trouver la concordance de :
"=R[36]C[" & projet - 10 & "]:R[" & a - 8 & "]C[" & projet - 10 & "]"
Dim Serie As String
Serie = "=R[36]C[" & projet - 10 & "]:R[" & a - 8 & "]C[" & projet - 10 & "]"
à transformer vers
Serie = "=$E$36:$E$54"
quelque chose comme :
Serie = "=$E$" & CStr(projet - 10) & ":$" & CStr( projet - 10 ) & "$" & CStr( a - 8 )
dans mon classeur remplie de types pour l'adressage j'ai
3 étages de liste déroulante qui ont cette spécificité de
dépendre l'une de l'autre, le choix de la première influe
le contenu de la deuxième et le choix de la deuxième
influe le contenu de la troisième et le choix de la troisième
inscrit un montant dans une colonne de même ligne.
l'adressage RC est plutôt difficile à manipuler, plus abstrait j'en convient.
Cdt
Lupin
Voici comment je procède :
' Affectation de la série à la cellule Serie = "" Serie = PtrRecherche.Niv1OutPtr.Niv2OutSeries Cible.Offset(0, adrBFctColA_Spec).Validation.Delete Cible.Offset(0, adrBFctColA_Spec).Validation.Add Type:=xlValidateList, _ AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, _ Formula1:=Serie
n.b. Serie est ici une adresse explicite, ex.: $G$53:$H$78 sous
forme de string.
Je recommande de construire la formule à côté :
trouver la concordance de :
"=R[36]C[" & projet - 10 & "]:R[" & a - 8 & "]C[" & projet - 10 & "]"
Dim Serie As String
Serie = "=R[36]C[" & projet - 10 & "]:R[" & a - 8 & "]C[" & projet - 10 & "]"
à transformer vers
Serie = "=$E$36:$E$54"
quelque chose comme :
Serie = "=$E$" & CStr(projet - 10) & ":$" & CStr( projet - 10 ) & "$" & CStr( a - 8 )
dans mon classeur remplie de types pour l'adressage j'ai
3 étages de liste déroulante qui ont cette spécificité de
dépendre l'une de l'autre, le choix de la première influe
le contenu de la deuxième et le choix de la deuxième
influe le contenu de la troisième et le choix de la troisième
inscrit un montant dans une colonne de même ligne.
l'adressage RC est plutôt difficile à manipuler, plus abstrait j'en convient.
Cdt
Lupin
sipherion
Messages postés
1809
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
5 oct. 2012 à 13:36
5 oct. 2012 à 13:36
Bonjour Lupin, et désolé d'avoir mis si longtemps à répondre, pas mal de soucis au boulot ces derniers mois ;-)
J'ai finalement abandonné ce projet complexe ; il y a peu de liste déroulantes à faire automatiquement, j'ai donc créé un code spécifique pour chacune d'elle en posant une condition pour chaque sélection initiale.
En gros je fais :
Etc, jusqu'au End If
Merci encore de ton aide :-)
J'ai finalement abandonné ce projet complexe ; il y a peu de liste déroulantes à faire automatiquement, j'ai donc créé un code spécifique pour chacune d'elle en posant une condition pour chaque sélection initiale.
En gros je fais :
If Range("F12").Value = "Liste1" Then With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=$P$4:$P$4" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With ElseIf Range("F12").Value = "Liste2" Then With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=$Q$4:$Q$4" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With ElseIf ...............
Etc, jusqu'au End If
Merci encore de ton aide :-)