liste deroulante macro, definition formule source

  • Initiateur de la discussion Initiateur de la discussion akrillon
  • 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 !

akrillon

XLDnaute Nouveau
Bonjour le forum

Je désir crée une liste déroulante par macro, le code est bon pas de soucis, je l´ai récupéré via l´enregistreur de formule.

HTML:
 With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=????????"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

mon probleme est dans la définition de la formule source.
la selection que je voudrais est celle ci

HTML:
Cells(2, Columns.Count).End(xlToLeft).Select
Range(ActiveCell, ActiveCell.End(xlDown)).Select

Si quelqu´un pouvais m´aider á l´integrer dans celle du dessus ce serais super 🙂
PS : j´abuse peut etre mais si dans la selection on pouvais definir "Selectionner que les cellules non vides" pour ne pas avoir de blanc dans ma liste deroulante ce serait encore mieux mais bon je ne suis pas sur que ce sois vraiment possible.

En tout cas merci á tous de votre participation

Merci d´avance 🙂
 
Re : liste deroulante macro, definition formule source

Bonjour ,

Un petit fichier de travail nous permettrait de passer moins de temps à mettre en place l'environnement de travail et donc de pouvoir faire les tests qui vont bine avant de te livrer .
 
Re : liste deroulante macro, definition formule source

Bonjour Akrillon, bonjour le forum,

Essaie comme ça :

Code:
Sub Macro1()
Dim COL As Integer 'déclare la variable COL (COLonne)
Dim PL As Range 'déclare la variable PL (PLage)

COL = Cells(2, Application.Columns.Count).End(xlToLeft).Column 'définit la colonne COL
Set PL = Range(Cells(2, COL), Cells(Application.Rows.Count, COL).End(xlUp)) 'définit la plage PL

With Range("O2").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=" & PL.Address
        .IgnoreBlank = False 'ça ne marche pas je ne sais pas pourquoi ?
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
End With
End Sub

Normalement la ligne : .ignoreBlank = False devrait ne pas afficher les blancs mais, je ne sais pas pourquoi, que l'on mettre True ou False, ça les affiche...

[Édition]
Bonjour Çamarchepas, on s'est croisé...
 
Re : liste deroulante macro, definition formule source

Bonjour Robert,

Merci de t´as réponse,
tout marche excepté effectivement les blancs,

En realité si cela fonctionne, je crois que cette options annule la possibilité d´entrer manuellenent dans la liste déroulante un "blanc" ou non.

Merci en tout cas pour le systeme de formule je vais l´adapter en consequence merci á tous!
 
Re : liste deroulante macro, definition formule source

Re , Bonjour Robert,

Et comme ceci :

Code:
Sub Button1_Click()
 Dim Lieu As String
 Lieu = Split(ActiveCell.Address, "$")(1) & 2 & ":" & Range(Split(ActiveCell.Address, "$")(1) & 2).End(xlDown).Address
 With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
          Formula1:="=" & Lieu
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With
End Sub
 
- 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

Discussions similaires

Réponses
3
Affichages
919
Réponses
16
Affichages
3 K
Réponses
12
Affichages
1 K
Réponses
1
Affichages
1 K
Réponses
2
Affichages
885
Réponses
6
Affichages
1 K
Retour