Bonjour à tous !
J'ai un soucis dans un programme écrit dans VBE pour Excel (2002).
j'ai plusieur macros qui se succèdent via userform.
dans général déclaration d'un module du projet j'ai mes variables :
Code :
- Public nomats As String
- Public dossier As String
- Public NOMEB As String
- Public WSL as string
|
NOMEB et WSL sont définis automatiquement dans une autre macro ou en fonction d'actions sur les userform.
Puis j'ai une première macro :
Code :
- Sub extraction1()
- 'Ouvrir le fichier choisi par utilisateur
- nomats = Application.GetOpenFilename()
- Workbooks.Open Filename:=nomats
- 'Tout un traitement à partir de ce fichier (qui marche très bien)
- 'Fermer le fichier
- ActiveWorkbook.Close
- End Sub
|
Ensuite j'ai une 2ème macro qui permet de sélectioner un autre dossier
Code :
- Sub extraction2()
- 'Choisir le dossier et mémoriser
- dossier = ""
- dossier = CreateObject("Shell.Application" ).BrowseForFolder(&H0&, "Choix du dossier", &H1& )
- End Sub
|
Et enfin dans une 3ème macro je renvois sur la macro suivante au moment souhaité :
Code :
- Sub ext4()
- 'la feuille part dans un nouveau classeur et est enregistrée sous le bon nom.
- Worksheets(WSA).Select
- Worksheets(WSA).Move
- ActiveWorkbook.SaveAs Filename:=dossier & "\" & NOMEB & "_" & WSL & ".xls", FileFormat:=xlNormal
- ActiveWorkbook.Close
- End Sub
|
Tout cela marche très bien tant que "nomats" et "dossier" sont dans le même répertoire. par contre si j'ai mon nomats dans c:\ et dossier dans d:\, la macro cherche à enregistrer dans c:\dossier\.
Comment faire pour que l'ordinateur prenne bien en compte chaque path indépendement ?
merci d'avance pour votre aide
Message édité par watashi le 07-06-2005 à 16:33:25