XL 2016 Indirect

paneguilla

XLDnaute Nouveau
Bonsoir,
J'aimerais utiliser la fonction Indirect mais dans une macro VBA en fonction de la valeur de la cellule A7.
Par exemple, si en A7 j'ai "CD3591", je veux qu'en A8 j'ai une liste déroulante avec pour formule "=Indirect("CD3591_").
Il faut rajouter le tiret du 8, car je me sers du gestionnaire de nom et Excel rajoute automatiquement le tiret du 8 car j'ai l'impression que cela ne peut se terminer par un chiffre.
J'ai déjà essayé beaucoup de codes différents et aucun ne fonctionne.
Merci.
 

Dranreb

XLDnaute Barbatruc
En mettant Formula1 et en doublant les guillemets ça marche chez moi :
VB:
Sub Liste()
   With Sheets("Feuil1").Range("C2").Validation
       .Delete
       .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
         xlBetween, Formula1:="=INDIRECT($C$1&""_"")"
       .IgnoreBlank = True
       .InCellDropdown = True
       .InputTitle = ""
       .ErrorTitle = ""
       .InputMessage = ""
       .ErrorMessage = ""
       .ShowInput = True
       .ShowError = False
      End With
   End Sub
 

paneguilla

XLDnaute Nouveau
Bonsoir,
Désolé de déranger encore, mais maintenant je veux qu'à la place de la cellule C8, ce soit la cellule sur laquelle on clique. J'ai testé le code suivant, mais cela ne fonctionne pas.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Sheets("Feuil1").Range("C2").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=INDIRECT(Target.Address&""_"")"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = False
End With
End Sub

Merci.
 

Discussions similaires

Réponses
4
Affichages
330
Réponses
5
Affichages
242

Statistiques des forums

Discussions
312 389
Messages
2 087 887
Membres
103 672
dernier inscrit
ammarhouichi