Copie de fichier

tifred07 Messages postés 2 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 23 mars 2007 - 23 mars 2007 à 14:38
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 24 mars 2007 à 00:39
Bonjour à tous!!!

Voila, je débute dans le VBA sur excel ou je commence à me faire la main (on y prend vite gout).
J'ai un problème que j'ai essayé de retranscrire d'une manière simple pour m'aider à avancer mais je ne sais vraiment pas par quoi commencer, mes connaissances sont encore trop limiter

Si je peux avoir votre aide ça serais sympa!
(Je n'ai aucune idée du niveau de difficulté de l'écriture de ma macro... et si vous avez besoin d'éclaircissement n'hésiter pas, ma philosophie c'est de bien connaître ce que l'on veut faire avant de plonger tête la première)

Je vous expose le problème :

Je possède un dossier racine que l’on va appeler « Base de donnée »
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??> 

Dans ma base de donnée je possède des sous dossiers nommés pour le premier « Dessins » et pour le deuxième « matériel »

Dans ces deux dossiers se trouve un dossier portant le nom d’un dessin (exemple 200) et les dossiers portant le nom 200 contienne un fichier nommé « fichier1 » « dans dessins » et « support1 » dans matériel.

 

Je souhaiterai créer une macro me demandant pour variable le nom d’un dessin. Je souhaite pouvoir entrer « 200 » et pouvoir copier dans un dossier Temp les fichiers correspondant « fichier1 et support1 » lié à ce nom de dossier. « fichier1 et support1 n’ont pas d’extension »

 

Si possible je souhaiterai pouvoir ensuite nommer les fichiers comme suit :

 

200.fichier1

200.support1

 

Avant execution de la macro :

                                                           100/fichier1

                                                           200/fichier1          

                                   Dessins             600/fichier1

                                                           700/fichier1

 

Base de données

                                                           100/support1

                                                           200/support1

                                   Matériel           600/support1

                                                           700/support1

 

 

                                   Temp               vide

 

 

 

Résultat : à l’appelle de la macro : 200

 

                                                           100/fichier1

                                                           200/fichier1          

                                   Dessins            600/fichier1

                                                           700/fichier1

 

Base de données

                                                           100/support1

                                                           200/support1

                                   Matériel           600/support1

                                                           700/support1

 

 

                                   Temp               200.fichier1

                                                           200.support1

 Rien que de l'écrire ça me fais un peu peur j'espère que c pas trop compliquer à comprendre (chaque dossier possède d'autre fichiers portant des noms aléatoire.

Bon je m'y repenche dessus restons ZEN!!!

Merci d'avance.

                   

3 réponses

tifred07 Messages postés 2 Date d'inscription vendredi 18 février 2005 Statut Membre Dernière intervention 23 mars 2007
23 mars 2007 à 14:40
PS: j'espère que j'ai poster au bon endroit
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
23 mars 2007 à 14:59
Salut,


Je ne sais pas si VBA excel, cette instruction existe, mais regarde un peu vers :
FileSystemObject...(c'est pas le plus rapide, j'en convient)...Cela te permet de vérifier entre autre si ton fichier existe, et de là, tu en récupère son nom, et evec les fonction sur les chaines de carractère tu peux travaillé sur son nom, en extraire une partie, avec Mid, Left,Right,Replace,Split....regarde avec ton aide en ligne avec ces mots là....


A+
Exploreur


 
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
24 mars 2007 à 00:39
Tu peux utiliser la fonction FileCopy qui te permet de renommer en même temps le fichier

'La manière d'appeler la procédure
Sub Appel()
    Copier "200"
End Sub

Sub Copier(Répertoire As String)
    Dim Chemin As String, Destination As String
    Dim Fichier As String
   
    On Error GoTo Erreur
   
    'répertoire de destination
    Destination = "C:\Temp1"
   
    'copier et renommer le premier fichier
    Chemin = "C:\Dessins"
    Fichier = Dir(Chemin & Répertoire & "")
    FileCopy Chemin & Répertoire & "" & Fichier, Destination & Répertoire & "." & Fichier
   
    'copier et renommer le deuxième fichier
    Chemin = "C:\Matériel"
    Fichier = Dir(Chemin & Répertoire & "")
    FileCopy Chemin & Répertoire & "" & Fichier, Destination & Répertoire & "." & Fichier
   
    Exit Sub
Erreur:
        MsgBox Err.Number & vbCrLf & Err.Description
       
End Sub

Bien sûr, il faudra éventuellement valider si le répertoire existe, s'il y a un fichier existant,...
Il faut aussi vérifier les "" à savoir s'ils sont présents ou non ou en double,...
Mais la base, c'est ça

MPi
0
Rejoignez-nous