Macro d'enregistrement

sshikamaru

XLDnaute Nouveau
Bonjour
j'ai créé une macro de traitement des données, et j'aimerais que cette macro sauvegarde automatiquement dans un dossier.


au débute de ma macro, je fais ceci

Code:
 ChDrive "K"
 ChDir "K:\aaa\bbb\ccc\ddd"
 monfichier1 = Application.GetOpenFilename("Fichiers de données,*.xls")
 monfichier2 = Application.GetOpenFilename("Fichiers de données,*.xls")
 monfichier3 = Application.GetOpenFilename("Fichiers de données,*.xls")

donc j'arrive dans le dossier "ddd", et la je choisi un dossier ou se trouvent 70 dossiers (1 par machine). et dans chacun de ses dossiers se trouvent, des dossier en fonction de l'année, et dans ces dossiers de l'année, se trouvent 3 fichier en .xls. En fonction de la machine à dépouiller, je choisi tel ou tel dossier, et je sélectionne les 3 fichiers.

en gros quand je vais chercher les fichiers de données de la machine1 en 2015, ça donne :
fichier1 : "K:\aaa\bbb\ccc\ddd\machine1\2015\1.xls"
fichier2 : "K:\aaa\bbb\ccc\ddd\machine1\2015\2.xls"
fichier3 : "K:\aaa\bbb\ccc\ddd\machine1\2015\3.xls"

si ça avait été lé machine2 en 2014, ça aurait donné
fichier1 : "K:\aaa\bbb\ccc\ddd\machine2\2014\1.xls"
fichier2 : "K:\aaa\bbb\ccc\ddd\machine2\2014\2.xls"
fichier3 : "K:\aaa\bbb\ccc\ddd\machine2\2014\3.xls"

après avoir choisi mes fichiers, ça me fait un traitement, une mise en forme de jolis graphique...
et j'aimerais qu'une fois que j'ai terminé le traitement des données, que ça me sauvegarde un fichier en .xlsx, dans le dossier "K:\aaa\bbb\ccc\ddd\machine1\2015" ou alors "K:\aaa\bbb\ccc\ddd\machine2\2014" (en gros que ça garde le dossier dans lequel je suis allé chercher les fichiers de données) avec un nom déterminé en fonction de paramètres demandés au fur et à mesure de la macro.

si vous avez une piste, je suis preneur.

merci
 

vgendron

XLDnaute Barbatruc
Re : Macro d'enregistrement

ok, donc avec l'aide vba sur les mots Path ou defaultFilePath

sinon une piste.
récupère le path par défaut en cours (souvent celui quand tu ouvres Excel la première fois)
Code:
ActualPathParDefaut = Application.DefaultFilePath
MsgBox "path par défaut est: " & ActualPathParDefaut

une fois que tu as fait tes ouvertures de fichier avec le GetOpenFileName
tu peux récupérer le path des classeurs..

Code:
NewPathParDefaut = ActiveWorkbook.Path
 

sshikamaru

XLDnaute Nouveau
Re : Macro d'enregistrement

pour titiborregan5 :
j'ai essayé plusieurs méthode dessus et en fait il y en avait une que j'avais pas testé
la voici
Code:
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
    nom_fichier & ".xlsx" _
    , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
Application.DisplayAlerts = True

cette méthode garde le dernier dossier importé en mémoire. mais je ne pensais pas que je pouvais imposer le nom du fichier sans imposer le chemin d'accès.


pour vgendron :
C'est quoi les path ?
 

Discussions similaires

Réponses
16
Affichages
995

Statistiques des forums

Discussions
312 527
Messages
2 089 358
Membres
104 137
dernier inscrit
Bobby_123