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

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" :oops:, 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) :D

Bonne journée,

Sybille
 

Dranreb

XLDnaute Barbatruc
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:

Sybille

XLDnaute Junior
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! :rolleyes:

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

Merci merci!!
 

Haut Bas