Liste déroulante VBA

  • Initiateur de la discussion Initiateur de la discussion JoeGillian
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

JoeGillian

Guest
Mes amis,

Une nouvelle énigme perturbe mes nuits pendant la journée: il s'agit de créer une liste de validation dans une colonne intitulée "Version cible SIG"; cependant cette colonne peut ne pas se trouver à la même place.
Cette liste , créée via Données/validation offre quatre choix présents dans le fichier joint.

Je suis en train de chercher de la façon suivante: détecter la case "Version cible SIG" pour insérer la liste en-dessous .
Est-il possible de l'appliquer jusqu'à la dernière ligne renseignée(sur une variante de ActiveCell.Currentregion)?
Enfin , il serait préférable que la matrice servant de base à la liste n'apparaisse pas sur la feuille: peut-on l'écrire directement en VBA, et si oui, comment?

Merci pour vos idées que vais allègrement reprendre à mon compte!Lol
 

Pièces jointes

Re : Liste déroulante VBA

Bonjour JoeGillian,
Voici une petite macro qui trouve la bonne colonne et mets la validation jusqu'a la dernière ligne de col A

Bruno

Code:
Sub maliste()
col = Application.Match("Version cible SIG", [Feuil1!A1:IV1], 0)
If IsError(col) Then MsgBox "pas trouvé!"
 'Cells.Validation.Delete
  lig = Range("A" & Rows.Count).End(3).Row
With Range(Cells(2, col), Cells(lig, col)).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="Version 4.3 Développement,Version 4.3 Production,Version 5.0 Développement,Version 5.0 Production"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub
 
Re : Liste déroulante VBA

Merci Youky d'avoir pris un peu de ton temps et d'avoir été aussi rapide à répondre.
J'ai néanmoins encore quelques soucis :
- la colonne ciblée n'est pas trouvée - en revanche ta MSGBox s'affiche bien. Au débogage , voici la ligne qui pose problème:
With Range(Cells(2, col), Cells(lig, col)).Validation
-Je ne suis pas sûr d'avoir bien compris: la validation est-elle effectuée dans la colonne A?

Pendant ce temps je fais des recherches sur le code suivant pour trouver la colonne "Version cible SIG":
Dim cell As Range
Dim col As Integer
Dim v As Variant

For Each cell In Rows(1).Cells
v = cell.Value
Debug.Print v
If v = "" Then Exit For
Select Case v
Case "Version cible SIG"

Je planche sur la suite; en tout cas merci de m'avoir aidé.

A+
 
Re : Liste déroulante VBA

Sire Youky,

J'ai mis le temps mais vraiment:MMMMMeeeeeeeeeeeeeeeeeeeeeeeeeerci!!!
La macro fonctionne du tonnerre.
La classe.
Ah, je sais pas si je te l'ai dit , mais:Merci!
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour