[RESOLU] la base : Ajouter données d'une cellule dans une macro

  • Initiateur de la discussion Initiateur de la discussion Sybille
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sybille

XLDnaute Junior
Bonjour à tous 🙂,

Voici mon problème :

Je sais faire :
Sheets("Liste").Select
Range("A31").Select

Je sais écrire :
myDir = Dir("C:\TEMPORAIRE\", vbDirectory)

Mais, je souhaites remplacer "C:\TEMPORAIRE\" de mon mydir par l'adresse qui se trouve dans mon onglet liste en A31 (ou il est écrit C:\TEMPORAIRE\).

En gros, quelque chose qui donnerai myDir = Dir("Liste!A31", vbDirectory)

Le but et de ne pas rentrer a chaque fois dans ma macro quand je souhaite changer de fichier et que plus tard dans la case A31 ça soit une formule qui me donne l'adresse C:\TEMPORAIRE\.

Je me doute que c'est "la base en vba" 😳, j'arrive a écrire des chose plus compliqué et la je coince sur quelque chose qui doit être simple... mais ça passe pas!
Où me suis je trompé? les guillemets? le point d'exclamation? ou la manière de l'écrire?

A l'avance merci pour votre aide (qui je pense va me resservir pour plein d'autre sujet) 😀

Bonne journée,

Sybille
 
Bonjour.
Si la macro, éventuellement d'un autre classeur, tourne pour le classeur actif :
myDir = Dir(ActiveWorkbook.Worksheets("Liste").Range("A31").Value, vbDirectory)
myDir = Dir([Liste!A31].Value, vbDirectory)
Si la macro tourne dans un module du classeur, même si ce n'est pas le classeur actif :
myDir = Dir(Thisworkbook.Worksheets("Liste").Range("A31").Value, vbDirectory)
myDir = Dir(ValeurDeCodeName.[A31].Value, vbDirectory)
(ValeurDeCodeName : Nom de l'objet Worksheet, de la rubrique "Microsoft Excel Objets" dans l'explorateur de projets, représentant la feuille nommée "Liste" du coté d'Excel.
Pour information ce nom est restitué par sa propriété CodeName, de type String en lecture seule.)
 
Dernière édition:
Bonjour.
La formule à rallonge classique :
myDir = Dir(Thisworkbook.Worksheets("Liste").Range("A31").Value, vbDirectory)
Plus court :
myDir = Dir(ValeurDeCodeName.[A31].Value, vbDirectory)
A des chances de marcher aussi si tourne dans un module du classeur actif :
myDir = Dir([Liste!A31].Value, vbDirectory)

Bonjour,

ça fonctionne merci!!! 🙂

Plus exactement : la formule a rallonge classique et celle qui a des chances de marcher.
La plus courte avec l'écriture en rose, je n'ai pas compris! 🙄

mais maintenant j'ai compris : VALUE est mon amis ! 😀

Merci merci!!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
827
Réponses
2
Affichages
461
Retour