OVH Cloud OVH Cloud

Générer une copie de fichiers

8 réponses
Avatar
phil.aline.naudin
Bonsoir,

J'ai posé cette question sur le forum d'Excel mais je reste persuadé que
j'aurai la soluce depuis le Forum Windows


Mon Blème,
J'ai une colonne de 35000 données dans un fichier Excel de type numérique
sous la forme "57463001001". Cette donnée est le nom d'une image qui se
trouve dans un répertoire.
Je dois contrôler 10% des 35000 images soit 3500.

J'ai effectué un tri en utilisant une formule "Offerte" par François, voir
Post "Statistique" sur le forum Excel.

Maintenant que j'ai mon échantillonnage je souhaiterai créer
automatiquement, depuis mon fichier Excel, une copie dans un fichier Temp
par exemple des 3500 images à contrôler.

Je crois qu'il faut passer par un ".bat" mais je suis très très limite sur
ce point.

Malgré tout merci pour votre lecture et vos conseils

Bonne nuit.

8 réponses

Avatar
Jean-Claude BELLAMY
Dans le message :43e53422$0$20183$,
phil.aline.naudin a pris la peine d'écrire ce
qui suit :
J'ai une colonne de 35000 données dans un fichier Excel de type
numérique sous la forme "57463001001". Cette donnée est le nom d'une
image qui se trouve dans un répertoire.
Je dois contrôler 10% des 35000 images soit 3500.

J'ai effectué un tri en utilisant une formule "Offerte" par François,
voir Post "Statistique" sur le forum Excel.

Maintenant que j'ai mon échantillonnage je souhaiterai créer
automatiquement, depuis mon fichier Excel, une copie dans un fichier
Temp par exemple des 3500 images à contrôler.

Je crois qu'il faut passer par un ".bat" mais je suis très très
limite sur ce point.


Pourquoi passer par un batch, vu que tu es déjà sous Excel ?

Une petite macro VBA fera merveilleusement bien le travail !

P.ex. :
En admettant que dans la feuille "Extrait" :
- la cellule A10 contient le nom du dossier d'origine
- le cellule A11 contient le nom du dossier destination
- la plage B11 à B3510 contient la liste des fichiers à copier

