transfert données Excel vers txt

transfert données Excel vers txt - VB/VBA/VBS - Programmation

Marsh Posté le 27-11-2008 à 14:56:10    

Bonjour,
J'ai un souci sur l'ecriture d'un petit code VB me permettant de faire un transfert de quelques données de Excel vers un fichier TXT.
 
 voici le code:
 
 
Sub Générer_PAT()
'
' Générer_PAT Macro
'
' Touche de raccourci du clavier: Ctrl+Maj+M
 
 ' '  Declaration variables
    Dim FileName, t As Integer
 
'Selection de la zone à copier
   
ActiveSheet.Range("K2" ).CurrentRegion.Select
Selection.Copy
 
 
 
 '  Demande fichier de sauvegarde
     FileName = Application.GetSaveAsFilename(Nom_Fichier, "Text Files (*.txt), *.txt" )
 
 '  Ouverture fichier
     Open FileName For Output As #1
     
         
         t = Sendkeys "^v"
         
'          Ecriture de la ligne dans le fichier si non vide
           Print #1, t
           
 '  Fermeture fichier
 
Close #1
End Sub
 
Le retour de ce code ne fonctionne par car il m'indique à chaque fois qu'il ne reconnait pas la formule t = sendkeys "^v", c'est à dire le collage du presse papier !!! je ne suis pas expert alors si vous pouviez m'aider je vous en remercie.
 
 

Reply

Marsh Posté le 27-11-2008 à 14:56:10   

Reply

Marsh Posté le 27-11-2008 à 14:58:10    

Si tu enregistres une macro à la main ? il t'indique quoi ?
(arf, il doit pas te faire le vrai copier coller)
Que dit l'aide sur "copy/paste" ?

Reply

Marsh Posté le 09-12-2008 à 15:55:44    

Bonjour
 
Ca ne marche pas comme ca, tu ne peux affecter a une variable, le resultat d'un Sendkeys, qui plus est le 'collé'.
 
Il faut passer par une étape intermediaire, comme par exemple creer un nouveau fichier, coller ce que tu veux dedans et exporter ce dit fichier en txt/csv, ou une nouvelle feuille et exporter la feuille en txt/csv. Ou comme dans ton exemple, si tu n'as qu'une cellule, affecter à ta variable 't' la valeur de la cellule au lieu du SendKeys :  
t = ActiveSheet.Range("K2" ).value
 
Cordialement


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 09-12-2008 à 15:59:52    

pour compléter ce que que dit dje... en fait, ça serait bien de dire ce que tu veux précisément "enregistrer" dans ton fichier...
 
Ensuite, en effet, le plus "simple" reste la création d'un nouveau fichier, et tu y ajoutes tout dedans...
Tu dois aussi pouvoir "écrire" ton fichier en ajoutant ton texte petit à petit (mais bon, là pour le coup, Excel ne va plus servir à grand chose)
 
EN résumé
 
1. création d'un nouveau classeur
2. recopiage des données dans ce classeur Excel
3. méthode saveas sur ce nouveau classeur avec les options qui t'intéressent, csv, etc...
4. fermeture/suppression de ce classeur "Excel" (vu que c'est juste le csv qui t'intéresse toi)

Reply

Sujets relatifs:

Leave a Replay

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