Base de donnée client CSV extraire vers fiche client individuel
benjilebest
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
benjilebest Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
benjilebest Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et à tous,
Petit Nouveau je m'en remets à vous car je cale sur l'utilisation de macro sur excel.
Voici mon problème :
Je reçois un fichier type CSV qui contient sur chaque ligne des infos relatives à un client.
Le but est de copier chaque donnée du client de cette base de donnée vers un fichier client unique.
Concrètement j'ai réussi a enregistré une macro qui fait
activer la page Base de donnée (BDD)
copier case A2 (correspondant au nom par exemple)
ouvrir le document vierge pour un client
coller les données
ainsi de suite pour toutes les données d'un client (c'est à dire toute les données d'une ligne)et enfin enregistré le fichier client unique le nom du fichier = numéro de client
Ma question est que je souhaiterais faire une boucle for ou while qui me permettrait de créer autant de fichier client unique qu'il y en a dans la BDD.
voila si vous avez besoin d'avantage d'informations n'hésitez pas à me le faire savoir
Bonne journée à toutes et à tous.
Ben
Petit Nouveau je m'en remets à vous car je cale sur l'utilisation de macro sur excel.
Voici mon problème :
Je reçois un fichier type CSV qui contient sur chaque ligne des infos relatives à un client.
Le but est de copier chaque donnée du client de cette base de donnée vers un fichier client unique.
Concrètement j'ai réussi a enregistré une macro qui fait
activer la page Base de donnée (BDD)
copier case A2 (correspondant au nom par exemple)
ouvrir le document vierge pour un client
coller les données
ainsi de suite pour toutes les données d'un client (c'est à dire toute les données d'une ligne)et enfin enregistré le fichier client unique le nom du fichier = numéro de client
Ma question est que je souhaiterais faire une boucle for ou while qui me permettrait de créer autant de fichier client unique qu'il y en a dans la BDD.
voila si vous avez besoin d'avantage d'informations n'hésitez pas à me le faire savoir
Bonne journée à toutes et à tous.
Ben
A voir également:
- Base de donnée client CSV extraire vers fiche client individuel
- Cybera client - Télécharger - Divers Réseau & Wi-Fi
- Filezilla client - Télécharger - Téléchargement & Transfert
- Fiche de pointage excel - Télécharger - Tableur
- Extraire une video youtube - Guide
- Numéro service client orange - Guide
7 réponses
Bonjour,
Pour comprendre ce que tu veux il faudrait un exemple de ton fichier CSV que tu pourais déposer sur Cjoint.Com (ou autre)
Pour comprendre ce que tu veux il faudrait un exemple de ton fichier CSV que tu pourais déposer sur Cjoint.Com (ou autre)
https://www.cjoint.com/c/CAwoqZqPa85
Voici le fichier CSV et a partir de ça je dois copier les cellules dans le documents ci-dessous
https://www.cjoint.com/c/CAwor02Fvhg
Voila j'ai commencé à écrire quelques chose en fouinant sur le forum :
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 22/01/2013 par ben
'
Dim FichierSource As Workbook
Dim FichierDestination As Workbook
Set FichierSource = ThisWorkbook
Set FichierDestination = Workbooks.Open(Filename:="C:\Documents and Settings\Admin\Mes documents\Téléchargements\FICHECLIENTV2.xls")
For i = 2 To 100
If Not IsEmpty(Cells(i, 2)) Then
Workbooks("FichierSource").Worksheets("simulations-1").Cells(i, 2).Copy _
Workbooks("FichierDestination").Worksheets("Feuil1").Cells(2, 4)
End If
Next
End Sub
Je l'ai fait pour une case dans l'idée si ça marche la suite sera la même.
A la fin je voudrais enregistré le fichier destination dans un nouveau fichier ayant pour nom le code client.
Voici le fichier CSV et a partir de ça je dois copier les cellules dans le documents ci-dessous
https://www.cjoint.com/c/CAwor02Fvhg
Voila j'ai commencé à écrire quelques chose en fouinant sur le forum :
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 22/01/2013 par ben
'
Dim FichierSource As Workbook
Dim FichierDestination As Workbook
Set FichierSource = ThisWorkbook
Set FichierDestination = Workbooks.Open(Filename:="C:\Documents and Settings\Admin\Mes documents\Téléchargements\FICHECLIENTV2.xls")
For i = 2 To 100
If Not IsEmpty(Cells(i, 2)) Then
Workbooks("FichierSource").Worksheets("simulations-1").Cells(i, 2).Copy _
Workbooks("FichierDestination").Worksheets("Feuil1").Cells(2, 4)
End If
Next
End Sub
Je l'ai fait pour une case dans l'idée si ça marche la suite sera la même.
A la fin je voudrais enregistré le fichier destination dans un nouveau fichier ayant pour nom le code client.
Le but est de copier chaque donnée du client de cette base de donnée vers un fichier client unique.
Nouvelle feuille ou nouveau classeur
Nouvelle feuille ou nouveau classeur
bah en fait sur les deux fichiers que j'ai joint : le premier est ma base de donnée ou une ligne = 1 client.
et je dois remplir dans un nouveau classeur (le 2eme fichier) les données d'un client et enregistre ainsi un classeur par client.
et je dois remplir dans un nouveau classeur (le 2eme fichier) les données d'un client et enregistre ainsi un classeur par client.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je vais regarder ça c'est un tique que j'ai de mettre bah dans mes phrases n'y voit pas de la nonchalance ;) au contraire ça fait plaisir que tu prennes le temps de me filer un coup de main ;)
merci
merci
Alors c'est presque ça sauf que je peux pas faire ça ligne par ligne.
je suis obligé de prendre cellule par cellule car le fichier base de donnée (CSV) sert à alimenter le 2ème fichier (FicheclientV2.xls que tu n'as pas du voir dans mon post plus haut)
c'est celui ci https://www.cjoint.com/c/CAwor02Fvhg
Je vais essayer de me débrouiller avec ce que tu m'as donner normalement je devrais m'en sortir je te tiens au courant ;)
Merci
je suis obligé de prendre cellule par cellule car le fichier base de donnée (CSV) sert à alimenter le 2ème fichier (FicheclientV2.xls que tu n'as pas du voir dans mon post plus haut)
c'est celui ci https://www.cjoint.com/c/CAwor02Fvhg
Je vais essayer de me débrouiller avec ce que tu m'as donner normalement je devrais m'en sortir je te tiens au courant ;)
Merci
Bonjour,
Bon j'ai commencé à faire ça je vais devoir avoir mon classeur FICHIECLIENTV2 dans le même répertoire que la base de donnée :
Sub TransfertClient()
Dim Lig As Integer
Dim Wks As Worksheet
Dim Chemin As String
Dim Wkb As Workbooks
Chemin = ThisWorkbook.Path & "\"
Set Wks = Sheets(1)
Set Wkb = Workbooks.Open Filename:="Chemin & FICHECLIENTV2.xls"
'Le fichier CSV doit déjà être présent avec FICHECLIENTV2.
For Lig = 2 To Cells(Rows.Count, "C").End(xlUp).Row
With ActiveWorkbook
Wks.Cells(2, 1).Copy Wkb.Sheets("Feuil1").Cells(2, 4)
Wks.Cells(2, 2).Copy Wkb.Sheets("Feuil1").Cells(4, 4)
'etc...
.SaveAs Chemin & Replace([D2].Value, ".", " ")
.Close
End With
Next Lig
End Sub
Et ainsi de suite pour chaque case.
A priori ça coince au niveau de sheets("Feuil1") et l'ouverture de l'autre classeur
Bon j'ai commencé à faire ça je vais devoir avoir mon classeur FICHIECLIENTV2 dans le même répertoire que la base de donnée :
Sub TransfertClient()
Dim Lig As Integer
Dim Wks As Worksheet
Dim Chemin As String
Dim Wkb As Workbooks
Chemin = ThisWorkbook.Path & "\"
Set Wks = Sheets(1)
Set Wkb = Workbooks.Open Filename:="Chemin & FICHECLIENTV2.xls"
'Le fichier CSV doit déjà être présent avec FICHECLIENTV2.
For Lig = 2 To Cells(Rows.Count, "C").End(xlUp).Row
With ActiveWorkbook
Wks.Cells(2, 1).Copy Wkb.Sheets("Feuil1").Cells(2, 4)
Wks.Cells(2, 2).Copy Wkb.Sheets("Feuil1").Cells(4, 4)
'etc...
.SaveAs Chemin & Replace([D2].Value, ".", " ")
.Close
End With
Next Lig
End Sub
Et ainsi de suite pour chaque case.
A priori ça coince au niveau de sheets("Feuil1") et l'ouverture de l'autre classeur
Bon j'ai commencé à faire ça je vais devoir avoir mon classeur FICHIECLIENTV2 dans le même répertoire que la base de donnée :
Mais non, suffit de remplacer..
A priori ça coince au niveau de sheets("Feuil1") et l'ouverture de l'autre classeur
Si tu a un Excel Anglais faut remplacer par Sheet1
J'ai modifié Feuil1 pour que ce soit compatible en Anglais..
Voir avec ce code..
Mais non, suffit de remplacer..
Chemin = "C:\Répertoire\sousrépertoire\"
A priori ça coince au niveau de sheets("Feuil1") et l'ouverture de l'autre classeur
Si tu a un Excel Anglais faut remplacer par Sheet1
J'ai modifié Feuil1 pour que ce soit compatible en Anglais..
Voir avec ce code..
Sub TransfertClient() Dim Lig As Integer Dim Wks As Worksheet Dim Chemin As String Chemin = ThisWorkbook.Path & "\" Set Wks = Sheets(1) 'Le fichier CSV doit déjà être présent. For Lig = 2 To Cells(Rows.Count, "C").End(xlUp).Row Workbooks.Add With ActiveWorkbook Wks.Cells(Lig, 1).Copy .Sheets(1).Cells(2, 4) Wks.Cells(Lig, 2).Copy .Sheets(1).Cells(4, 4) .SaveAs Chemin & Replace([D2].Value, ".", " ") .Close End With Next Lig End SubA+