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
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 : crash |
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.
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 ?
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