Excel - Création d'un menu déroulant à partir d'une liste dynamique dans VBA

Problème

J'ai essayé de créer une macro capable de créer une liste déroulante à partir d'une liste dynamique de la colonne A. Jusqu'à présent, j'ai créé le code suivant:

 Sub Test () Range ("A1", Range ("A65536"). End (xlUp)). Name = "MyList" Cells (1, 3) .Sélectionnez avec Selection.Validation .Supprimez. Type: = xlValidateList, AlertStyle : = xlValidAlertStop, Opérateur: = _ xlBetween, Formula1: = "= & MyList" .IgnoreBlank = False .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .InputMessage = "" .ErrorTitle = "" .InputMessage = "". .ShowError = True End With End Sub 

Cependant, appeler MyList ne fonctionne pas.

Solution

Essaye ça:

  • Allez à la validation des données, choisissez une liste et tapez = MyList
  • Maintenant, faites un clic droit sur l'onglet feuilles et sélectionnez Afficher le code et collez le code suivant:

 Private Sub Worksheet_Change (Cible ByVal en tant que plage) si intersection (cible, colonnes ("A: A")) n’est rien, puis quittez Dim Dim sous le nombre entier lRow = Range ("A" & Rows.Count) .End (xlUp). Row Range ("A1: A" & lRow) .Name = "MyList" End Sub 
  • Ce code modifiera la plage de MyList chaque fois qu'une modification est apportée dans la colonne A.

Merci à TrowaD pour ce conseil.

Article Précédent Article Suivant

Les Meilleurs Conseils