Macro pour enregistrer sur clé usb
waea
-
waea Messages postés 43 Statut Membre -
waea Messages postés 43 Statut Membre -
Bonjour,
voilà mon petit problème : je n'arrive pas à écrire une macro qui me permettre d'enregistrer un fichier excel sur une clé usb dont la lettre peut changer (F,G ...;) tout cela relié à un petit bouton.
le fichier à enregistrer est un fichier xlsm, donc qui fonctionne avec macros
quelqu'un peut-il m'aider à résoudre cette énigme ??
merci d'avance
voilà mon petit problème : je n'arrive pas à écrire une macro qui me permettre d'enregistrer un fichier excel sur une clé usb dont la lettre peut changer (F,G ...;) tout cela relié à un petit bouton.
le fichier à enregistrer est un fichier xlsm, donc qui fonctionne avec macros
quelqu'un peut-il m'aider à résoudre cette énigme ??
merci d'avance
A voir également:
- Macro pour enregistrer sur clé usb
- Clé usb non détectée - Guide
- Clé usb - Accueil - Stockage
- Formater clé usb - Guide
- Clé windows 8 - Guide
- Audacity enregistrer son pc - Guide
13 réponses
bonsoir
fonction pour connaitre la lettre de l'usb connectée
End Sub
fonction pour connaitre la lettre de l'usb connectée
Function lettre_usb()
ordi = "."
Set objet_WMI = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & ordi & "\root\cimv2")
Set liste_pilotes = objet_WMI.ExecQuery _
("Select * from Win32_LogicalDisk")
For Each pilote In liste_pilotes
If pilote.DriveType = 2 Then
lettre_usb = pilote.DeviceID
Exit Function
End If
Next
lettre_usb = "aucune clé connectée"
End Function
Sub test()
msgbox lettre_usb
End Sub
Bonsoir et merci d'avoir répondu...............mais
pour gagner en précision, voiçi ce que je souhaiterais ;
une boite de dialogue qui me connecte de suite sur la clé usb et sur le fichier en question
avec la possibilité de changer le nom du fichier si par hasard je voulais en avoir plusieurs pour différentes raisons
ensuite, évidemment la boite de dialogue étant standard, je n' aurais plus qu'à enregistrer mon travail
j'espère que tout cela est plus clair
merci d'avance
pour gagner en précision, voiçi ce que je souhaiterais ;
une boite de dialogue qui me connecte de suite sur la clé usb et sur le fichier en question
avec la possibilité de changer le nom du fichier si par hasard je voulais en avoir plusieurs pour différentes raisons
ensuite, évidemment la boite de dialogue étant standard, je n' aurais plus qu'à enregistrer mon travail
j'espère que tout cela est plus clair
merci d'avance
Bin, c'est du vba de base !
tu as la lettre, tu connais le chemin dans ta clé, donc tu utilises open filename
ou tu changes de pilote par
chdir la letttre usb
puis get openfilename tu peux faire ca avec l'enregistreur de macros...
tu as la lettre, tu connais le chemin dans ta clé, donc tu utilises open filename
ou tu changes de pilote par
chdir la letttre usb
puis get openfilename tu peux faire ca avec l'enregistreur de macros...
Bonjour,
merci tout d'abord, mais il me serait agréable d'avoir une idée du code écrit dans le cas où la lettre de la clé pourrait changer!
tout cela avec les infos que j'ai donné plus haut
merci encore
merci tout d'abord, mais il me serait agréable d'avoir une idée du code écrit dans le cas où la lettre de la clé pourrait changer!
tout cela avec les infos que j'ai donné plus haut
merci encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir,
souhaites-tu sauvegarder tjs sur la meme clé ? ds ce cas on pourrait utiliser le nom de la clé, comme ici....
sinon on peut aussi sauvegarder sur la premiere clé USB détectée (au cas où y'en aurait plusieurs, mais si y'a un disque externe ça risque de passer dessus également) qui soit "writable" (cas d'une clé protégée)....pour eviter l'hsitoire du disque externe on peut aussi imaginer sauvegarder ds un dossier précis (du coup s'il est absent c pas le bon disque...)...bref, plein de trucs (en passant tres probablement par wmi comme michel_m le propose)...dis-nous....
souhaites-tu sauvegarder tjs sur la meme clé ? ds ce cas on pourrait utiliser le nom de la clé, comme ici....
sinon on peut aussi sauvegarder sur la premiere clé USB détectée (au cas où y'en aurait plusieurs, mais si y'a un disque externe ça risque de passer dessus également) qui soit "writable" (cas d'une clé protégée)....pour eviter l'hsitoire du disque externe on peut aussi imaginer sauvegarder ds un dossier précis (du coup s'il est absent c pas le bon disque...)...bref, plein de trucs (en passant tres probablement par wmi comme michel_m le propose)...dis-nous....
bonjour,
j'ai essyé le code de michel_m mais cela bloque ici
Wscript.Echo "DeviceID: " & objDisk.DeviceID
de plus ma clé est en G mais elle pourrait être aussi en F..........alors que puis_je faire?
je bloque là !
merci d'avance
waea
j'ai essyé le code de michel_m mais cela bloque ici
Wscript.Echo "DeviceID: " & objDisk.DeviceID
de plus ma clé est en G mais elle pourrait être aussi en F..........alors que puis_je faire?
je bloque là !
merci d'avance
waea
Bonjour,
si tu veux utiliser le code de michel_m, utilises le premier, le second est un vbs...
As-tu regardé le lien de mon post 6 ? peux-tu stp répondre à ces questions (en gros comment repérer la clé usb, car il existe bcp de types de "disques amovibles" en windows ne fait pas la différence....) ?
si tu veux utiliser le code de michel_m, utilises le premier, le second est un vbs...
As-tu regardé le lien de mon post 6 ? peux-tu stp répondre à ces questions (en gros comment repérer la clé usb, car il existe bcp de types de "disques amovibles" en windows ne fait pas la différence....) ?
bonjour,
après essai du 1er code cela me donne une boite de dialogue avec F reconnu pour ma clé usb insérée.
mais je ne peux rien faire de plus..........ni copier le classeur avec macros ni rien du tout !
help me please !
waea
après essai du 1er code cela me donne une boite de dialogue avec F reconnu pour ma clé usb insérée.
mais je ne peux rien faire de plus..........ni copier le classeur avec macros ni rien du tout !
help me please !
waea
Re,
tu ne reponds toujours pas à mes questions....ton probleme est mal énoncé (ou pas comptement) ! que fait-on si plusieurs clés usb branchées (plusieurs 'disques amovibles'), comment repere-t-on la clé sur laquelle sauvegarder, on prend n'importe laquelle (au risque d'écrire sur un disque externe ou une cate sd ou autre) ? ensuite si tu veux qu'on ecrive tout le code pour toi j'aurais tendance à dire faut pas pousser, un peu de recherche et tu devrais t'en sortir pour trouver le code pour sauvegarder (en meme tps, jsuis gentil aujourd'hui, si tu réponds aux questions ptet bien que jte ferai ça...)
"help me please ! " => bah écoute, là jfais ce que je peux mais c'est toi qui ne m'aide pas à t'aider :p
tu ne reponds toujours pas à mes questions....ton probleme est mal énoncé (ou pas comptement) ! que fait-on si plusieurs clés usb branchées (plusieurs 'disques amovibles'), comment repere-t-on la clé sur laquelle sauvegarder, on prend n'importe laquelle (au risque d'écrire sur un disque externe ou une cate sd ou autre) ? ensuite si tu veux qu'on ecrive tout le code pour toi j'aurais tendance à dire faut pas pousser, un peu de recherche et tu devrais t'en sortir pour trouver le code pour sauvegarder (en meme tps, jsuis gentil aujourd'hui, si tu réponds aux questions ptet bien que jte ferai ça...)
"help me please ! " => bah écoute, là jfais ce que je peux mais c'est toi qui ne m'aide pas à t'aider :p
Bonjour et pardon si je vous ai froissé.............je n'avais pas pris le temps de bien comprndre vos demandes !
en fait, il n'y a qu'une clé de brancher et elle peut porter soit la lettre F soit la lettre G dans le cas d'une autre clé qui comporte une partie sur laquelle je peux mettre des données .
je ne mesurais pas que la lettre de la clé pouvait avoir une importance.
dans le cas ou il est plus facile de n'avoir qu'une lettre alors il faudrait chosiir G.
j'avais bien toruver un code qui me permettait de transférer le fichier, mais je ne pouvais pas l'ouvrir ensuite de la dite clé???????????
on me disait que le fichier n'était pas reconnu.............donc mon code très simple ne fonctionne pas. c'est pourquoi je fais appel à vous.
je me rend compte que je vous demande beaucoup et si vous ne voulez pas poursuivre je le comprendrais fort bien !
vous avez déjà fait beaucoup
est-ce que ces informations vous conviennent ?
cordialement
waea
en fait, il n'y a qu'une clé de brancher et elle peut porter soit la lettre F soit la lettre G dans le cas d'une autre clé qui comporte une partie sur laquelle je peux mettre des données .
je ne mesurais pas que la lettre de la clé pouvait avoir une importance.
dans le cas ou il est plus facile de n'avoir qu'une lettre alors il faudrait chosiir G.
j'avais bien toruver un code qui me permettait de transférer le fichier, mais je ne pouvais pas l'ouvrir ensuite de la dite clé???????????
on me disait que le fichier n'était pas reconnu.............donc mon code très simple ne fonctionne pas. c'est pourquoi je fais appel à vous.
je me rend compte que je vous demande beaucoup et si vous ne voulez pas poursuivre je le comprendrais fort bien !
vous avez déjà fait beaucoup
est-ce que ces informations vous conviennent ?
cordialement
waea
Re, pas de souci je ne suis pas "froissé", ptet juste un peu frustré, je sens que la solution est pas loin mais il manque des éléments et on y arrive pas....
Bon alors ,je ré-explique, la difficulté ici consiste à etre sur d'enregistrer sur le bon "disque amovible" car c'est ainsi que windows reconnait les clés usb mais aussi un tas d'autres trucs comme par ex un disque dur ou meme un lecteur mp3 ou encore un appareil photo dans certains cas....il nous faut donc trouver un moyen d'identifier la clé usb sur laquelle enregistrer au cas ou plusieurs appareils soient branchés, cela peut etre le nom de la clé USB, un fichier ou dossier déjà présent sur la clé ou autre...
Je te propose ceci :
1 - il faut que tu reperes le nom de ta clé usb (ce qui s'affiche dans poste de travail), si elle n'a pas de nom ("disque amovible") donnes lui en un..
2 ensuite tu colles ce code ds ton fichier excel en adaptant le nom de ta clé (dans mon cas j'avais mis USB TOM):
Sil la solution avec le nom ne convient pas, il faudra trouver un autre moyen d'etre sur qu'on est sur le bon périphérique usb (présence d'un fichier/dossier?)....
Bon alors ,je ré-explique, la difficulté ici consiste à etre sur d'enregistrer sur le bon "disque amovible" car c'est ainsi que windows reconnait les clés usb mais aussi un tas d'autres trucs comme par ex un disque dur ou meme un lecteur mp3 ou encore un appareil photo dans certains cas....il nous faut donc trouver un moyen d'identifier la clé usb sur laquelle enregistrer au cas ou plusieurs appareils soient branchés, cela peut etre le nom de la clé USB, un fichier ou dossier déjà présent sur la clé ou autre...
Je te propose ceci :
1 - il faut que tu reperes le nom de ta clé usb (ce qui s'affiche dans poste de travail), si elle n'a pas de nom ("disque amovible") donnes lui en un..
2 ensuite tu colles ce code ds ton fichier excel en adaptant le nom de ta clé (dans mon cas j'avais mis USB TOM):
Sub usbtransfer()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery _
("SELECT * FROM Win32_LogicalDisk WHERE DriveType = 2", , 48)
For Each objdisk In colDisks
If objdisk.VolumeName = "USB TOM" Then
rdrive = objdisk.deviceid & "\"
End If
Next objdisk
ActiveWorkbook.SaveAs rdrive & ActiveWorkbook.Name
End Sub
Sil la solution avec le nom ne convient pas, il faudra trouver un autre moyen d'etre sur qu'on est sur le bon périphérique usb (présence d'un fichier/dossier?)....
Re,
oui, mais on peut ne pas afficher ce message en remplaçant :
par :
oui, mais on peut ne pas afficher ce message en remplaçant :
ActiveWorkbook.SaveAs rdrive & ActiveWorkbook.Name
par :
Application.DisplayAlerts = False ActiveWorkbook.SaveAs rdrive & ActiveWorkbook.Name Application.DisplayAlerts = True
re bonjour,
en fait en essayant votre code tout c'est bien passé sur la clé puis j'ai fermé excel et lors d'un redémarrage de windows j'ai eu un écran bleu me signifiant un arrêt non planifié de windows.
il fallait que je choisisse une option : sans échec, etc.... windows normal
pouvez vous m'expliquez ce que cela signifie ?
pour moi cela vient de la procédure qui surement pose un petit pb à windows.
sans doute une manipulation que je dois faire en plus?
merci d'avance
waea
en fait en essayant votre code tout c'est bien passé sur la clé puis j'ai fermé excel et lors d'un redémarrage de windows j'ai eu un écran bleu me signifiant un arrêt non planifié de windows.
il fallait que je choisisse une option : sans échec, etc.... windows normal
pouvez vous m'expliquez ce que cela signifie ?
pour moi cela vient de la procédure qui surement pose un petit pb à windows.
sans doute une manipulation que je dois faire en plus?
merci d'avance
waea
Bonjour,
Petit conseil, lorsque l’on travaille avec une clef USB, avant de l'enlever, il est recommandé de passer par le poste de travail et un clic droit sur le périphérique concerné et clic [Ejecter].
Faites un essai pour voir si le probéme est à se niveau.
Petit conseil, lorsque l’on travaille avec une clef USB, avant de l'enlever, il est recommandé de passer par le poste de travail et un clic droit sur le périphérique concerné et clic [Ejecter].
Faites un essai pour voir si le probéme est à se niveau.
Bonjour waea, Jean-Pierre,
Je pense comme Jean-Pierre, il s'agit peut-etre d'un probleme d'utilisation de la clé usb....Pour ce qui est de la procédure vba, je ne vois pas ce qui pourrait causer ce probleme, je l'ai testée plusieurs fois et je viens même d'essayer sur une autre machine (sous Vista), pas de probleme....De plus, j'utilise ce genre de procédures en vba/vbs depuis pas mal de temps et je n'ai jamais observé ce comportement...
As-tu fais un nouveau test depuis ? le probleme se reproduit-il à chaque utilisation de la macro ?
Je pense comme Jean-Pierre, il s'agit peut-etre d'un probleme d'utilisation de la clé usb....Pour ce qui est de la procédure vba, je ne vois pas ce qui pourrait causer ce probleme, je l'ai testée plusieurs fois et je viens même d'essayer sur une autre machine (sous Vista), pas de probleme....De plus, j'utilise ce genre de procédures en vba/vbs depuis pas mal de temps et je n'ai jamais observé ce comportement...
As-tu fais un nouveau test depuis ? le probleme se reproduit-il à chaque utilisation de la macro ?
re bonjour,
tout d'abord j'ai recommencé et cela fonctionne : en fait j'ai une clé qui comporte un logiciel intégré nécessitant un mot de passe et un menu. j'avais cliquer pour fermer la clé via le programme intégré mais visiblement cela ne suffit pas !
il faut que je passe aussi par le menu d'éjection de windows !
par contre j'ai essayé avec une autre clé que j'ai nommé aussi PRI (pour privé) qui cette fois ci est en F: (alors que la clé précédente était en G:) ; le fichier s'enregistre également mais sur l'explorateur windows je n'ai pas la version de la copie ( date heure) de l'enregistrement ?
le fichier semble s'ouvrir également mais il serait pratique d'avoir ces infos!
pouvez vous m'expliquez SVP
merci d'avance
waea
tout d'abord j'ai recommencé et cela fonctionne : en fait j'ai une clé qui comporte un logiciel intégré nécessitant un mot de passe et un menu. j'avais cliquer pour fermer la clé via le programme intégré mais visiblement cela ne suffit pas !
il faut que je passe aussi par le menu d'éjection de windows !
par contre j'ai essayé avec une autre clé que j'ai nommé aussi PRI (pour privé) qui cette fois ci est en F: (alors que la clé précédente était en G:) ; le fichier s'enregistre également mais sur l'explorateur windows je n'ai pas la version de la copie ( date heure) de l'enregistrement ?
le fichier semble s'ouvrir également mais il serait pratique d'avoir ces infos!
pouvez vous m'expliquez SVP
merci d'avance
waea
Je viens de faire un essai de cette procédure et dans mon cas je reçois toujours le lettre
[A:] alors que la clef se trouve en [G:] !
C'est ou l'astuce ?
le code de michel_m est correct, il detecte le premier "removable disk" (drivetype = 2) connecté(mais ça peut etre autre chose, windows ne fait pas réellement la différence entre un disque externe, un lecteur de cartes memoire ou même un lecteur de disquette connecté en usb - c tout du 'disque amovible')...la question qui se pose c'est à quoi correspond ce lecteur A: sur ta machine ?
Merci infiniment pour l'explication qui renforce se que j'ai découvert entre temps.
Pour notre culture informatique
vbscript (trouvé sur le net de la liste des pilotes). Il faut que le composant soit installé pour être pris compte
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colDisks = objWMIService.ExecQuery _ ("Select * from Win32_LogicalDisk") For Each objDisk in colDisks Wscript.Echo "DeviceID: "& objDisk.DeviceID Select Case objDisk.DriveType Case 1 Wscript.Echo "No root directory. Drive type could not be " _ & "determined." Case 2 Wscript.Echo "DriveType: "& "Removable drive." Case 3 Wscript.Echo "DriveType: "& "Local hard disk." Case 4 Wscript.Echo "DriveType: "& "Network disk." Case 5 Wscript.Echo "DriveType: "& "Compact disk." Case 6 Wscript.Echo "DriveType: "& "RAM disk." Case Else Wscript.Echo "Drive type could not be determined." End Select Nextainsi at home la clé USB se trouve sur le lecteur G: et le dd externe sur H:
"il faut que le composant soit installé", de quel composant parles-tu ?