Copie de ligne dans un nouveau classeur
kyrilp
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
kyrilp Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
kyrilp Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un tableau excel constitué d'environ 30 000 ligne et je dois en copié certaine dans des classeur spécifique.
c'est a dire que chaque colonne a un code spécifique sur des colonne comprise entre N et U et je voudrais copié chaque ligne (du moins le contenue des douze premières colonne dans un classeur du même nom (classeur existant déjà) que le code d'identification
par exemple la ligne 2302 a un code P10 en colonne N je voudrais donc copier le contenu des colonnes de A à L dans le classeur P10
que dois-je faire?
j'ai un tableau excel constitué d'environ 30 000 ligne et je dois en copié certaine dans des classeur spécifique.
c'est a dire que chaque colonne a un code spécifique sur des colonne comprise entre N et U et je voudrais copié chaque ligne (du moins le contenue des douze premières colonne dans un classeur du même nom (classeur existant déjà) que le code d'identification
par exemple la ligne 2302 a un code P10 en colonne N je voudrais donc copier le contenu des colonnes de A à L dans le classeur P10
que dois-je faire?
A voir également:
- Copie de ligne dans un nouveau classeur
- Partage de photos en ligne - Guide
- Copie caché - Guide
- Formulaire en ligne de meta - Guide
- Créer un nouveau compte gmail - Guide
- Copie écran samsung - Guide
5 réponses
bonjour,
il faut passer par une macro.
Le code :
sub copiercoller ()
'commence à la deuxième ligne
i=2
origine = activeworkbook.name
sheets("Feuil1").select ' remplaces feuil1 par le nom de ta feuille
do while cells(i,14) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide
' ouvre un fichier spécifique
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls"
' remplaces C:\.... par le chemin ou se trouve tous tes dossiers
travail=activeworkbook.name
sheets("Feuil1").select ' remplaces feuil1 par le nom de ta feuille
j=1 'commences à trouver une ligne vide à partir de la première
do while cells(i,1)<>""
i=i+1
loop
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
i=i+1
loop
end sub
il faut passer par une macro.
Le code :
sub copiercoller ()
'commence à la deuxième ligne
i=2
origine = activeworkbook.name
sheets("Feuil1").select ' remplaces feuil1 par le nom de ta feuille
do while cells(i,14) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide
' ouvre un fichier spécifique
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls"
' remplaces C:\.... par le chemin ou se trouve tous tes dossiers
travail=activeworkbook.name
sheets("Feuil1").select ' remplaces feuil1 par le nom de ta feuille
j=1 'commences à trouver une ligne vide à partir de la première
do while cells(i,1)<>""
i=i+1
loop
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
i=i+1
loop
end sub
kyrilp
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
merci de ton aide ça ne marche pas (je suis convaincu que ça vient de moi) mais merci de m'avoir aidé.
kyrilp
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
bon en fait sa marche plus ou moins mais les lignes concernées se superpose par conséquent je n'ai pas le liste des élément ayant le code P10 qui plus est j'aimerai copié l'intitulé des premières colonne et donc déclenché la copie sur la ligne deux et que tous ce copient les uns a la suite des autres.
bonjour,
voici le code :
sub copiercoller ()
'commence à la deuxième ligne
i=2
origine = activeworkbook.name
sheets("Feuil1").select ' remplaces feuil1 par le nom de ta feuille
do while cells(i,14) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide
' ouvre un fichier spécifique
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls"
' remplaces C:\.... par le chemin ou se trouve tous tes dossiers
travail=activeworkbook.name
sheets("Feuil1").select ' remplaces feuil1 par le nom de ta feuille
workbooks(origine).activate
range(cells(1,1),cells(1,12)).copy
workbooks(travail).activate
cells(1,1).select
Activesheet.paste
j=1 'commence à trouver une ligne vide à partir de la première
do while cells(j,1)<>""
j=j+1
loop
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
i=i+1
loop
end sub
voici le code :
sub copiercoller ()
'commence à la deuxième ligne
i=2
origine = activeworkbook.name
sheets("Feuil1").select ' remplaces feuil1 par le nom de ta feuille
do while cells(i,14) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide
' ouvre un fichier spécifique
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls"
' remplaces C:\.... par le chemin ou se trouve tous tes dossiers
travail=activeworkbook.name
sheets("Feuil1").select ' remplaces feuil1 par le nom de ta feuille
workbooks(origine).activate
range(cells(1,1),cells(1,12)).copy
workbooks(travail).activate
cells(1,1).select
Activesheet.paste
j=1 'commence à trouver une ligne vide à partir de la première
do while cells(j,1)<>""
j=j+1
loop
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
i=i+1
loop
end sub
j'ai envi de dire "harg je n'y arrive pas" je suis extrêmement nul!
en plus j'ai appris que je dois aussi copier les colonnes N à U et l'intitulé de chaque colonne
le document de base s'appelle ExportTopo dont sa feuille est Topo et je dois copié toutes les ligne portant le code P10 dans le classeur excel s'appelant P10 et dont sa feuille s'appelle Feuil1..............je demande pardon pour mon incompétence!
en plus j'ai appris que je dois aussi copier les colonnes N à U et l'intitulé de chaque colonne
le document de base s'appelle ExportTopo dont sa feuille est Topo et je dois copié toutes les ligne portant le code P10 dans le classeur excel s'appelant P10 et dont sa feuille s'appelle Feuil1..............je demande pardon pour mon incompétence!
Re,
voici un novueau code. Copie le et suis les instructions qui sont en vertes.
sub copiercoller ()
'commence à la deuxième ligne
a=""
i=2
origine = activeworkbook.name
sheets("Topo").select
do while cells(i,14) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide
' ouvre un fichier spécifique
If cells(i,14) = "P10" then
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls" ' remplaces C:\.... par le chemin ou se trouve tous tes dossiers C:\......\P10
travail=activeworkbook.name
sheets("Feuil1").select
if a = "" then
cells.clear
a=1
j=2
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
else
workbooks(origine).activate
range(cells(1,1),cells(1,12)).copy
workbooks(travail).activate
cells(1,1).select
Activesheet.paste
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
end if
end if
i=i+1
loop
end sub
essaie et dis moi.
voici un novueau code. Copie le et suis les instructions qui sont en vertes.
sub copiercoller ()
'commence à la deuxième ligne
a=""
i=2
origine = activeworkbook.name
sheets("Topo").select
do while cells(i,14) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide
' ouvre un fichier spécifique
If cells(i,14) = "P10" then
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls" ' remplaces C:\.... par le chemin ou se trouve tous tes dossiers C:\......\P10
travail=activeworkbook.name
sheets("Feuil1").select
if a = "" then
cells.clear
a=1
j=2
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
else
workbooks(origine).activate
range(cells(1,1),cells(1,12)).copy
workbooks(travail).activate
cells(1,1).select
Activesheet.paste
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
end if
end if
i=i+1
loop
end sub
essaie et dis moi.
aqpuies sur F8 en ayant tes classeurs en visu. tu verras ce que fais la macro. En plus, je viens de m'apercevoir que j'ai fait une erreur, recopies ce code plutot :
sub copiercoller ()
'commence à la deuxième ligne
a=""
i=2
origine = activeworkbook.name
sheets("Topo").select
do while cells(i,14) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide
' ouvre un fichier spécifique
If cells(i,14) = "P10" then
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls" ' remplaces C:\.... par le chemin ou se trouve tous tes dossiers C:\......\P10
travail=activeworkbook.name
sheets("Feuil1").select
if a = "" then
cells.clear
a=1
j=2
workbooks(origine).activate
rows(1).copy
workbooks(travail).activate
cells(1,1).select
activesheet.paste
workbooks(origine).activate
rows(i).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
else
workbooks(origine).activate
rows(i).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
end if
end if
i=i+1
loop
end sub
sub copiercoller ()
'commence à la deuxième ligne
a=""
i=2
origine = activeworkbook.name
sheets("Topo").select
do while cells(i,14) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide
' ouvre un fichier spécifique
If cells(i,14) = "P10" then
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls" ' remplaces C:\.... par le chemin ou se trouve tous tes dossiers C:\......\P10
travail=activeworkbook.name
sheets("Feuil1").select
if a = "" then
cells.clear
a=1
j=2
workbooks(origine).activate
rows(1).copy
workbooks(travail).activate
cells(1,1).select
activesheet.paste
workbooks(origine).activate
rows(i).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
else
workbooks(origine).activate
rows(i).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
end if
end if
i=i+1
loop
end sub
qu'est ce que tu as à la ligne 2 et la 14ème colonne comme valeur?
ok alors ce code sera le bon (j'espère) :
sub copiercoller ()
'commence à la deuxième ligne
a=""
i=2
origine = activeworkbook.name
sheets("Topo").select
do while cells(i,11) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide
' ouvre un fichier spécifique
If cells(i,14) = "P10" then
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls" ' remplaces C:\.... par le chemin ou se trouve tous tes dossiers C:\......\P10
travail=activeworkbook.name
sheets("Feuil1").select
if a = "" then
cells.clear
a=1
j=2
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
else
workbooks(origine).activate
range(cells(1,1),cells(1,12)).copy
workbooks(travail).activate
cells(1,1).select
Activesheet.paste
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
end if
end if
i=i+1
loop
end sub
sub copiercoller ()
'commence à la deuxième ligne
a=""
i=2
origine = activeworkbook.name
sheets("Topo").select
do while cells(i,11) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide
' ouvre un fichier spécifique
If cells(i,14) = "P10" then
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls" ' remplaces C:\.... par le chemin ou se trouve tous tes dossiers C:\......\P10
travail=activeworkbook.name
sheets("Feuil1").select
if a = "" then
cells.clear
a=1
j=2
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
else
workbooks(origine).activate
range(cells(1,1),cells(1,12)).copy
workbooks(travail).activate
cells(1,1).select
Activesheet.paste
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
end if
end if
i=i+1
loop
end sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
recopies plutot celui la et fais f8 :
sub copiercoller ()
'commence à la deuxième ligne
a=""
i=2
origine = activeworkbook.name
sheets("Topo").select
cells(i,11).select
do while cells(i,11) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide
' ouvre un fichier spécifique
cells(i,14).select
If cells(i,14) = "P10" then
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls" ' remplaces C:\.... par le chemin ou se trouve tous tes dossiers C:\......\P10
travail=activeworkbook.name
sheets("Feuil1").select
if a = "" then
cells.clear
a=1
j=2
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
else
workbooks(origine).activate
range(cells(1,1),cells(1,12)).copy
workbooks(travail).activate
cells(1,1).select
Activesheet.paste
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
end if
end if
i=i+1
cells(i,11).select
loop
end sub
sub copiercoller ()
'commence à la deuxième ligne
a=""
i=2
origine = activeworkbook.name
sheets("Topo").select
cells(i,11).select
do while cells(i,11) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide
' ouvre un fichier spécifique
cells(i,14).select
If cells(i,14) = "P10" then
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls" ' remplaces C:\.... par le chemin ou se trouve tous tes dossiers C:\......\P10
travail=activeworkbook.name
sheets("Feuil1").select
if a = "" then
cells.clear
a=1
j=2
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
else
workbooks(origine).activate
range(cells(1,1),cells(1,12)).copy
workbooks(travail).activate
cells(1,1).select
Activesheet.paste
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
end if
end if
i=i+1
cells(i,11).select
loop
end sub
je peux pas t'aider plus. je te mets des commentaires en verts qui explique ce que cela doit faire. Tu trouveras peut être l'erreur :
sub copiercoller ()
a=""
i=2
origine = activeworkbook.name
sheets("Topo").select 'sélectionnes la feuille Topo du classeur ouvert
cells(i,11).select 'sélectionnes la ligne i (2) et la colonne 11 (K)
do while cells(i,11) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide 'si la cellule de la ligne 2 (ivaleur i) de la colonne K n'est pas vide
cells(i,14).select 'on sélectionnes la cellule de la ligne 2 (valeur de i) de la colonne 14 (N)
If cells(i,14) = "P10" then 'si la ligne 2 et colonne 1 = P10 alors
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls" ' remplaces C:\.... par le chemin ou se trouve tous tes dossiers C:\......\P10 ==> te permet d'ouvrir le fichier P10
travail=activeworkbook.name
sheets("Feuil1").select 'on sélectionne la feuille 1 de ton classeur P10
'le reste permet de copier la ligne i de ton premier tableau dans P10
if a = "" then
cells.clear
a=1
j=2
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
else
workbooks(origine).activate
range(cells(1,1),cells(1,12)).copy
workbooks(travail).activate
cells(1,1).select
Activesheet.paste
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
end if
end if
i=i+1 'on va regarder la ligne suivante
cells(i,11).select 'on sélectionner la cellule de la ligne 3 (valeur de i) de la colonne K (11)
loop
end sub
sub copiercoller ()
a=""
i=2
origine = activeworkbook.name
sheets("Topo").select 'sélectionnes la feuille Topo du classeur ouvert
cells(i,11).select 'sélectionnes la ligne i (2) et la colonne 11 (K)
do while cells(i,11) <> "" 'fonctionnera jusqu'à ce que la colonne N soit vide 'si la cellule de la ligne 2 (ivaleur i) de la colonne K n'est pas vide
cells(i,14).select 'on sélectionnes la cellule de la ligne 2 (valeur de i) de la colonne 14 (N)
If cells(i,14) = "P10" then 'si la ligne 2 et colonne 1 = P10 alors
Workbooks.Open Filename:= _
"C:\Documents and Settings\Pierre\Bureau\Dossier VBA\" & cells(i,14) & ".xls" ' remplaces C:\.... par le chemin ou se trouve tous tes dossiers C:\......\P10 ==> te permet d'ouvrir le fichier P10
travail=activeworkbook.name
sheets("Feuil1").select 'on sélectionne la feuille 1 de ton classeur P10
'le reste permet de copier la ligne i de ton premier tableau dans P10
if a = "" then
cells.clear
a=1
j=2
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
else
workbooks(origine).activate
range(cells(1,1),cells(1,12)).copy
workbooks(travail).activate
cells(1,1).select
Activesheet.paste
workbooks(origine).activate
range(cells(i,1),cells(i,12)).copy
workbooks(travail).activate
cells(j,1).select
activesheet.paste
Activeworkbook.save
activeworkbook.close
j=j+1
end if
end if
i=i+1 'on va regarder la ligne suivante
cells(i,11).select 'on sélectionner la cellule de la ligne 3 (valeur de i) de la colonne K (11)
loop
end sub