On crée un nouveau bouton ("Bouton 1", qu'on pourra renommer ensuite),
auquel on associe la NOUVELLE macro "Bouton1_QuandClic()"

On passe alors dans VBE, et on remplit le code suivant :

Sub Bouton1_QuandClic()
With Worksheets("Extrait")
For i = 11 To 3510
Srce = .Cells(10, 1).Value & "" & .Cells(i, 2).Value
Dest = .Cells(11, 1).Value & "" & .Cells(i, 2).Value
MsgBox "copie de " & Srce & " vers " & Dest
FileCopy Srce, Dest
Next
End With
End Sub

Et c'est tout !
Un clic sur le bouton provoquera la copie de tous les fichiers.
Evidemment, c'est améliorable ...;-)



--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
ou http://www.bellamyjc.org ou http://jc.bellamy.free.fr

Avatar
phil.aline.naudin
Bonsoir,
J'ai tenté d'utiliser ta macro. Elle se bloque à la ligne "FileCopy Srce,
Dest".
Pour information,le fichier d'origine est tmp et le fichier de destination
est le temp. Je dois commaître une erreur mais je ne comprends pas !!!
As-tu une idée à me proposer
Merci d'avance


"Jean-Claude BELLAMY" a écrit dans le
message de news:
Dans le message :43e53422$0$20183$,
phil.aline.naudin a pris la peine d'écrire
ce qui suit :
J'ai une colonne de 35000 données dans un fichier Excel de type
numérique sous la forme "57463001001". Cette donnée est le nom d'une
image qui se trouve dans un répertoire.
Je dois contrôler 10% des 35000 images soit 3500.

J'ai effectué un tri en utilisant une formule "Offerte" par François,
voir Post "Statistique" sur le forum Excel.

Maintenant que j'ai mon échantillonnage je souhaiterai créer
automatiquement, depuis mon fichier Excel, une copie dans un fichier
Temp par exemple des 3500 images à contrôler.

Je crois qu'il faut passer par un ".bat" mais je suis très très
limite sur ce point.


Pourquoi passer par un batch, vu que tu es déjà sous Excel ?

Une petite macro VBA fera merveilleusement bien le travail !

P.ex. :
En admettant que dans la feuille "Extrait" :
- la cellule A10 contient le nom du dossier d'origine
- le cellule A11 contient le nom du dossier destination
- la plage B11 à B3510 contient la liste des fichiers à copier

On crée un nouveau bouton ("Bouton 1", qu'on pourra renommer ensuite),
auquel on associe la NOUVELLE macro "Bouton1_QuandClic()"

On passe alors dans VBE, et on remplit le code suivant :

Sub Bouton1_QuandClic()
With Worksheets("Extrait")
For i = 11 To 3510
Srce = .Cells(10, 1).Value & "" & .Cells(i, 2).Value
Dest = .Cells(11, 1).Value & "" & .Cells(i, 2).Value
MsgBox "copie de " & Srce & " vers " & Dest
FileCopy Srce, Dest
Next
End With
End Sub

Et c'est tout !
Un clic sur le bouton provoquera la copie de tous les fichiers.
Evidemment, c'est améliorable ...;-)



--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
ou http://www.bellamyjc.org ou http://jc.bellamy.free.fr





Avatar
phil.aline.naudin
Bonsoir,
Finalement elle fonctionne, j'avais mal renseigné mes répertoires.
Par contre elle réclame une validation à chaque copie, y a t il un moyen de
supprimer ce contrôle ?
Merci d'avance pour tes réponses

"Jean-Claude BELLAMY" a écrit dans le
message de news:
Dans le message :43e53422$0$20183$,
phil.aline.naudin a pris la peine d'écrire
ce qui suit :
J'ai une colonne de 35000 données dans un fichier Excel de type
numérique sous la forme "57463001001". Cette donnée est le nom d'une
image qui se trouve dans un répertoire.
Je dois contrôler 10% des 35000 images soit 3500.

J'ai effectué un tri en utilisant une formule "Offerte" par François,
voir Post "Statistique" sur le forum Excel.

Maintenant que j'ai mon échantillonnage je souhaiterai créer
automatiquement, depuis mon fichier Excel, une copie dans un fichier
Temp par exemple des 3500 images à contrôler.

Je crois qu'il faut passer par un ".bat" mais je suis très très
limite sur ce point.


Pourquoi passer par un batch, vu que tu es déjà sous Excel ?

Une petite macro VBA fera merveilleusement bien le travail !

P.ex. :
En admettant que dans la feuille "Extrait" :
- la cellule A10 contient le nom du dossier d'origine
- le cellule A11 contient le nom du dossier destination
- la plage B11 à B3510 contient la liste des fichiers à copier

On crée un nouveau bouton ("Bouton 1", qu'on pourra renommer ensuite),
auquel on associe la NOUVELLE macro "Bouton1_QuandClic()"

On passe alors dans VBE, et on remplit le code suivant :

Sub Bouton1_QuandClic()
With Worksheets("Extrait")
For i = 11 To 3510
Srce = .Cells(10, 1).Value & "" & .Cells(i, 2).Value
Dest = .Cells(11, 1).Value & "" & .Cells(i, 2).Value
MsgBox "copie de " & Srce & " vers " & Dest
FileCopy Srce, Dest
Next
End With
End Sub

Et c'est tout !
Un clic sur le bouton provoquera la copie de tous les fichiers.
Evidemment, c'est améliorable ...;-)



--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
ou http://www.bellamyjc.org ou http://jc.bellamy.free.fr





Avatar
NewsUser
"phil.aline.naudin" a écrit dans le message
de news: 43e69e88$0$20167$
Bonsoir,
Finalement elle fonctionne, j'avais mal renseigné mes répertoires.
Par contre elle réclame une validation à chaque copie, y a t il un moyen
de supprimer ce contrôle ?
Merci d'avance pour tes réponses



Bsr,
La validation c'est pas ton msgbox ? Met une ' devant pour voir ...
@+

Avatar
phil.aline.naudin
Bonsoir
effectivement si je place cette ligne en commentaire elle fonctionne.

Dommage car j'aurai bien voulu un Msg Box pour le démarrage et un Msg Box
pour l'arrivée avec le nombre de fichiers copiés...

Pas chiant le mec aurait dit Coluche !!!

Merci d'avance si vous avez des soluces

"NewsUser" a écrit dans le message de news:

"phil.aline.naudin" a écrit dans le message
de news: 43e69e88$0$20167$
Bonsoir,
Finalement elle fonctionne, j'avais mal renseigné mes répertoires.
Par contre elle réclame une validation à chaque copie, y a t il un moyen
de supprimer ce contrôle ?
Merci d'avance pour tes réponses



Bsr,
La validation c'est pas ton msgbox ? Met une ' devant pour voir ...
@+




Avatar
NewsUser
"phil.aline.naudin" a écrit dans le message
de news: 43e799e1$0$20185$
Bonsoir
effectivement si je place cette ligne en commentaire elle fonctionne.

Dommage car j'aurai bien voulu un Msg Box pour le démarrage et un Msg Box
pour l'arrivée avec le nombre de fichiers copiés...


Place un msgbox avant la ligne for et un apres le next
Le nombre de fichiers copiés correspond aux nombres d'itérations. Dans le
cas d'une boucle for c'est la valeur de fin+1 - la valeur de départ de ton
indice. (dans l'exemple de JCB : 3511-11 = 3500)

@+

Avatar
Jean-Claude BELLAMY
Dans le message :43e799e1$0$20185$,
phil.aline.naudin a pris la peine d'écrire ce
qui suit :
Bonsoir
effectivement si je place cette ligne en commentaire elle fonctionne.

Dommage car j'aurai bien voulu un Msg Box pour le démarrage et un Msg
Box pour l'arrivée avec le nombre de fichiers copiés...

Pas chiant le mec aurait dit Coluche !!!


C'est le moins qu'on puisse dire !!! ;-)


Sub Bouton1_QuandClic()
MsgBox "On va lancer les copies"
With Worksheets("Extrait")
Ideb
Ifin510
For i = 11 To 3510
Srce = .Cells(10, 1).Value & "" & .Cells(i, 2).Value
Dest = .Cells(11, 1).Value & "" & .Cells(i, 2).Value
FileCopy Srce, Dest
Next
End With
MsgBox "On a copié " & Ifin-Ideb+1 & " fichiers"
End Sub



--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
ou http://www.bellamyjc.org ou http://jc.bellamy.free.fr

Avatar
phil.aline.naudin
Bonjour,,
Bizarre les copies sont faites mais j'ai un message qui me dit que le Chemin
d'accès est introuvable.
La Mg Box qui me confirme le nombre de copies n'apparaît pas.

Par contre j'ai placé mon Répertoire Source (C:tmp) en A1, mon répertoire
Destination (C:temp) en A2 et mes fichiers en B1_B3500.
Et j'ai modifié le code comme cela :
Sub Bouton1_QuandClic()
MsgBox "On va lancer les copies"
With Worksheets("Extrait")
Ideb=1
Ifin510
For i = 1 To 3510
Srce = .Cells(1, 1).Value & "" & .Cells(i, 2).Value
Dest = .Cells(2, 1).Value & "" & .Cells(i, 2).Value
FileCopy Srce, Dest
Next
End With
MsgBox "On a copié " & Ifin-Ideb+1 & " fichiers"
End Sub

J'ai sans doute fait une erreur mais moivapas !!!

Merci pour tes soluces.


"Jean-Claude BELLAMY" a écrit dans le
message de news: %
Dans le message :43e799e1$0$20185$,
phil.aline.naudin a pris la peine d'écrire
ce qui suit :
Bonsoir
effectivement si je place cette ligne en commentaire elle fonctionne.

Dommage car j'aurai bien voulu un Msg Box pour le démarrage et un Msg
Box pour l'arrivée avec le nombre de fichiers copiés...

Pas chiant le mec aurait dit Coluche !!!


C'est le moins qu'on puisse dire !!! ;-)


Sub Bouton1_QuandClic()
MsgBox "On va lancer les copies"
With Worksheets("Extrait")
Ideb
Ifin510
For i = 11 To 3510
Srce = .Cells(10, 1).Value & "" & .Cells(i, 2).Value
Dest = .Cells(11, 1).Value & "" & .Cells(i, 2).Value
FileCopy Srce, Dest
Next
End With
MsgBox "On a copié " & Ifin-Ideb+1 & " fichiers"
End Sub



--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
ou http://www.bellamyjc.org ou http://jc.bellamy.free.fr