copier

copier - VB/VBA/VBS - Programmation

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

Reply

Marsh Posté le 29-12-2003 à 19:41:00   

Reply

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 ;)

Reply

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
 

Reply

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.

Reply

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.

Reply

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  

Reply

Marsh Posté le 29-12-2003 à 20:29:01    

Bah s'pourtant pas compliqué...
 
http://magicbuzz.multimania.com/files/fso.PNG

Reply

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

Reply

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 :sarcastic:

Reply

Marsh Posté le 29-12-2003 à 21:02:30    

mais si je veut copier se fichier sur la meme destination

Reply

Marsh Posté le 29-12-2003 à 21:02:30   

Reply

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 ?

Reply

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

Reply

Marsh Posté le 29-12-2003 à 22:00:29    

:hello: 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?

Reply

Marsh Posté le 29-12-2003 à 22:09:41    

j'avoue que je comprends pas bien le problème :D

Reply

Marsh Posté le 29-12-2003 à 22:23:01    

Kerri a écrit :

:hello: 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?


 
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..........

Reply

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...

Reply

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 ??

Reply

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).

Reply

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  
 

Reply

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à)

Reply

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

Reply

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 ?

Reply

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)

Reply

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  
 
 
 

Reply

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à :D) 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 :D Je me trompe ? ;)

Reply

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

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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