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

VBA : Sélectionner un classeur avec une date qui change

Mister

XLDnaute Nouveau
Bonjour à tous.

J'ai une macro qui fonctionne bien. Seul bémol, j'active mon classeur en utilisant
Windows.activate("Fichier20170215.csv").
Par contre demain elle fonctionnera pas. Je sais pas comment faire pour dire que le fichier s'appelle "fichierAAAAMMJJ"

J'ai essayé inputbox = DateDuJour en saisissant le jour sur le format voulu et dit "fichier"&dateDuJour.csv"
Mais ça marche pas.

Je sais pas comment faire.

Merci de m'aider !

Bonne journée
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Ben ne l'activez pas, tout simplement. Ça ne sert à rien, en général, dans les macros, d'activer des classeurs.
Par contre c'est très utile de noter par des Set ce qu'on a sous la main à un moment donné dans des variable objets déclarées As Workbook, As Worksheet, As Range.
 

Mister

XLDnaute Nouveau
Je sais pas faire ça.
Le fait est que quand je clique sur le bouton tout se passe comme voulu.
Je veux juste changer le nom "Fichier20170215" en fichierAAAAMMDD.
Pour que ça marche à chaque fois sans changer le code.

Comment procéder ?
 

Dranreb

XLDnaute Barbatruc
Apprenez à le faire alors.
Vous l'ouvrez bien à un moment donné ce classeur je suppose, puisqu'ensuite vous cherchez à l'activer ?
Pourquoi en avez vous activé un autre entre temps, d'ailleurs, soit dit en passant.
 

Mister

XLDnaute Nouveau
J'ai peut être mal exprimé le truc.

J'ai un fichier type avec la macro dedans.
J'ouvre deux fichiers.
Je fais des opérations avec ces fichiers, donc je vais et viens entre les deux fichiers ouverts.
Au fur et à mesure le fichier type avec la macro se rempli, puis, une fois fini, la macro ouvre une nouvelle feuille, donc cette feuille se rempli avec les éléments de la feuille type avec la macro.
Ensuite ça s'enregistre et les fichiers se ferme.
Je ferme le fichier excel avec la macro et je fais "ne pas enregistrer les modifications".

Voilà pourquoi j'ai besoin d'activer. Un des deux fichiers comporte une date.
Cette date n'est pas celle d'aujourd'hui forcément.
D'où mon idée d'inputbox pour demander la date et la coller au fichier.
Mais ça marche pas...

Donc voilà
 

Dranreb

XLDnaute Barbatruc
Il n'est pas nécessaire d'activer les classeurs pour faire ça.
Optimisez la macro en contractant les suites MachinChose.Select suivis de Selection.FaireUnTruc en MachinChose.FaireUnTruc
Et utilisez des variables objets c'est plus simple.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…