[VBA Excel] pb de paths (résolu)

pb de paths (résolu) [VBA Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 06-06-2005 à 14:16:11    

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 :
  1. Public nomats As String
  2. Public dossier As String
  3. Public NOMEB As String
  4. 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 :
  1. Sub extraction1()
  2. 'Ouvrir le fichier choisi par utilisateur
  3.     nomats = Application.GetOpenFilename()
  4.     Workbooks.Open Filename:=nomats
  5. 'Tout un traitement à partir de ce fichier (qui marche très bien)
  6. 'Fermer le fichier
  7.     ActiveWorkbook.Close
  8. End Sub


Ensuite j'ai une 2ème macro qui permet de sélectioner un autre dossier

Code :
  1. Sub extraction2()
  2. 'Choisir le dossier et mémoriser
  3.     dossier = ""
  4.     dossier = CreateObject("Shell.Application" ).BrowseForFolder(&H0&, "Choix du dossier", &H1& )
  5. End Sub


 
Et enfin dans une 3ème macro je renvois sur la macro suivante au moment souhaité :
 

Code :
  1. Sub ext4()
  2.      'la feuille part dans un nouveau classeur et est enregistrée sous le bon nom.
  3.      Worksheets(WSA).Select
  4.      Worksheets(WSA).Move
  5.      ActiveWorkbook.SaveAs Filename:=dossier & "\" & NOMEB & "_" & WSL & ".xls", FileFormat:=xlNormal
  6.      ActiveWorkbook.Close
  7. 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
Reply

Marsh Posté le 06-06-2005 à 14:16:11   

Reply

Marsh Posté le 06-06-2005 à 17:48:47    

A priori j'ai trouvé une autre méthode qui semble bien fonctioner pour l'instant en tout cas.
 
j'ai ajouté une variable
public Chemin as string
J'ai modifié ma variable dossier en Filedialog au lieu de string
et en prenant :
 
Sub extraction2()
'Choisir le dossier et mémoriser le path
    Set dossier = Application.FileDialog(msoFileDialogFolderPicker)
    dossier.Show
    Chemin = dossier.SelectedItems(1)        
End Sub
 
et en enregistrant dans ext4 sous Chemin...
il accepte de diférencier les paths et en plus c'est assez propre.
 
Si quelqu'un a une autre sollution j'essayerai bien.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed