copier - VB/VBA/VBS - Programmation
Marsh Posté le 29-12-2003 à 20:08:08
en passant par l'objet FSO c'est très facile de manipuler des fichiers. c'est pas ce qu'il y a de plus performant, mais c'est tellement simple à utiliser que c'est con de s'en passer, surtout qu'il permet d'accéder à tout au niveau des systèmes de fichier. 
 
Nom de l'objet : Scripting.FileSystemObject 
 
Je te laisse découvrir ses propriétés et méthodes depuis l'interface VB, ça vaut mieu qu'un long discours 
Marsh Posté le 29-12-2003 à 20:12:24
merci pour ta réponse  
euh ben  en faite je suis un débutant  
donc tu c'est FSO ,objet, et autre moi pas du tout savoir 
 
Marsh Posté le 29-12-2003 à 20:16:50
Je sais plus son nom pour le lier directement dans le projet... 
 
Donc on va pas le lier, on va faire ça à la bourrin : 
 
dim fso 
set fso = CreateObject("Scripting.FileSystemObject" ) 
 
ensuite, je te laisse jouer avec l'objet, tapes "fso." dans VB, il te donnera tout ce qu'il y a dedans. 
 
PS: getFile et getFolder par exemple, ça te retourne un objet, donc faut faire un set nomVar = fso.getFile(...) pour utiliser ensuite un objet de type file. 
 
Mais pour copier un fichier, FSO seul suffit normalement.
Marsh Posté le 29-12-2003 à 20:17:18
http://www.devguru.com si tu t'en sort pas, y'a des exemple d'utilisation de FSO. Mais normalement, il doit y en avoir aussi dans l'aide de VB.
Marsh Posté le 29-12-2003 à 20:23:08
merci  
 
j'ai pas tout bien compris mais ( je crois que j'ai rien comppris) je vais essayer de me débrouiller avec sa enfin si j'y arrive  
Marsh Posté le 29-12-2003 à 20:37:20
ah j'ai compris merci 
 
et si je veut en faire plusieur exemplaire  
par ex si je veut le coller 5fois 
Marsh Posté le 29-12-2003 à 20:57:26
bah tu éxécutes 5 fois la ligne en mettant un nom de destination différent à chaque fois 
Marsh Posté le 29-12-2003 à 21:02:30
mais si je veut copier se fichier sur la meme destination 
Marsh Posté le 29-12-2003 à 21:46:48
comment ça ? tu veux le concaténer sur lui-même 5 fois ? tu peux pas utiliser cette solution. j'ai pas de solution simple à te proposer. 
 
tu veux faire quoi au juste ?
Marsh Posté le 29-12-2003 à 21:59:21
je voullait juste le copier 5 fois de suite c'est tout 
par ex : copier  le meme fichier 5 fois de suite dans le C: 
faire une répétition en gros 
Marsh Posté le 29-12-2003 à 22:00:29
  crash
 crash 
 
ben si tu copie 5 fois au même endroit, tu te retrouveras avec 1 seul fichier  
  
ou alors tu veux que le nom change?
Marsh Posté le 29-12-2003 à 22:23:01
| Kerri a écrit :   | 
 
 
mais quand tu copie 5 fois le meme fichier le nom des copie change automatiquement  
 
ex: quand tu copie un fichier image qui est nommé VBA tu le copie au meme endroit éh bien les copie se nomme :  copie de VBA 
, copie (2) VBA ,copie (3)VBA  etc.......... 
Marsh Posté le 29-12-2003 à 22:43:54
euh... non... ça c'est l'explorateur de windows qui le fait pour toi. quand tu développes, il faut spécifier le nom du fichier...
Marsh Posté le 30-12-2003 à 07:00:25
aaah d'acord j'ai cru que sa pourrait faire la meme chose 
et on peut pas lui dire qu'il le nomme de cette maniere ?? 
Marsh Posté le 30-12-2003 à 10:45:23
Ben si... 
 
