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
0
Affichages
693
Réponses
2
Affichages
3 K

Statistiques des forums

Discussions
311 713
Messages
2 081 806
Membres
101 819
dernier inscrit
lukumubarth