Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/08/2011, 12h51   #1
Invité de passage
 
Inscription : août 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 3
Points : 0
Points : 0
Par défaut export en csv avec un bouton

bonjour à tous !
j'ai une feuille excel dont j'aimerai sauvegarder une copie en csv en appuyant sur un bouton.
Je trouve plein d'exemple sur google mais très peu fonctionne correctement.
quelqu'un a t-il déjà réussi à le faire ?
Merci pour votre aide
boitenospam est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 27/08/2011, 18h25   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 889
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 889
Points : 7 162
Points : 7 162
Bonjour,

Citation:
Je trouve plein d'exemple sur google mais très peu fonctionne correctement.
Peux tu développer ce qui ne te convient pas.
Quelle est la méthode utilisée?
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 20h50   #3
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 702
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 702
Points : 3 620
Points : 3 620
Salut,tu n'as pas vraiment cherché car les solutions opérationnelles pullulent, utilise l'enregistreur de macros et optimise le code manuellement
Voir également sur ce site http://www.google.fr/#sclient=psy&hl...w=1045&bih=734
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2011, 22h54   #4
Invité de passage
 
Inscription : août 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 3
Points : 0
Points : 0
bonsoir,
tout d'abord merci beaucoup d'accorder un peu d'attention à mon problème et d'avoir pris le temps d'y répondre
j'ai cherché toute l'après midi et j'ai enfin trouvé le code de mes rêves car il fonctionne et en plus permet du choisir la ligne et colonne de départ (je ferai un bouton ensuite sur la feuille mais j'ai 2 problèmes, voivi déjà le code :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub Make_CSV()
Dim sFile As String
Dim sPath As String
Dim sLine As String
 
Dim r As Integer
Dim c As Integer
 
    r = 1 'Starting row of data
 
    sPath = "C:\TEMP\"
    sFile = "MyText_" & Format(Now, "YYYYMMDD_HHMMSS") & ".CSV"
 
    Close #1
    Open sPath & sFile For Output As #1
    Do Until IsEmpty(Range("D" & r))
    'You can also Do Until r = 17 (get the first 16 cells)
        sLine = ""
        c = 4
        Do Until IsEmpty(Cells(1, c))
           'Number of Columns - You could use a FOR / NEXT loop instead
            sLine = sLine & """" & Replace(Cells(r, c), ";", ":") & """" & ","
            c = c + 1
        Loop
        Print #1, Left(sLine, Len(sLine) - 1) 'Remove the trailing comma
        r = r + 1
    Loop
    Close #1
End Sub

deux probème :
-j'aimerai que le fichier csv soit enregistrer dans le dossier courant à coté du xlsm ouvert
-supprimer les "" et avoir des ; à la place des ,

je vois bien les lignes à modifier mais je que je modifie ne fonctionne pas bien
boitenospam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2011, 03h57   #5
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 702
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 702
Points : 3 620
Points : 3 620
Salut, à tester
Code :
sPath = ThisWorkbook.Path & "\"
Code :
sLine = sLine & ";" & Cells(r, c)
Code :
Print #1, Right$(sLine, Len(sLine) - 1)
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2011, 17h36   #6
Invité de passage
 
Inscription : août 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 3
Points : 0
Points : 0
Par défaut [RESOLU]

Le code est maintenant parfait !
l'export produit un vrai fichier csv et on peut même choisir à partir de quelle ligne et quelle colonne, j'ai ajouté un bouton dans ma feuille qui appele la macro, que du bonheur !
Merci pour votre aide

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
Sub Make_CSV()
Dim sFile As String
Dim sPath As String
Dim sLine As String
 
Dim r As Integer
Dim c As Integer
 
    r = 1 'Starting row of data
 
    sPath = ThisWorkbook.Path & "\"
    sFile = "Ucopia_" & Format(Now, "DDMM_HHMMSS") & ".CSV"
 
    Close #1
    Open sPath & sFile For Output As #1
    Do Until IsEmpty(Range("A" & r))
    'You can also Do Until r = 17 (get the first 16 cells)
        sLine = ""
        c = 4
        Do Until IsEmpty(Cells(1, c))
           'Number of Columns - You could use a FOR / NEXT loop instead
            sLine = sLine & ";" & Cells(r, c)
            c = c + 1
        Loop
        Print #1, Right$(sLine, Len(sLine) - 1) 'Remove the trailing comma
        r = r + 1
    Loop
    Close #1
End Sub
boitenospam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2011, 19h07   #7
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 702
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 702
Points : 3 620
Points : 3 620
Salut,non, changer les déclarations Integer en Long
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h22.


 
 
 
 
Partenaires

Hébergement Web