chemin_source = "c:\toto" 
chemin_dest = "c:\nouveau_toto" 
nom_fichier = "monfichier.txt" 
pattern = "Copie de %1 [(%2)]" 
 
for i = 1 to 5 
    nouveau_nom = pattern 
    if i = 1 then 
       nouveau_nom = replace(nouvea_nom, "[(%2)]", "" ) 
    end if 
    nouveau_nom = replace(replace(nouveau_nom, "%1", nom_fichier), "%2", cstr(i)) 
   fso.copyFile(chemin_source & "\" & nom_fichier, chemin_dest & "\" & nouveau_nom) 
next 
 
C'est le seul moyen (donc faut le programmer).
Marsh Posté le 30-12-2003 à 17:23:38
merci pour le code  
 
Sub essai() 
Dim fso 
 
Set fso = CreateObject("Scripting.FileSystemObject" ) 
 
fso.CopyFile (C:\essai.txt,C:\essai1.txt, [OverWriteFiles]) 
Copy a file 
 
End Sub 
j'ai noter ceci pour copier un simple fichier mais sa veut pas le compiler  
pourquoi j'ai fait quelle faute dans se code  
 
 
ps: est ce que tu a msn messenger ?? 
si sa te dérange pas je pourrait plus facillement poser des question  
 
Marsh Posté le 30-12-2003 à 17:26:56
1) quand t'as une erreur, indique le message d'erreur 
2) [OverWriteFiles] : les crochets veulent dire que c'est un paramètre facultatif (donc pas besoin de le spécifier). et c'est un bouléen (true : écrase si le fichier destination existe déjà ; false : plante si le fichier destination existe déjà)
Marsh Posté le 30-12-2003 à 20:14:38
sur overwritefile  j'enleve que les crochets ou je peut les laisser ? 
 
quand je compile mon code l'erreur me dit : 
compile error : expected: list separator or) 
 
et il me sélection le : du C: 
voila 
Marsh Posté le 30-12-2003 à 21:09:16
tout de fasson vendredi je vais a la fnac pour m'acheter un livre sur le vb 
voila j'éssayerait de comprendre un peu mieux sa m'aidera surrement  
 
euh il y a pas un livre que tu pourrait me conseiller ou je choisir n'importe le quel ? 
Marsh Posté le 30-12-2003 à 22:08:42
Non, le paramètre "OverWriteFiles" est facultatif. L'IDE de VB te l'indique en l'affichant entre crochets dans l'intellisense, c'est tout. 
 
Donc, soit tu l'omets : copyFile(source, destination) soit tu lui affecte une valeur (par défaut, c'est false, c'est à dire qu'il plante si le fichier destination existe déjà, ce qui est le comportement normal du copy)
Marsh Posté le 30-12-2003 à 22:22:42
euh ah oui false j'y avait pas penser 
merci  
mais je crois que je vais bouquiner un peu vendredi  
sa m'aidera un peu  
 
 
 
Marsh Posté le 31-12-2003 à 00:19:39
Ah, et sinon, pour ton erreur, c'est même pas le "[OverWriteFiles]" qui plantait (il était pas arrivé jusque là  ) mais simplement le chemin des fichiers. Ce sont des chaînes de caractère, donc il faut les mettre entre guillements.
) mais simplement le chemin des fichiers. Ce sont des chaînes de caractère, donc il faut les mettre entre guillements. 
 
PS: en effet, t'es bon pour bouquiner "un peu". Parceque vu les erreurs que tu fais, j'en déduis que ça doit être à peut près la première fois que tu touches à VB, et peut-être même à la programmation tout court  Je me trompe ?
 Je me trompe ? 
Marsh Posté le 31-12-2003 à 07:08:09
oui tout a fait c'est la premier fois que je touche au VB  
aah d'accord je vais essayer de mettre des guillements 
Marsh Posté le 29-12-2003 à 19:41:00
bonjour
pourriez vous me dire le code source en VB pour copier des donnée
comme par ex je voudrait copier un fichier word et le coller ailleur quand j'execute mon projet1.exe
merci