Exporter des données en CSV_VBA
Résolu/Fermé
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
-
Modifié par irongege le 23/10/2014 à 23:00
Maurice - 12 nov. 2014 à 12:59
Maurice - 12 nov. 2014 à 12:59
A voir également:
- Exporter des données en CSV_VBA
- Chrome exporter favoris - Guide
- Exporter favoris firefox - Guide
- Exporter conversation sms android - Guide
- Exporter photos google photos - Guide
- Trier des données excel - Guide
20 réponses
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
23 oct. 2014 à 15:29
23 oct. 2014 à 15:29
Bonjour,
Vaux-t-il la peine de chercher la solution ou c'est trop tard ... ?
Vaux-t-il la peine de chercher la solution ou c'est trop tard ... ?
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
23 oct. 2014 à 22:45
23 oct. 2014 à 22:45
Bonsoir Le Pingou,
Non, je galère toujours je n'arrive pas à trouver la solution.
Si vous pouvez m'aider à résoudre le problème ce sera vraiement gentil!
Merci d'avance,
Non, je galère toujours je n'arrive pas à trouver la solution.
Si vous pouvez m'aider à résoudre le problème ce sera vraiement gentil!
Merci d'avance,
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
23 oct. 2014 à 22:54
23 oct. 2014 à 22:54
Bonjour,
OK je regarde votre fichier et comment fonctionne votre code..... pour cerner le problème... !
OK je regarde votre fichier et comment fonctionne votre code..... pour cerner le problème... !
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
23 oct. 2014 à 23:05
23 oct. 2014 à 23:05
Bonjour,
A première vue, il manque une valeur pour [cMax] dans la ligne d'instruction :
Avez-vous une précision.... ?
A première vue, il manque une valeur pour [cMax] dans la ligne d'instruction :
For Index = 1 To cMax
Avez-vous une précision.... ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
23 oct. 2014 à 23:16
23 oct. 2014 à 23:16
Au fait je n'ai pas de précision sur Max, j'ai essayé de d'dapter un code retouvé sur le net.
Mais mon idée, c'est d'arriver à extraire en csv la palge de donnée.
Si vous avez une solution, vous pouvez modifier le code!!
Merci d'avance!
Mais mon idée, c'est d'arriver à extraire en csv la palge de donnée.
Si vous avez une solution, vous pouvez modifier le code!!
Merci d'avance!
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
Modifié par Le Pingou le 23/10/2014 à 23:26
Modifié par Le Pingou le 23/10/2014 à 23:26
Bonjour,
Merci pour l'information, la solution pour demain.
Toutefois essayer de supprimer la ligne d'instruction
y compris :
Bonne nuit.
Salutations.
Le Pingou
Merci pour l'information, la solution pour demain.
Toutefois essayer de supprimer la ligne d'instruction
For Index = 1 To cMax
y compris :
Next Index
Bonne nuit.
Salutations.
Le Pingou
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
24 oct. 2014 à 20:34
24 oct. 2014 à 20:34
Bonsoir Le Pingou,
Avez-vous trouvé la solution?
Merci d'avance!
Avez-vous trouvé la solution?
Merci d'avance!
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
24 oct. 2014 à 21:59
24 oct. 2014 à 21:59
Bonjour,
J'attendais de savoir si vous avez essayé selon mon message précédent !
J'attendais de savoir si vous avez essayé selon mon message précédent !
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
24 oct. 2014 à 22:08
24 oct. 2014 à 22:08
Bonjour,
Ou voulez-vous insérer la plage de donnée à exporter (la position dans le classeur CSV.... ?
Ou voulez-vous insérer la plage de donnée à exporter (la position dans le classeur CSV.... ?
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
24 oct. 2014 à 22:26
24 oct. 2014 à 22:26
Bonjour,
Pour finaliser la solution j'ai besoin de la réponse aux 2 messages précédents !
Pour finaliser la solution j'ai besoin de la réponse aux 2 messages précédents !
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
25 oct. 2014 à 17:52
25 oct. 2014 à 17:52
Bonjour Le Pingou,
Les classeurs exportés doiventent être placés dans des sous repertoires. C'est à dire le même repertoire que l'outil maios cahque classeur exporté sera dans un sous repertoire qui porte le nom du classeur.
Merci id'avance!
Les classeurs exportés doiventent être placés dans des sous repertoires. C'est à dire le même repertoire que l'outil maios cahque classeur exporté sera dans un sous repertoire qui porte le nom du classeur.
Merci id'avance!
Bonjour
le principe des csv le separateure est ";"
Voila une macro avec le test du repertoire
Sub CreatRepertoire()
Chemin = ActiveWorkbook.Path & "\"
MonRep = Chemin & "Export"
If Dir(MonRep, vbDirectory) = "" Then
MkDir (MonRep)
End If
Export MonRep
End Sub
Sub Export(Chemin)
Non = ActiveSheet.Name
Ext = ".csv"
Fichier = Non & Ext
CheminFiche = Chemin & "\" & Fichier
Sep = ";"
Nlig = Cells(Rows.Count, 2).End(xlUp).Row
Set Plage = Range("B6:E6,B8:E" & Nlig)
Open CheminFiche For Output As #1
For Each Lig In Plage.Rows
Tmp = ""
For Each Cel In Lig.Cells
Tmp = Tmp & CStr(Cel.Text) & Sep
Next
Print #1, Tmp
Next
Close
Set Plage = Nothing
MsgBox "Votre fichier CSV a été créé avec succès!"
End Sub
A+
Maurice
le principe des csv le separateure est ";"
Voila une macro avec le test du repertoire
Sub CreatRepertoire()
Chemin = ActiveWorkbook.Path & "\"
MonRep = Chemin & "Export"
If Dir(MonRep, vbDirectory) = "" Then
MkDir (MonRep)
End If
Export MonRep
End Sub
Sub Export(Chemin)
Non = ActiveSheet.Name
Ext = ".csv"
Fichier = Non & Ext
CheminFiche = Chemin & "\" & Fichier
Sep = ";"
Nlig = Cells(Rows.Count, 2).End(xlUp).Row
Set Plage = Range("B6:E6,B8:E" & Nlig)
Open CheminFiche For Output As #1
For Each Lig In Plage.Rows
Tmp = ""
For Each Cel In Lig.Cells
Tmp = Tmp & CStr(Cel.Text) & Sep
Next
Print #1, Tmp
Next
Close
Set Plage = Nothing
MsgBox "Votre fichier CSV a été créé avec succès!"
End Sub
A+
Maurice
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
26 oct. 2014 à 15:44
26 oct. 2014 à 15:44
Maurice!
Merci pour ta proposition qui fonctionne aussi!
J'ai finalement opté pour la méthode de pingou qui correspond plus à ma méthode!
En tout cas c'est vraiment gentil de votre part!
Bonne journée
Merci pour ta proposition qui fonctionne aussi!
J'ai finalement opté pour la méthode de pingou qui correspond plus à ma méthode!
En tout cas c'est vraiment gentil de votre part!
Bonne journée
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
25 oct. 2014 à 18:03
25 oct. 2014 à 18:03
Bonjour,
Merci pour l'information.
Concernant la suppression de
Le fichier [csv] est bien créer mais il est vide.
Entre temps Maurice vous a fournis une solution, ne voulant pas faire les choses à double, est-ce que cela vous suffit pour adapter votre code... ?
Merci pour l'information.
Concernant la suppression de
For Index = 1 To cMaxy compris :
Next Index
Le fichier [csv] est bien créer mais il est vide.
Entre temps Maurice vous a fournis une solution, ne voulant pas faire les choses à double, est-ce que cela vous suffit pour adapter votre code... ?
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
26 oct. 2014 à 14:55
26 oct. 2014 à 14:55
Bonjour,
Dans l'attente de votre bon vouloir, voici ma proposition basé sur votre fichier : https://www.cjoint.com/?3JAo7MMnNpw
Dans l'attente de votre bon vouloir, voici ma proposition basé sur votre fichier : https://www.cjoint.com/?3JAo7MMnNpw
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
26 oct. 2014 à 15:43
26 oct. 2014 à 15:43
Merci beaucoup Le Pingou!
Ce que vous avez fait est super!!
ca me vent vraiement!
J'ai cependant soulevé un autre point sur le même sujet.
Voir message ci-dessous
Ce que vous avez fait est super!!
ca me vent vraiement!
J'ai cependant soulevé un autre point sur le même sujet.
Voir message ci-dessous
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
26 oct. 2014 à 15:41
26 oct. 2014 à 15:41
Le Pingou,
Vous ne savez même pas à quel point vous m'avez sauvé!
C'est excellet! c'est exactement ce que je voulais
Merci infiniement.
En parallèle, Je souhaiterais rajouter une module dans mon outil qui permet de masquer certains onglets en fonction de la valeur dans un autre onglet.
J'ai commencé à coder mais je suis bloqué. Voici mon code:
Sub masquer_onglet()
Dim ws As Worksheet
Dim ilinecourante As String
Dim iderligne As String
Dim icolonnecourante As String
Dim idernierecolonne As String
iLigneCourante = 3
ipremierecolonne = 1
idernierecolonne = 2
iDerniereLigne = Sheets("Validation_Onglets").Range("A" & Rows.Count).End(xlUp).Row
With ActiveWorkbook
For iLigneCourante = 3 To iDerniereLigne
If Worksheet.Name = Worksheets("Validation_Onglets").Cells(iLigneCourante, 1).Value
And Worksheets("Validation_Onglets").Cells(iLigneCourante, 2) = "OUI"
Then
Worksheet.Visible = xlSheetVeryHidden
iLigneCourante = iLigneCourante + 1
End If
Next
End With
Je vous remets le fichier: https://www.cjoint.com/?DJApSw3YDti
Si vous m'aidez à résoudre ce dernier point, vous me sauvez vraiment
End Sub
Vous ne savez même pas à quel point vous m'avez sauvé!
C'est excellet! c'est exactement ce que je voulais
Merci infiniement.
En parallèle, Je souhaiterais rajouter une module dans mon outil qui permet de masquer certains onglets en fonction de la valeur dans un autre onglet.
J'ai commencé à coder mais je suis bloqué. Voici mon code:
Sub masquer_onglet()
Dim ws As Worksheet
Dim ilinecourante As String
Dim iderligne As String
Dim icolonnecourante As String
Dim idernierecolonne As String
iLigneCourante = 3
ipremierecolonne = 1
idernierecolonne = 2
iDerniereLigne = Sheets("Validation_Onglets").Range("A" & Rows.Count).End(xlUp).Row
With ActiveWorkbook
For iLigneCourante = 3 To iDerniereLigne
If Worksheet.Name = Worksheets("Validation_Onglets").Cells(iLigneCourante, 1).Value
And Worksheets("Validation_Onglets").Cells(iLigneCourante, 2) = "OUI"
Then
Worksheet.Visible = xlSheetVeryHidden
iLigneCourante = iLigneCourante + 1
End If
Next
End With
Je vous remets le fichier: https://www.cjoint.com/?DJApSw3YDti
Si vous m'aidez à résoudre ce dernier point, vous me sauvez vraiment
End Sub
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
26 oct. 2014 à 17:20
26 oct. 2014 à 17:20
Bonjour,
Merci pour l'information.
J'ai donné un oeil à votre fichier et je suis surpris que l'export ne fonctionne pas et dans ce cas je ne vais pas aller plus loin sans une explication.
Merci pour l'information.
J'ai donné un oeil à votre fichier et je suis surpris que l'export ne fonctionne pas et dans ce cas je ne vais pas aller plus loin sans une explication.
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
26 oct. 2014 à 17:56
26 oct. 2014 à 17:56
Désolé Le Pingou,
Ayant plusieurs version du fichier, je me suis trompé sur la dernière version.
Voici la bonne version: https://www.cjoint.com/c/DJAsaNK3FFi
Merci d'avance
Ayant plusieurs version du fichier, je me suis trompé sur la dernière version.
Voici la bonne version: https://www.cjoint.com/c/DJAsaNK3FFi
Merci d'avance
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
26 oct. 2014 à 18:19
26 oct. 2014 à 18:19
Le Pingou,
Merci c'est OK pour masquer les onglets.
La solution de Maurice fonctionne bien.
Merci en tout cas.
Je clôtue le sujet!
Merci c'est OK pour masquer les onglets.
La solution de Maurice fonctionne bien.
Merci en tout cas.
Je clôtue le sujet!
Le Pingou
Messages postés
12230
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
15 janvier 2025
1 454
26 oct. 2014 à 21:32
26 oct. 2014 à 21:32
Merci.
Bonjour
tien voila ta macro modifier
Sub Masquer_Onglet()
Nlig = Cells(Rows.Count, 1).End(xlUp).Row
For L = 4 To Nlig
If Cells(L, 2).Value = "Oui" Then
Sheets(Cells(L, 1).Value).Visible = 2
Else
Sheets(Cells(L, 1).Value).Visible = -1
End If
Next
End Sub
A+
Maurice
tien voila ta macro modifier
Sub Masquer_Onglet()
Nlig = Cells(Rows.Count, 1).End(xlUp).Row
For L = 4 To Nlig
If Cells(L, 2).Value = "Oui" Then
Sheets(Cells(L, 1).Value).Visible = 2
Else
Sheets(Cells(L, 1).Value).Visible = -1
End If
Next
End Sub
A+
Maurice
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
26 oct. 2014 à 18:18
26 oct. 2014 à 18:18
Bonsoir Maurice,
C'est super!!
ça fonctionne.
Je clôture le sujet!
C'est super!!
ça fonctionne.
Je clôture le sujet!
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
2 nov. 2014 à 22:12
2 nov. 2014 à 22:12
Bonsoir Maurice,
Je me permets de vous solliciter car je souhaiterais modifier une partie de mon outil avec la macro que vous m'avez faite.
En effet, avec mon responsable on souhaiterais que l'extraction du fichier csv soit comme suite.
En effet, on a découpé notre fichier en trois plages
plageentete = ligne 7
plagetitre = 8
plagedonnee = de la ligne 18 jusqu'à la fin de la plage de données
plagetotale = plageentete + plagetitre + plagedonnéee
Et ce que je souhaiterais, c'est d'avoir la plagetotale qui sera exportée en csv (toutes les plages en couleur orange dans mon fichier).
En parallèle je souhaiterais obtenir ceci:
-La concatenation des colonnes B et D dans le fichier csv qui sera généré
-Lorsqu'on a le mot "MAJUSCULE" dans une cellule de la ligne 17 les données dans le fichier csv seront en majuscule
Si vous pouvez m'aider à y arriver ce seraiit top! Car, c'est la dernière étape de mon outil que je dois présenter à mon responsable pour la fin de mon stage.
Je vous joins le fihcier. J'ai déjà fait 89% du travail en s'appuyant sur la macro qui vous m'avez donnée la dernière fois: https://www.cjoint.com/c/DKcwrs9chAY
Merci infimenet Maurice.
Je me permets de vous solliciter car je souhaiterais modifier une partie de mon outil avec la macro que vous m'avez faite.
En effet, avec mon responsable on souhaiterais que l'extraction du fichier csv soit comme suite.
En effet, on a découpé notre fichier en trois plages
plageentete = ligne 7
plagetitre = 8
plagedonnee = de la ligne 18 jusqu'à la fin de la plage de données
plagetotale = plageentete + plagetitre + plagedonnéee
Et ce que je souhaiterais, c'est d'avoir la plagetotale qui sera exportée en csv (toutes les plages en couleur orange dans mon fichier).
En parallèle je souhaiterais obtenir ceci:
-La concatenation des colonnes B et D dans le fichier csv qui sera généré
-Lorsqu'on a le mot "MAJUSCULE" dans une cellule de la ligne 17 les données dans le fichier csv seront en majuscule
Si vous pouvez m'aider à y arriver ce seraiit top! Car, c'est la dernière étape de mon outil que je dois présenter à mon responsable pour la fin de mon stage.
Je vous joins le fihcier. J'ai déjà fait 89% du travail en s'appuyant sur la macro qui vous m'avez donnée la dernière fois: https://www.cjoint.com/c/DKcwrs9chAY
Merci infimenet Maurice.
Bonjour
je voie que 2 plage
voila une dernier macro
Sub CreatRepCsv()
Chemin = ActiveWorkbook.Path & "\"
MonRep = Chemin & "Dossier"
If Dir(MonRep, vbDirectory) = "" Then
MkDir (MonRep)
End If
ExportCsv MonRep
End Sub
Sub ExportCsv(Chemin)
Non = ActiveSheet.Name
Ext = ".csv"
Fichier = Non & Ext
CheminFiche = Chemin & "\" & Fichier
Sep = ";"
Nlig = Cells(Rows.Count, 2).End(xlUp).Row
Set A = Range(Cells(7, 2), Cells(8, 6))
Set B = Range(Cells(18, 2), Cells(Nlig, 6))
Set plage = Union(A, B)
Open CheminFiche For Output As #1
For Each Lig In plage.Rows
Tmp = ""
For Each Cel In Lig.Cells
Tmp = Tmp & CStr(Cel.Text) & Sep
Next
Print #1, Tmp
Next
Close
Set A = Nothing
Set B = Nothing
Set plage = Nothing
MsgBox "Votre fichier CSV a été créé avec succès!"
End Sub
A+
Maurice
je voie que 2 plage
voila une dernier macro
Sub CreatRepCsv()
Chemin = ActiveWorkbook.Path & "\"
MonRep = Chemin & "Dossier"
If Dir(MonRep, vbDirectory) = "" Then
MkDir (MonRep)
End If
ExportCsv MonRep
End Sub
Sub ExportCsv(Chemin)
Non = ActiveSheet.Name
Ext = ".csv"
Fichier = Non & Ext
CheminFiche = Chemin & "\" & Fichier
Sep = ";"
Nlig = Cells(Rows.Count, 2).End(xlUp).Row
Set A = Range(Cells(7, 2), Cells(8, 6))
Set B = Range(Cells(18, 2), Cells(Nlig, 6))
Set plage = Union(A, B)
Open CheminFiche For Output As #1
For Each Lig In plage.Rows
Tmp = ""
For Each Cel In Lig.Cells
Tmp = Tmp & CStr(Cel.Text) & Sep
Next
Print #1, Tmp
Next
Close
Set A = Nothing
Set B = Nothing
Set plage = Nothing
MsgBox "Votre fichier CSV a été créé avec succès!"
End Sub
A+
Maurice
senecartour
Messages postés
324
Date d'inscription
dimanche 12 mai 2013
Statut
Membre
Dernière intervention
29 octobre 2020
3
11 nov. 2014 à 22:54
11 nov. 2014 à 22:54
Bonsoir Maurice,
Merci beaucoup! c'est super!
Désolé pour le retard, j'étais en vacance!
Avec tes astuces, je me suis bien amélioré en VBA! Je continue à apprendre!
Encore Merci!
Merci beaucoup! c'est super!
Désolé pour le retard, j'étais en vacance!
Avec tes astuces, je me suis bien amélioré en VBA! Je continue à apprendre!
Encore Merci!