Enregistrer une feuille au format txt

Enregistrer une feuille au format txt - VB/VBA/VBS - Programmation

Marsh Posté le 12-04-2013 à 15:02:18    

Bonjour,
 
J'aimerai utiliser une macro qui va enregistrer la feuille active ("Upload" ) au format txt (Tab delimited) sur le bureau, en prenant comme nom une valeur entrée dans la cellule  "i1" de la feuille "Sheet1" (je fais une boite de dialogue qui demande de saisir le nom du fichier et qui le reporte en i1).
 
Mais pour arriver à mettre l'un dans l'autre j'en chie  [:andogogol]  
 
Si quelqu'un a une macro qui fait ca ou un bout de macro qui fait une partie du travail je dis pas non  :o  
 
merci d'avance


---------------
Right proudly high over Dublin Town they hung out the flag of war
Reply

Marsh Posté le 12-04-2013 à 15:02:18   

Reply

Marsh Posté le 13-04-2013 à 13:56:37    

 
           Bonjour,       l'enregistreur de macros peut être un ami ‼ …
 


---------------
                Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !                             Liste des accus FAD !
Reply

Marsh Posté le 15-04-2013 à 19:00:44    

Avec l'enregistreur de macro j'arrive à enregistrer la manipulation (lieux, format) mais le nom du classeur reste fixe vu que c'est le nom que j'entre quand j'enregistre mon classeur.


---------------
Right proudly high over Dublin Town they hung out the flag of war
Reply

Marsh Posté le 16-04-2013 à 09:04:26    

 
           Dans l'enregistrement du classeur tu lui passes l'adresse de la cellule …
 

Reply

Marsh Posté le 16-04-2013 à 11:29:27    

J'ai trouvé quelque chose qui fait mon bonheur, macro qui enregistre la feuille active au format .txt avec une boite de dialogue qui s'ouvre afin de demander à l'utilisateur de choisir un nom pour le fichier. Fichier enregistrer dans le répertoire par défaut (Mes documents)
 
Private Sub saveTxt()
 
    Dim wb As Workbook, ws As Worksheet
    Dim newWB As Workbook, newWS As Worksheet
    Dim strSaveAs As String
 
    On Error GoTo errSave
     
    Application.ScreenUpdating = False
         
    Set wb = ActiveWorkbook
    Set ws = ActiveSheet
 
    With ws
        .Select
        .Copy
    End With
 
    Set newWB = ActiveWorkbook
    Set newWS = ActiveSheet
 
    strSaveAs = Inputbox("Please enter filename." )
     
    With newWB
        .SaveAs strSaveAs, xlText
        .Close (False)
    End With
 
    wb.Activate
    ws.Select
 
exitSave:
    Application.ScreenUpdating = True
    Exit Sub
 
errSave:
    MsgBox (Err.Number)
    MsgBox (Err.Description)
    Resume exitSave
 
End Sub


---------------
Right proudly high over Dublin Town they hung out the flag of war
Reply

Marsh Posté le 16-04-2013 à 11:54:27    

 
         Faut faire attention quand on fait un copier / coller d'un code via le net
         car souvent y a du pas bon vu les codes de débutant ! …
 

  • Le  .Select  est inutile avant le  .Copy car c'est déjà la feuille active !


  • Idem pour le  Select  suivant …


  • En consultant l'aide de la méthode  Close  associé à un classeur (à un objet  Workbook  donc),

         tu t'apercevras que non seulement elle peut enregistrer le fichier mais aussi réclamer son nom ‼
 

  • La variable objet  newWS  ne sert à rien sauf à perdre du temps et bouffer de la mémoire !

         J'utilise souvent des variables objets mais dans ce cas précis, je n'en utiliserais aucune …
 

Reply

Marsh Posté le 16-04-2013 à 14:35:32    

Merci pour ces conseils éclairés (enlever les select en trop, et le newws), la macro s’exécute un petit peu plus vite qu'avant.
 
Je vais voir pour la méthode Close.


---------------
Right proudly high over Dublin Town they hung out the flag of war
Reply

Sujets relatifs:

Leave a Replay

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