Liste déroulante dans plusieurs cellules

Fred92

XLDnaute Nouveau
Bonjour à tous,

Je viens solliciter votre aide sur un problème de liste déroulante que je n'arrive pas à résoudre malgré un certain nombre de recherches restées infructueuses.

J'ai un classeur comportant deux feuilles. La première feuille, nommée "Liste" contient l'ensemble des éléments d'une liste déroulante à deux colonnes.

Pour celà, j'ai créé un nom de champ "Comptes" via Formules/Gestionnaire de noms de la façon suivante:

=DECALER(Liste!$A$2;;;NBVAL(Liste!$A:$A)-1;2)

Je souhaite dans la seconde feuille, nommée "Frais généraux", mettre toutes les 3 cellules de la colonne A la liste déroulante "Comptes".

J'ai rédigé le code suivant (malheureusement ça ne fonctionne pas!).

I1 = 3
For A = 1 To 100
Sheets("Frais généraux").Range(Cells(I1, 1), Cells(I1, 1)).Select
Selection.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Comptes"
I1 = I1 + 3
Next A


Je remercie par avance celles et ceux qui pouront m'apporter des réponses à mon problème.

Je vous souhaite à tous une très bonne journée.

Fred92
 

mromain

XLDnaute Barbatruc
Re : Liste déroulante dans plusieurs cellules

bonjour Fred92 et bienvenue sur le forum

voici un bout de code qui a l'air de répondre à ton PB :

Code:
With ThisWorkbook.Sheets("Frais généraux")
    For i = 1 To 300 Step 3
        .Cells(i, 1).Validation.Delete
        .Cells(i, 1).Validation.Add xlValidateList, xlValidAlertStop, xlBetween, "=Comptes"
    Next i
End With

a+
 

Fred92

XLDnaute Nouveau
Re : Liste déroulante dans plusieurs cellules

Bonjour Boisgontier,

Je te remercie aussi pour ta réponse.

Je souhaiterais éviter toute modification en dehors de la macro.

Ne peut on donc pas dans ce cas nommer la liste déroulante directement dans la macro, placer ensuite cette liste dans les différentes cellules de la feuille "Frais généraux" et d'effectuer pour finir cette modification de largeur de colonnes?

Je vous remercie par avance pour vos réponses respectives

Fred92
 

Fred92

XLDnaute Nouveau
Re : Liste déroulante dans plusieurs cellules

Rebonjour,

Les lignes de codes apportées par Mromain fonctionnent parfaitement à condition de respecter le point soulevé par Boisgontier.

Pourriez vous me dire si il est possible de modifier le nombre de colonne de la liste déroulante directement par des lignes de code?

Je vous remercie pour vos réponses.

Fred92
 

job75

XLDnaute Barbatruc
Re : Liste déroulante dans plusieurs cellules

Bonjour le fil, le forum,

Le code de mromain modifié comme l'indique JB :

Code:
[COLOR="Red"]With ThisWorkbook.Sheets("Liste").Range("Comptes") [COLOR="Blue"]'ou seulement With Range("Comptes")[/COLOR]
ThisWorkbook.Names.Add "Comptes", RefersTo:=.Resize(, 1)[/COLOR]
With ThisWorkbook.Sheets("Frais généraux")
    For i = 1 To 300 Step 3
        .Cells(i, 1).Validation.Delete
        .Cells(i, 1).Validation.Add xlValidateList, xlValidAlertStop, xlBetween, "=Comptes"
    Next i
End With
[COLOR="Red"]ThisWorkbook.Names.Add "Comptes", RefersTo:=.Resize(, 2)
End With[/COLOR]

A+
 
Dernière édition:

Fred92

XLDnaute Nouveau
Re : Liste déroulante dans plusieurs cellules

Bonjour Job75,

Je viens de prendre connaissance de ton post.

J'ai ajouté les lignes de code que tu as proposé et tout fonctionne parfaitement.

Merci pour toute l'aide et le temps que vous m'avez tous apportés ;)

Ce forum est formidable.

Très bonne journée.

Fred92
 

Discussions similaires