OVH Cloud OVH Cloud

création auto de fichier !!

10 réponses
Avatar
david.taieb
Bonjour,

j'ai un fichier avec 6 colonnes.. nom, prénom, adresse, tel, date de
naissance et adresse mail.. et 2000 lignes

je voudrais créer 2000 fichiers d'une ligne.. avec comme nom de fichier
nom_prénom de chaque ligne... est ce possible ???

si oui... qqun serait il le faire ???

merci d'avance à tous..
--
Cordialement
David TAÏEB

10 réponses

Avatar
Daniel
Bonjour.
Essaie le code suivant :

Sub test()
Dim c As Range, Plage As Range
Set Plage = Range("A1", Range("A65536").End(xlUp))
For Each c In Plage
Workbooks.Add
ActiveWorkbook.SaveAs c.Value & "_" & c.Offset(0, 1).Value
ActiveWorkbook.Close
Next c
End Sub

Cordialement.
Daniel
"david.taieb" <doudchy@(a_enlever)gmail.com> a écrit dans le message de
news:
Bonjour,

j'ai un fichier avec 6 colonnes.. nom, prénom, adresse, tel, date de
naissance et adresse mail.. et 2000 lignes

je voudrais créer 2000 fichiers d'une ligne.. avec comme nom de fichier
nom_prénom de chaque ligne... est ce possible ???

si oui... qqun serait il le faire ???

merci d'avance à tous..
--
Cordialement
David TAÏEB


Avatar
AV
je voudrais créer 2000 fichiers d'une ligne.. avec comme nom de fichier
nom_prénom de chaque ligne... est ce possible ???


Un fichier composé d'un onglet c'est ok mais le nombre de ligne est
incompressible !
(tu peux les masquer)

En supposant les plages "Noms" et "Pr"noms" nommées :

Sub zzz()
Application.ScreenUpdating = False
For i = 1 To [Noms].Count
x = [Noms].Item(i) & "_" & [Prénoms].Item(i)
Workbooks.Add
With ActiveWorkbook
Application.DisplayAlerts = False
On Error Resume Next
For n = 1 To Sheets.Count
Sheets(n).Delete
Next
Application.DisplayAlerts = True
.SaveAs Filename:="C:TEMP" & x
.Close
End With
Next
End Sub

PS : A adapter et tester sur une petite plage avant d'exécuter
AV

Avatar
Jacquouille
Bonjour
Tout ( ou presque) est possible avec Excel.
Seulement, on est limité par le poids.
Un fichier avec trois fois rien, pèse une quinzaine de Kilos.
Si tu arrives avec 2000 fichiers... il te faudra un semi remorque de mémoire
pour mettre cela dans Excel.
Ensuite, un fichier d'une ligne, c'est pas tellement pratique pour
travailler.
Je ne sais pas pourquoi, mais je pense à un truc de publipostage ou
d'étiquettes????
Il y a d'autres solutions.
Si tu veux développer ton problèmes en ces lieux, il se trouvera bien
quelqu'un qui ne soit occupé à la dégustation.
Bonne chance
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"david.taieb" <doudchy@(a_enlever)gmail.com> a écrit dans le message de
news:
Bonjour,

j'ai un fichier avec 6 colonnes.. nom, prénom, adresse, tel, date de
naissance et adresse mail.. et 2000 lignes

je voudrais créer 2000 fichiers d'une ligne.. avec comme nom de fichier
nom_prénom de chaque ligne... est ce possible ???

si oui... qqun serait il le faire ???

merci d'avance à tous..
--
Cordialement
David TAÏEB


Avatar
Modeste
Bonsour®
david.taieb wrote:
je voudrais créer 2000 fichiers d'une ligne.. avec comme nom de fichier
nom_prénom de chaque ligne... est ce possible ???


une ligne ???
il s'agit donc certainement de fichiers .TXT ....

alors quelque chose comme ceci :

Sub David_Taieb()
Set liste = [A1].CurrentRegion ' definition de la plage contenant la
liste
For Each nom In liste

FileNumber = FreeFile

' -------------Crée le nom du fichier.
Nomfichier = nom & "_" & nom.Offset(0, 1)

' ----------- Création du fichier
Open Nomfichier & ".txt" For Output As #FileNumber
Write #FileNumber, "fichier " & Nomfichier & " créé le : " &
Format(Now, "dd mm yyyy hh:mm:ss") ' -------Écrit le texte.
Close #FileNumber ' Ferme le fichier.

Next
End Sub



