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 03/11/2011, 21h34   #1
Invité de passage
 
Inscription : janvier 2008
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 12
Points : 0
Points : 0
Par défaut traitement de fichier csv

Bonjour à tous,

voici mon projet de macro

dans un 1er temps:
je voudrais rappatrier des fichiers au format csv avec possibilité de faire une selection multiple et generer une feuille par fichier

Ensuite

je souhaiterai concatener toutes ces données pour les remettre dans un seul fichier csv et avoir une boite de dialogue qui me demande le nom du fichier a enregistrer.

Merci d'avance pour votre aide
boudoula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 21h38   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
et tu en est ou ?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 21h42   #3
Invité de passage
 
Inscription : janvier 2008
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 12
Points : 0
Points : 0
bonsoir,

j'ai fais le code pour mettre les fichiers dans chaque feuille excel et est ajouté un compteur pour savoir combien de ligne était occupé sur chaque feuille
boudoula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 21h44   #4
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Et le point qui te bloque ?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 21h54   #5
Invité de passage
 
Inscription : janvier 2008
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 12
Points : 0
Points : 0
je ne sais pas comment faire pour concatener les données de toutes les feuilles en une seule ou dans un nouveau classeur et créer un fichier csv. Mon idée de depart était de concatener les donnees dans une autre feuille et lire chaque ligne pour les mettre dans un fichier texte vierge que la macro aurait generer avec le nom que j'aurai choisi mais je sais pas si c'est realisable
boudoula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 22h25   #6
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
pour la sélection du nom de fichier utilise Application.GetSaveAsFilename un exemple ici dans la

ensuite tu peu parcourir tes feuilles pour générer ton csv:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Boucle()
 Dim sh As Worksheet
 Dim r As Range
 For Each sh In ThisWorkbook.Sheets 'Parcours les feuilles de calcul
     'Parcours les lignes
     For Each r In sh.Range("A1").CurrentRegion.Rows
         Debug.Print Joindre(r, ";")
     Next
 Next
 
End Sub
 
 
Function Joindre(rLigne As Range, stDelimiteur As String) As String
 Dim st As String
 Dim c As Range
 For Each c In rLigne.Cells
  st = st & c & ";"
 Next
 Joindre = st
End Function
Debug.print affiche le résultat dans le fenêtre exécution il te reste à rajouter le code de gestion du fichier...
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 22h52   #7
Invité de passage
 
Inscription : janvier 2008
Messages : 12
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 12
Points : 0
Points : 0
Merci je vais voir ce que je peux faire avec ce joli code
boudoula est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 23h19   #8
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 706
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 706
Points : 3 627
Points : 3 627
Salut, pour la concaténation de n feuilles en 1 seule voir http://www.developpez.net/forums/d11...uille-feuille/
pour la sauvegarde CSV http://www.developpez.net/forums/d11...tomatique-csv/
Le tout à adapter à ton contexte

A voir également http://excel.developpez.com/faq/?pag...Superieur65536 si à adapter sur des versions < 2007
__________________
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é
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h58.


 
 
 
 
Partenaires

Hébergement Web