VBA nom de fichier dans code

Bonjour les amis,

j'ai 2 lignes de code qui me posent problème, quand je fais un enregistrer/sous.

et que j'oublie de modifier cette ligne.

Workbooks("Lexique_VBA_4.xls").Activate 

Ne pourrait-on pas remplacer le nom du fichier dans ce code par un Dim à l'ouverture du

fichier ??

amicalement

Claude.

Bonjour,

Lorsque je travaille sur un classeur et que je veux le sauvegarder, je fais très souvent

ActiveWorkbook.Close savechanges:=True

Ce code enregistre le classeur avant de le fermer

Bonjour Claude,

Si tu as besoin de récupérer simplement le nom de ton classeur, met ce code juste après l'ouverture de celui-ci.

nomClasseur = ActiveWorkbook.Name

Si tu veux mettre le nom du classeur en dur, fais comme ceci :

nomClasseur = "Lexique_VBA_4.xls"

Après tu pourras l'utiliser comme tu veux.

Cdlt,

Bonjour,

en début de macro tu peux mettre aussi DIM NOMCLASSEUR AS STRING

Amicalement

Dan

Salut Dan,

ça va de soi.

Cdlt,

re, merci à vous,

Raja, comme çà ?

Private Sub Workbook_Open()
nomClasseur = ActiveWorkbook.Name
End Sub

et après : dans mon programme (ou je peux être dans un autre fichier)

Workbooks("nomClasseur").Activate

"monClasseur" étant ouvert, mais le fichier actif étant un autre.

le code activate est dans "monClasseur", évidemment.

je vais essayé ce soir.

amicalement

Claude.

Claude,

A vrai dire, je l'ai pas imaginé comme ça son utilisation. Afin de proposer une solution adaptée à ton besoin, met ton code et décris nous ce que tu veux vraiment. Je pense que ça serait plus simple.

A mon avis ça ne marchera pas. Par exemple; la première procédure, c'est une méthode du classeur "ThisWorkbook". Cela veut dire à chaque ouverture du classeur modèle ce code est exécuté. Cette procédure est d'abord privée. Par conséquent, la variable "nomClasseur" ne sera pas déjà accessible en dehors de cette procédure.

J'ai pensé que tu avait une macro qui touranait sous une module dans lequel tu ouvrait ton classeur.

Cdlt,

re,

c'est facile, mon fichier est sur la page "Applications-excel"

sur le post "Lexique VBA à enrichir"

dans le module2 , Private Sub choix()

Workbooks("Lexique_VBA_3.xls").Activate

c'est cette ligne qui me gène quand je change de version (enregistrer sous)

je voudrais éviter de modifier cette ligne.

Amicalement

Claude.

Re,

J'ai regardé le code. La variable "Wbk" mémorise le nom du classeur. Donc c'est déjà prévu. Pourquoi tu l'utilise pas ?

Remplace la ligne du code :

Workbooks("Lexique_VBA_3.xls").Activate 'fichier de base

comme suivant :

Workbooks(Wbk).Activate 'fichier de base

Cdlt,

re,

non, si tu as bien compris le programme, la variable" Wbk" sert pour le fichier hors du

Lexique.

en bref, je voudrais la même chose, mais pour le fichier Lexique_VBA....

claude.

Re,

J'essaye de comprendre comment tu procèdes pour faire une mise à jour. Explique-moi en quelques lignes.

Cdlt,

re,

je vois que tu n'a pas compris le fonctionnement du Lexique !

Explications :

  • tu ouvre le fichier Lexique...(tu as une barre d'outil perso).
  • tu ouvre un autre fichier sur lequel tu veux programmer.disons "fichierX"
  • tu choisi dans la barre le mode "AUTO"
  • de ton "fichierX" tu choisi dans la barre d'outil le code qui t'intéresse
le programme va copier ce code et revenir dans le module du "fichierX" (prêt à coller)

Mais quand on fait un choix dans la barre, le programme doit réactiver "Lexique" pour

chercher le code.avec Workbooks("Lexique_VBA_3.xls").Activate

puis revenir au "fichierX" avec Workbooks(Wbk).Activate

pas facile d'expliquer

le mieux c'est de tester.

tout fonctionne, le petit problème, c'est que si j'enregistre sous "Lexique_VBA_4.xls"

il faut modifier la ligne de code activate.

ce que je voudrais éviter.

Claude.

supprimé

re,

l'idée était bonne, j'ai cru que c'était gagné, mais non çà plante à cette ligne

Bon, c'est pas bien grave , je fais dans le module un remplacer "lexique3.." par .......

mais je pensais qu'un petit bout de code !!!!!

Tans pis.

encore merci

amicalement

Claude.

Re,

Pourquoi pas d'appeler le fichier par le même nom ? Ou sinon essaye aussi ça :

Workbooks(2).Activate

Cdlt,

re,

merci Raja, mais là je travaille sur une autre version et j' ai pas beaucoup de temps pour

faire des essais sur plusieurs fichiers à la fois.

Mais toi, tu peux (si tu veux) tester plusieurs idées !

Si tu en trouve une qui marche , OK tu me fait signe.

encore merci

amicalement

Claude.

Rechercher des sujets similaires à "vba nom fichier code"