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
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

Statistiques des forums

Discussions
312 194
Messages
2 086 064
Membres
103 110
dernier inscrit
Privé