--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042

Avatar
david.taieb
re

merci de vos réponse..
cette méthode génère bien les fichiers mais il n'y a rien d'écrit dedans..
il faudrait que soit recopier dans chaque fichier la ligne lui correspondant
ainsi que le nom des colonnes..
que dois je rajouter à cette macro ??

merci
--
Cordialement
David TAÏEB



Bonjour.
Essaie le code suivant :

Sub test()
Dim c As Range, Plage As Range
Set Plage = Range("A1", Range("A65536").End(xlUp))
For Each c In Plage
Workbooks.Add
ActiveWorkbook.SaveAs c.Value & "_" & c.Offset(0, 1).Value
ActiveWorkbook.Close
Next c
End Sub

Cordialement.
Daniel
"david.taieb" <doudchy@(a_enlever)gmail.com> a écrit dans le message de
news:
Bonjour,

j'ai un fichier avec 6 colonnes.. nom, prénom, adresse, tel, date de
naissance et adresse mail.. et 2000 lignes

je voudrais créer 2000 fichiers d'une ligne.. avec comme nom de fichier
nom_prénom de chaque ligne... est ce possible ???

si oui... qqun serait il le faire ???

merci d'avance à tous..
--
Cordialement
David TAÏEB







Avatar
david.taieb
j'ai bien nommé mes colonnes Noms et Prénoms..mais lorsque je lance la macro
il me dit qu'il y a un problème à la ligne :
For i = 1 To [Noms].Count

--
Cordialement
David TAÏEB



je voudrais créer 2000 fichiers d'une ligne.. avec comme nom de fichier
nom_prénom de chaque ligne... est ce possible ???


Un fichier composé d'un onglet c'est ok mais le nombre de ligne est
incompressible !
(tu peux les masquer)

En supposant les plages "Noms" et "Pr"noms" nommées :

Sub zzz()
Application.ScreenUpdating = False
For i = 1 To [Noms].Count
x = [Noms].Item(i) & "_" & [Prénoms].Item(i)
Workbooks.Add
With ActiveWorkbook
Application.DisplayAlerts = False
On Error Resume Next
For n = 1 To Sheets.Count
Sheets(n).Delete
Next
Application.DisplayAlerts = True
.SaveAs Filename:="C:TEMP" & x
.Close
End With
Next
End Sub

PS : A adapter et tester sur une petite plage avant d'exécuter
AV






Avatar
Daniel
Modifie comme suit :

Sub test()
Dim c As Range, Plage As Range
Set Plage = Range("A1", Range("A65536").End(xlUp))
For Each c In Plage
c.EntireRow.Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs c.Value & "_" & c.Offset(0, 1).Value
ActiveWorkbook.Close
Next c
End Sub

Daniel
"david.taieb" <doudchy@(a_enlever)gmail.com> a écrit dans le message de
news:
re

merci de vos réponse..
cette méthode génère bien les fichiers mais il n'y a rien d'écrit dedans..
il faudrait que soit recopier dans chaque fichier la ligne lui
correspondant
ainsi que le nom des colonnes..
que dois je rajouter à cette macro ??

merci
--
Cordialement
David TAÏEB



Bonjour.
Essaie le code suivant :

Sub test()
Dim c As Range, Plage As Range
Set Plage = Range("A1", Range("A65536").End(xlUp))
For Each c In Plage
Workbooks.Add
ActiveWorkbook.SaveAs c.Value & "_" & c.Offset(0, 1).Value
ActiveWorkbook.Close
Next c
End Sub

Cordialement.
Daniel
"david.taieb" <doudchy@(a_enlever)gmail.com> a écrit dans le message de
news:
Bonjour,

j'ai un fichier avec 6 colonnes.. nom, prénom, adresse, tel, date de
naissance et adresse mail.. et 2000 lignes

je voudrais créer 2000 fichiers d'une ligne.. avec comme nom de fichier
nom_prénom de chaque ligne... est ce possible ???

si oui... qqun serait il le faire ???

merci d'avance à tous..
--
Cordialement
David TAÏEB









Avatar
david.taieb
merci merci merci merci...
juste une dernière chose...
comment faire pour que la macro copie également le nom des colonnes ???
oui..je sasi... je suis chiant... j'aurais pu tout demandé d'un seul coup
quand même !!!!
--
Cordialement
David TAÏEB



Modifie comme suit :

