liste deroulante macro, definition formule source

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 :)
 

camarchepas

XLDnaute Barbatruc
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 .
 

akrillon

XLDnaute Nouveau
Re : liste deroulante macro, definition formule source

Bonjour camarchepas,

Merci de te pencher la dessus.

Voila un fichier exemple
 

Pièces jointes

  • test1.xlsm
    21.9 KB · Affichages: 36
  • test1.xlsm
    21.9 KB · Affichages: 38
  • test1.xlsm
    21.9 KB · Affichages: 41

Robert

XLDnaute Barbatruc
Repose en paix
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é...
 

akrillon

XLDnaute Nouveau
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!
 

camarchepas

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
314 644
Messages
2 111 528
Membres
111 189
dernier inscrit
Laurent.