Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.
 

paneguilla

XLDnaute Nouveau
Je vous mets mon classeur en pièce jointe.
Le fait est que j'y arrive sans faire de macro mais j'ai besoin de l'automatiser sous VBA.
Je vous remercie encore pour vos réponses.
 

Pièces jointes

  • Planning.xlsm
    15.8 KB · Affichages: 4

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
295
Réponses
5
Affichages
214
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…