Bonjour à tous,
Je me vois confronté à une difficultés et je ne trouve pas la solution sur le net.
Je désire créer des listes déroulantes dans une feuille Excel via VBA. Pour une colonne donnée, chaque cellule comporte la même liste déroulante.
Le problème n'est pas de la créer car pour cela on peut s'inspirer de l'enregistreur de macro. Le problème viens de l'attribution des données sources de la liste déroulante car celle.ci se trouve dans un fichier de paramètre différant.
Ma question est donc:
Est il possible d'attribuer des données à une liste déroulante par un autre moyen qu'un formule y faisant référence. Imaginons les données sources contenues dans un Array.
Si oui, comment modifier ce code pour que cela fonctionne ?
Par avance merci pour votre aide et votre temps.
Meilleures salutations
Vorens
Je me vois confronté à une difficultés et je ne trouve pas la solution sur le net.
Je désire créer des listes déroulantes dans une feuille Excel via VBA. Pour une colonne donnée, chaque cellule comporte la même liste déroulante.
Le problème n'est pas de la créer car pour cela on peut s'inspirer de l'enregistreur de macro. Le problème viens de l'attribution des données sources de la liste déroulante car celle.ci se trouve dans un fichier de paramètre différant.
Ma question est donc:
Est il possible d'attribuer des données à une liste déroulante par un autre moyen qu'un formule y faisant référence. Imaginons les données sources contenues dans un Array.
Si oui, comment modifier ce code pour que cela fonctionne ?
Code:
If Not PosCol Is Nothing Then
NbValEnum = Workbooks("Parameters Catalogs.xlsx").Sheets("Liste déroulante").Range("B" & PosCol.Row).Value
Colonne = LetCol(i)
With Workbooks(Catalogue).Sheets(1).Range(Colonne & "2" & ":" & Colonne & "65535").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween,[B] Formula1:="=$A$2:$A$6"[/B]
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
Next
End Sub
Function LetCol(NoCol)
LetCol = Split(Cells(1, NoCol).Address, "$")(1)
End Function
Par avance merci pour votre aide et votre temps.
Meilleures salutations
Vorens