Sub test()
Dim c As Range, Plage As Range
Set Plage = Range("A1", Range("A65536").End(xlUp))
For Each c In Plage
c.EntireRow.Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs c.Value & "_" & c.Offset(0, 1).Value
ActiveWorkbook.Close
Next c
End Sub

Daniel
"david.taieb" <doudchy@(a_enlever)gmail.com> a écrit dans le message de
news:
re

merci de vos réponse..
cette méthode génère bien les fichiers mais il n'y a rien d'écrit dedans..
il faudrait que soit recopier dans chaque fichier la ligne lui
correspondant
ainsi que le nom des colonnes..
que dois je rajouter à cette macro ??

merci
--
Cordialement
David TAÏEB



Bonjour.
Essaie le code suivant :

Sub test()
Dim c As Range, Plage As Range
Set Plage = Range("A1", Range("A65536").End(xlUp))
For Each c In Plage
Workbooks.Add
ActiveWorkbook.SaveAs c.Value & "_" & c.Offset(0, 1).Value
ActiveWorkbook.Close
Next c
End Sub

Cordialement.
Daniel
"david.taieb" <doudchy@(a_enlever)gmail.com> a écrit dans le message de
news:
Bonjour,

j'ai un fichier avec 6 colonnes.. nom, prénom, adresse, tel, date de
naissance et adresse mail.. et 2000 lignes

je voudrais créer 2000 fichiers d'une ligne.. avec comme nom de fichier
nom_prénom de chaque ligne... est ce possible ???

si oui... qqun serait il le faire ???

merci d'avance à tous..
--
Cordialement
David TAÏEB














Avatar
Daniel
On suppose que les titres des colonnes sont en ligne 1 et donc que les noms
commencent en ligne 2.

Sub test()
Dim c As Range, Plage As Range, Ligne As Range, Col As Integer
Set Plage = Range("A2", Range("A65536").End(xlUp))
Set Ligne = Range("A1", Range("IV1").End(xlToLeft))
Col = Ligne.Columns.Count
For Each c In Plage
c.EntireRow.Copy
Workbooks.Add
Range("A2").Select
ActiveSheet.Paste
Range("A1").Resize(1, Col).Value = Ligne.Value
ActiveWorkbook.SaveAs c.Value & "_" & c.Offset(0, 1).Value
ActiveWorkbook.Close
Next c
End Sub

Daniel
"david.taieb" <doudchy@(a_enlever)gmail.com> a écrit dans le message de
news:
merci merci merci merci...
juste une dernière chose...
comment faire pour que la macro copie également le nom des colonnes ???
oui..je sasi... je suis chiant... j'aurais pu tout demandé d'un seul coup
quand même !!!!
--
Cordialement
David TAÏEB



Modifie comme suit :

Sub test()
Dim c As Range, Plage As Range
Set Plage = Range("A1", Range("A65536").End(xlUp))
For Each c In Plage
c.EntireRow.Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs c.Value & "_" & c.Offset(0, 1).Value
ActiveWorkbook.Close
Next c
End Sub

Daniel
"david.taieb" <doudchy@(a_enlever)gmail.com> a écrit dans le message de
news:
re

merci de vos réponse..
cette méthode génère bien les fichiers mais il n'y a rien d'écrit
dedans..
il faudrait que soit recopier dans chaque fichier la ligne lui
correspondant
ainsi que le nom des colonnes..
que dois je rajouter à cette macro ??

merci
--
Cordialement
David TAÏEB



Bonjour.
Essaie le code suivant :

Sub test()
Dim c As Range, Plage As Range
Set Plage = Range("A1", Range("A65536").End(xlUp))
For Each c In Plage
Workbooks.Add
ActiveWorkbook.SaveAs c.Value & "_" & c.Offset(0, 1).Value
ActiveWorkbook.Close
Next c
End Sub

Cordialement.
Daniel
"david.taieb" <doudchy@(a_enlever)gmail.com> a écrit dans le message
de
news:
Bonjour,

j'ai un fichier avec 6 colonnes.. nom, prénom, adresse, tel, date de
naissance et adresse mail.. et 2000 lignes

je voudrais créer 2000 fichiers d'une ligne.. avec comme nom de
fichier
nom_prénom de chaque ligne... est ce possible ???

si oui... qqun serait il le faire ???

merci d'avance à tous..
--
Cordialement
David TAÏEB
















Avatar
AV
j'ai bien nommé mes colonnes Noms et Prénoms..mais lorsque je lance la macro
il me dit qu'il y a un problème à la ligne :
For i = 1 To [Noms].Count


C'est un problème classique : un micro-climat....

AV