OVH Cloud OVH Cloud

Problème avec Sendkeys

11 réponses
Avatar
khinoa
Bonjour à tous,

J'ai un classeur de type xls, je voudrais le transformer en csv. Quand
j'enregistre manuellement le classeur sous le format CSV, Fichier,
Enregistrer sous, CSV, une première boite me demande "Voulez-vous conserver
le format du classeur csv" je réponds OUI. Puis je ferme avec Fichier,
Fermer et Excel me demande alors si je veux enregistrer les modifs, je
réponds OUI, et une seconde boite, identique à la première, me redemande si
je veux conserver le format CSV, je réponds à nouveau OUI et le classeur se
ferme. Puis j'ouvre ce classeur avec le bloc-notes et les données disposées
en colonnes sont bien séparées par le point-virgule. Cela fonctionne bien
manuellement. Malheureusement je ne peux reproduire le code avec
l'enregistreur de macro.

Je voudrais seulement automatiser ce processus afin de ne pas voir de boite
de dialogue s'afficher et pourtant répondre oui quand il le faut. J'ai
essayé le code ci-dessous mais il ne fonctionne pas vraiment, il me crée
bien un fichier csv mais les données sont illisibles et le volume est
quasiment identique au fichier xls, alors qu'avec du csv généralement c'est
plus léger. Dans quel ordre faut-il mettre Wait, SendKeys et SaveAs?

Application.DisplayAlerts = False
Workbook(essai.xls).Activate
ActiveWorkbook.SaveAs Filename:="C\TOTO\essai.csv"
Application.Wait Now + TimeValue("00:00:05")
Workbooks(essai.xls).Close True 'enregistre les modifs
Application.Wait Now + TimeValue("00:00:05")
Application.SendKeys "{LEFT}~~", True
ActiveWorkbook.SaveAs Filename:="C\TOTO\essai.csv" 'voulez-vous conserver le
format, OUI
Application.Wait Now + TimeValue("00:00:05")
Application.SendKeys "{LEFT}~~", True
ActiveWorkbook.SaveAs Filename:="C\TOTO\essai.csv" 'voulez-vous conserver le
format, OUI
Application.Wait Now + TimeValue("00:00:05")
Application.SendKeys "{LEFT}~~", True
Application.DisplayAlerts = True

D'avance merci

khinoa

1 réponse

1 2
Avatar
MichDenis
| En revanche, pourquoi mettre "Application.DisplayAlerts = False" alors qu'il
| n'y a pas de DisplayAlert dans ce cas ?
| Si une telle commande est conservée dans le code, n'est-ce pas le risque de
| passer à coté d'un message Excel ...
| Par exemple c'est le risque d'écraser le précédent fichier Test.csv auquel
| on tient peut-etre ;-)

Tu transformes la procédure d'après tes besoins mais dans le texte original
de la question, il y avait ceci :

"afin de ne pas voir de boite de dialogue s'afficher "
1 2