OVH Cloud OVH Cloud

grouper des listes de longueur différentes

21 réponses
Avatar
Marc D
Bonjour,
voici ce que je voudrais faire:
sur plusieurs onglets d'un fichier, j'ai des données sous forme de listes
(bases de données avec entête de colonnes en première ligne)
les onglets ont tous le même nombre de colonnes, avec les mêmes entêtes
le nombre de lignes est différent d'un onglet à l'autre (chaque ligne est un
article différent)

je voudrais faire une macro qui rassemble toutes les données des onglets en
une seule liste, plus facile à traiter ensuite sous forme de TcD
comment m'y prendre ?

Merci de votre aide
Marc D

10 réponses

1 2 3
Avatar
Daniel
Bonjour.
Désolé, je ne me rappelle plus exactement de la question, sinon de la
majuscule de "Global".
Le mieux serait de reposter l'ensemble de ton problème sans me l'adresser en
particulier, afin que de plus savants que moi puissent aussi y réfléchir.
Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433e926e$1$25983$
J'espère que Daniel verra mon message: nous avons échangé plusieurs fois,
mais je ne crois pas qu'il ait vu mon dernier message...
Je lance une nouvelle bouteille à la mer

cordialement,
Marc D




"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news:433679a8$0$14210$
Bonjour Daniel,
je reviens après plusieurs jours d'absence, et je suis surpris de
constater

qu'un post que j'avais déposé en réponse à ce message n'apparait pas.
J'ai constaté effectivement que j'avais fait une erreur en appelant
l'onglet

"global" sans majuscule. Maintenant, ça marche correctement. Merci
beaucoup

pour ton aide.

Mais en fait, je constate que le pb est un peu plus compliqué que prévu.

Les listes de longueur variable dans les onglets à compiler sont des
listes

mises à jour par des interlocuteurs différents: le fichier doit être
déposé

sur un répertoire partagé d'un réseau et partagé entre plusieurs
utilisateurs.

Dans ces conditions, la macro ne peut plus fonctionner. La solution qui
me
semble possible est de séparer le fichier en deux. L'un contiendra les
différents onglets de saisie: c'est lui qui sera partagé. L'autre
contiendra

la macro de compil, et doit aller chercher ses données dans les onglets
du
premier. Celui-là n'a pas besoin d'être partagé.

Comment faire évoluer la macro pour qu'elle aille chercher ses valeurs
dans

un autre fichier ?

Cordialement,
Marc D


"Daniel" a écrit dans le message de
news:%23DJ4b%
Mon code fonctionne tel quel. Es-tu sûr que ta feuille s'appelle
"Global"


et
non pas "global", car le test est sensible à la casse.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 432c7390$0$16654$
pour le nb de colonnes, la modif marche très bien, merci

pour le pb signalé auparavant (lignes des onglets copiées une
deuxième
fois,
j'ai modifié la macro
For i = 1 To Sheets.Count
en :
For i = 1 To Sheets.Count - 1
et là ça marche,
pourtant, il y avait bien une limite prévue par:
If Sheets(i).Name <> "Global" Then
mais j'ai l'impression que la macro recopie les lignes de tous les
onglets,
puis qu'elle prend aussi les lignes de l'onglet "global"

merci encore,

Marc D

"Daniel" a écrit dans le message de
news:%
Bizarre. Je n'ai pas ce problème. est-ce qu'un gourou peut se
pencher
sur



le
problème ?
Pour le nombre de colonnes :
remplace :
Range("A2", Range("B65536").End(xlUp)).Copy _
Sheets("Global").Cells(Ctr, 1)
par :
Range("A2").Resize(Range("A65536").End(xlUp).Row - 1, _
Range("IV1").End(xlToLeft).Column).copy _
Sheets("Global").Cells(Ctr, 1)
Cordialement.
Daniel

"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message
de




news: 432c43e6$0$16401$
Merci Daniel, ça marche... presque
j'ai fait un classeur avec trois onglets (feuil1, feuil2, feuil3),
j'ai




ajouté un onglet "global" vierge

j'ai constaté deux cas:
1/ si l'onglet global est en dernière position, la macro recopie
bien





la
ligne de titres + les lignes de données des 3 onglets (il y en
avait





28
au
total), mais il rajoute une deuxième fois ces mêmes 28 lignes

2/ si l'onglet global est en première position, il ne copie les 28
lignes


qu'une seule fois, mais la ligne de titre est doublée

Autre question: j'ai adapté le nb de colonnes en choisissant
d'aller





jusqu'à
la colonne E
Range("A2", Range("e65536").End(xlUp)).Copy
mais comment faire pour que la macro détecte elle-même le nb de
colonnes
?



Merci de ton aide
Marc D


"Daniel" a écrit dans le message de
news:
Bonsoir.
Le code suivant doit marcher. Je l'ai fait avec deux colonnes.
Modifie-le



suivant tes besoins :

Sub test()
Dim Ctr As Long, i As Integer
Sheets("Feuil1").Rows(1).Copy Sheets("Global").Rows(1)
Ctr = 2
For i = 1 To Sheets.Count
If Sheets(i).Name <> "Global" Then
Sheets(i).Activate
Range("A2", Range("B65536").End(xlUp)).Copy _
Sheets("Global").Cells(Ctr, 1)
Ctr = Ctr + Range("A65536").End(xlUp).Row - 1
End If
Next i
End Sub

Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le
message






de
news: 432b27d4$0$18213$
Bonjour,
voici ce que je voudrais faire:
sur plusieurs onglets d'un fichier, j'ai des données sous forme
de







listes
(bases de données avec entête de colonnes en première ligne)
les onglets ont tous le même nombre de colonnes, avec les mêmes
entêtes




le nombre de lignes est différent d'un onglet à l'autre (chaque
ligne
est


un
article différent)

je voudrais faire une macro qui rassemble toutes les données
des
onglets
en
une seule liste, plus facile à traiter ensuite sous forme de
TcD
comment m'y prendre ?

Merci de votre aide
Marc D



























Avatar
Marc D
Bonjour,
voici ce que je voudrais faire:
sur plusieurs onglets d'un fichier, j'ai des données sous forme de listes
(bases de données avec entête de colonnes en première ligne)
les onglets ont tous le même nombre de colonnes, avec les mêmes entêtes
le nombre de lignes est différent d'un onglet à l'autre (chaque ligne est un
article différent)

je voudrais faire une macro qui rassemble toutes les données des onglets en
une seule liste, plus facile à traiter ensuite sous forme de TcD

Information complémentaire:
le fichier ci-dessus est un fichier A de saisie de données : il est déposé
sur un répertoire d'un réseau, et plusieurs participants peuvent y accéder
simultanément (fichier partagé)
je souhaite que la macro soit dans un autre fichier B, où serait créée la
compil: cette compil servira de table de données pour un TcD
c'est à cause de ce TcD que je pense préférable de séparer en 2 fichiers (un
de saisie, et un de traitement)

La macro proposée par Daniel dans les messages précédents marche bien, mais
elle crée la compil sous forme d'un onglet Global dans le fichier initial

Merci de votre aide
Marc D

"Daniel" a écrit dans le message de
news:%
Bonjour.
Désolé, je ne me rappelle plus exactement de la question, sinon de la
majuscule de "Global".
Le mieux serait de reposter l'ensemble de ton problème sans me l'adresser
en

particulier, afin que de plus savants que moi puissent aussi y réfléchir.
Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433e926e$1$25983$
J'espère que Daniel verra mon message: nous avons échangé plusieurs
fois,


mais je ne crois pas qu'il ait vu mon dernier message...
Je lance une nouvelle bouteille à la mer

cordialement,
Marc D




Avatar
Daniel
Je crois que tu aurais dû initialiser un nouveau fil avec un nouveau titre.
En fouillant dans mes archives, j'ai retrouvé la macro suivante avec un
fichier source en lecture et un fichier "cible" de regroupement.
Je ne me rapelle plus si je l'avais publié. Je le remets à tout hasard :

Sub test()
Dim Ctr As Long, i As Integer
Workbooks("SOURCE.xls").Activate
Sheets("Feuil1").Rows(1).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Paste
Ctr = 2
Workbooks("SOURCE.xls").Activate
For i = 1 To Sheets.Count
Workbooks("SOURCE.xls").Activate
Sheets(i).Activate
Range("A2").Resize(Range("A65536").End(xlUp).Row - 1, _
Range("IV1").End(xlToLeft).Column).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Select
Cells(Ctr, 1).Select
Sheets("Global").Paste
Ctr = Range("A65536").End(xlUp).Row + 1
Next i
End Sub

Un peu bousculé en ce moment avec la rentrée scolaire et le déménagement de
mes gamins, mais ça commence à se calmer.
Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433ea381$0$25975$
Bonjour,
voici ce que je voudrais faire:
sur plusieurs onglets d'un fichier, j'ai des données sous forme de listes
(bases de données avec entête de colonnes en première ligne)
les onglets ont tous le même nombre de colonnes, avec les mêmes entêtes
le nombre de lignes est différent d'un onglet à l'autre (chaque ligne est
un
article différent)

je voudrais faire une macro qui rassemble toutes les données des onglets
en
une seule liste, plus facile à traiter ensuite sous forme de TcD

Information complémentaire:
le fichier ci-dessus est un fichier A de saisie de données : il est déposé
sur un répertoire d'un réseau, et plusieurs participants peuvent y accéder
simultanément (fichier partagé)
je souhaite que la macro soit dans un autre fichier B, où serait créée la
compil: cette compil servira de table de données pour un TcD
c'est à cause de ce TcD que je pense préférable de séparer en 2 fichiers
(un
de saisie, et un de traitement)

La macro proposée par Daniel dans les messages précédents marche bien,
mais
elle crée la compil sous forme d'un onglet Global dans le fichier initial

Merci de votre aide
Marc D

"Daniel" a écrit dans le message de
news:%
Bonjour.
Désolé, je ne me rappelle plus exactement de la question, sinon de la
majuscule de "Global".
Le mieux serait de reposter l'ensemble de ton problème sans me l'adresser
en

particulier, afin que de plus savants que moi puissent aussi y réfléchir.
Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433e926e$1$25983$
J'espère que Daniel verra mon message: nous avons échangé plusieurs
fois,


mais je ne crois pas qu'il ait vu mon dernier message...
Je lance une nouvelle bouteille à la mer

cordialement,
Marc D







Avatar
Marc D
Bon, merci d'avoir pris le temps de me répondre, mais je n'ai pas réussi à
le faire marcher...
J'ai bien créé deux fichiers SOURCE ET CIBLE, et j'ai mis la macro dans
CIBLE.

Mais à l'exécution, j'ai un message d'erreur :
Run-time error '9'
Subscript out of range

en exécutant pas-à-pas, je constate que çà bloque à la 3ème ligne
Sheets("Feuil1").Rows(1).Copy

En relisant la macro, je ne vois pas ce qui cloche...
Une idée ??
Marc D


"Daniel" a écrit dans le message de
news:%
Je crois que tu aurais dû initialiser un nouveau fil avec un nouveau
titre.

En fouillant dans mes archives, j'ai retrouvé la macro suivante avec un
fichier source en lecture et un fichier "cible" de regroupement.
Je ne me rapelle plus si je l'avais publié. Je le remets à tout hasard :

Sub test()
Dim Ctr As Long, i As Integer
Workbooks("SOURCE.xls").Activate
Sheets("Feuil1").Rows(1).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Paste
Ctr = 2
Workbooks("SOURCE.xls").Activate
For i = 1 To Sheets.Count
Workbooks("SOURCE.xls").Activate
Sheets(i).Activate
Range("A2").Resize(Range("A65536").End(xlUp).Row - 1, _
Range("IV1").End(xlToLeft).Column).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Select
Cells(Ctr, 1).Select
Sheets("Global").Paste
Ctr = Range("A65536").End(xlUp).Row + 1
Next i
End Sub

Un peu bousculé en ce moment avec la rentrée scolaire et le déménagement
de

mes gamins, mais ça commence à se calmer.
Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433ea381$0$25975$
Bonjour,
voici ce que je voudrais faire:
sur plusieurs onglets d'un fichier, j'ai des données sous forme de
listes


(bases de données avec entête de colonnes en première ligne)
les onglets ont tous le même nombre de colonnes, avec les mêmes entêtes
le nombre de lignes est différent d'un onglet à l'autre (chaque ligne
est


un
article différent)

je voudrais faire une macro qui rassemble toutes les données des onglets
en
une seule liste, plus facile à traiter ensuite sous forme de TcD

Information complémentaire:
le fichier ci-dessus est un fichier A de saisie de données : il est
déposé


sur un répertoire d'un réseau, et plusieurs participants peuvent y
accéder


simultanément (fichier partagé)
je souhaite que la macro soit dans un autre fichier B, où serait créée
la


compil: cette compil servira de table de données pour un TcD
c'est à cause de ce TcD que je pense préférable de séparer en 2 fichiers
(un
de saisie, et un de traitement)

La macro proposée par Daniel dans les messages précédents marche bien,
mais
elle crée la compil sous forme d'un onglet Global dans le fichier
initial



Merci de votre aide
Marc D

"Daniel" a écrit dans le message de
news:%
Bonjour.
Désolé, je ne me rappelle plus exactement de la question, sinon de la
majuscule de "Global".
Le mieux serait de reposter l'ensemble de ton problème sans me
l'adresser



en
particulier, afin que de plus savants que moi puissent aussi y
réfléchir.



Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433e926e$1$25983$
J'espère que Daniel verra mon message: nous avons échangé plusieurs
fois,


mais je ne crois pas qu'il ait vu mon dernier message...
Je lance une nouvelle bouteille à la mer

cordialement,
Marc D











Avatar
Daniel
J'aurai dû préciser que le classeur "SOURCE.xls" doit être ouvert. Si ce
n'est pas le cas, ouvre-le avant d'exécuter la macro ou ajoute :
Workbooks.Open "C:tempSOURCE.xls" (change le répertoire en conséquence)
D'autre part vérifie que le nom de la feuille est bien "Feuil1".
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433ef9ca$0$26565$
Bon, merci d'avoir pris le temps de me répondre, mais je n'ai pas réussi à
le faire marcher...
J'ai bien créé deux fichiers SOURCE ET CIBLE, et j'ai mis la macro dans
CIBLE.

Mais à l'exécution, j'ai un message d'erreur :
Run-time error '9'
Subscript out of range

en exécutant pas-à-pas, je constate que çà bloque à la 3ème ligne
Sheets("Feuil1").Rows(1).Copy

En relisant la macro, je ne vois pas ce qui cloche...
Une idée ??
Marc D


"Daniel" a écrit dans le message de
news:%
Je crois que tu aurais dû initialiser un nouveau fil avec un nouveau
titre.

En fouillant dans mes archives, j'ai retrouvé la macro suivante avec un
fichier source en lecture et un fichier "cible" de regroupement.
Je ne me rapelle plus si je l'avais publié. Je le remets à tout hasard :

Sub test()
Dim Ctr As Long, i As Integer
Workbooks("SOURCE.xls").Activate
Sheets("Feuil1").Rows(1).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Paste
Ctr = 2
Workbooks("SOURCE.xls").Activate
For i = 1 To Sheets.Count
Workbooks("SOURCE.xls").Activate
Sheets(i).Activate
Range("A2").Resize(Range("A65536").End(xlUp).Row - 1, _
Range("IV1").End(xlToLeft).Column).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Select
Cells(Ctr, 1).Select
Sheets("Global").Paste
Ctr = Range("A65536").End(xlUp).Row + 1
Next i
End Sub

Un peu bousculé en ce moment avec la rentrée scolaire et le déménagement
de

mes gamins, mais ça commence à se calmer.
Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433ea381$0$25975$
Bonjour,
voici ce que je voudrais faire:
sur plusieurs onglets d'un fichier, j'ai des données sous forme de
listes


(bases de données avec entête de colonnes en première ligne)
les onglets ont tous le même nombre de colonnes, avec les mêmes entêtes
le nombre de lignes est différent d'un onglet à l'autre (chaque ligne
est


un
article différent)

je voudrais faire une macro qui rassemble toutes les données des
onglets
en
une seule liste, plus facile à traiter ensuite sous forme de TcD

Information complémentaire:
le fichier ci-dessus est un fichier A de saisie de données : il est
déposé


sur un répertoire d'un réseau, et plusieurs participants peuvent y
accéder


simultanément (fichier partagé)
je souhaite que la macro soit dans un autre fichier B, où serait créée
la


compil: cette compil servira de table de données pour un TcD
c'est à cause de ce TcD que je pense préférable de séparer en 2
fichiers
(un
de saisie, et un de traitement)

La macro proposée par Daniel dans les messages précédents marche bien,
mais
elle crée la compil sous forme d'un onglet Global dans le fichier
initial



Merci de votre aide
Marc D

"Daniel" a écrit dans le message de
news:%
Bonjour.
Désolé, je ne me rappelle plus exactement de la question, sinon de la
majuscule de "Global".
Le mieux serait de reposter l'ensemble de ton problème sans me
l'adresser



en
particulier, afin que de plus savants que moi puissent aussi y
réfléchir.



Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message
de
news: 433e926e$1$25983$
J'espère que Daniel verra mon message: nous avons échangé plusieurs
fois,


mais je ne crois pas qu'il ait vu mon dernier message...
Je lance une nouvelle bouteille à la mer

cordialement,
Marc D














Avatar
Marc D
C'est un mystère:
çà ne vient pas de l'ouverture de SOURCE: ils sont actifs tous les 2 (SOURCE
et CIBLE) : c'est déjà ce que je faisais hier

voici ce qui se passe quand on déroule la macro pas à pas:
à la deuxième instruction
Workbooks("SOURCE.xls").Activate
le fichier SOURCE est activé, il est ouvert sur l'onglet actif Feuil3 (il
comporte 3 onglets Feuil1, Feuil2, Feuil3 avec des majuscules)

à la 3ème ligne
Sheets("Feuil1").Rows(1).Copy
c'est tjrs l'onglet Feuil3 qui reste actif,
et on reçoit le message d'erreur:
Run-time error '9'
Subscript out of range

je ne comprends pas bien...

cordialement,
Marc D

"Daniel" a écrit dans le message de
news:
J'aurai dû préciser que le classeur "SOURCE.xls" doit être ouvert. Si ce
n'est pas le cas, ouvre-le avant d'exécuter la macro ou ajoute :
Workbooks.Open "C:tempSOURCE.xls" (change le répertoire en conséquence)
D'autre part vérifie que le nom de la feuille est bien "Feuil1".
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433ef9ca$0$26565$
Bon, merci d'avoir pris le temps de me répondre, mais je n'ai pas réussi
à


le faire marcher...
J'ai bien créé deux fichiers SOURCE ET CIBLE, et j'ai mis la macro dans
CIBLE.

Mais à l'exécution, j'ai un message d'erreur :
Run-time error '9'
Subscript out of range

en exécutant pas-à-pas, je constate que çà bloque à la 3ème ligne
Sheets("Feuil1").Rows(1).Copy

En relisant la macro, je ne vois pas ce qui cloche...
Une idée ??
Marc D


"Daniel" a écrit dans le message de
news:%
Je crois que tu aurais dû initialiser un nouveau fil avec un nouveau
titre.

En fouillant dans mes archives, j'ai retrouvé la macro suivante avec un
fichier source en lecture et un fichier "cible" de regroupement.
Je ne me rapelle plus si je l'avais publié. Je le remets à tout hasard
:




Sub test()
Dim Ctr As Long, i As Integer
Workbooks("SOURCE.xls").Activate
Sheets("Feuil1").Rows(1).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Paste
Ctr = 2
Workbooks("SOURCE.xls").Activate
For i = 1 To Sheets.Count
Workbooks("SOURCE.xls").Activate
Sheets(i).Activate
Range("A2").Resize(Range("A65536").End(xlUp).Row - 1, _
Range("IV1").End(xlToLeft).Column).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Select
Cells(Ctr, 1).Select
Sheets("Global").Paste
Ctr = Range("A65536").End(xlUp).Row + 1
Next i
End Sub

Un peu bousculé en ce moment avec la rentrée scolaire et le
déménagement



de
mes gamins, mais ça commence à se calmer.
Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433ea381$0$25975$
Bonjour,
voici ce que je voudrais faire:
sur plusieurs onglets d'un fichier, j'ai des données sous forme de
listes


(bases de données avec entête de colonnes en première ligne)
les onglets ont tous le même nombre de colonnes, avec les mêmes
entêtes




le nombre de lignes est différent d'un onglet à l'autre (chaque ligne
est


un
article différent)

je voudrais faire une macro qui rassemble toutes les données des
onglets
en
une seule liste, plus facile à traiter ensuite sous forme de TcD

Information complémentaire:
le fichier ci-dessus est un fichier A de saisie de données : il est
déposé


sur un répertoire d'un réseau, et plusieurs participants peuvent y
accéder


simultanément (fichier partagé)
je souhaite que la macro soit dans un autre fichier B, où serait
créée




la
compil: cette compil servira de table de données pour un TcD
c'est à cause de ce TcD que je pense préférable de séparer en 2
fichiers
(un
de saisie, et un de traitement)

La macro proposée par Daniel dans les messages précédents marche
bien,




mais
elle crée la compil sous forme d'un onglet Global dans le fichier
initial



Merci de votre aide
Marc D

"Daniel" a écrit dans le message de
news:%
Bonjour.
Désolé, je ne me rappelle plus exactement de la question, sinon de
la





majuscule de "Global".
Le mieux serait de reposter l'ensemble de ton problème sans me
l'adresser



en
particulier, afin que de plus savants que moi puissent aussi y
réfléchir.



Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message
de
news: 433e926e$1$25983$
J'espère que Daniel verra mon message: nous avons échangé
plusieurs






fois,
mais je ne crois pas qu'il ait vu mon dernier message...
Je lance une nouvelle bouteille à la mer

cordialement,
Marc D


















Avatar
michdenis
Bonjour Marc,

Cette procédure copie toutes les données de toutes les feuilles du classeur2 vers la feuille1 du classeur3

'---------------------------------
Sub Compilation()
Dim a as Integer, Sh As Worksheet
With Workbooks("Classeur2")
For Each sh In .Worksheets
derlig = sh.Range("A65536").End(xlUp).Row
dercol = sh.Range("IV1").End(xlToLeft).Column

If a = 0 Then
sh.Range("A1", sh.Cells(derlig, dercol)).Copy _
Workbooks("classeur3").Worksheets("Feuil1").Range("A1")
a = 1
Else
sh.Range("A2", sh.Cells(derlig, dercol)).Copy _
Workbooks("classeur3").Worksheets("Feuil1").Range("A65536").End(xlUp)(2)
End If
Next
End With

End Sub
'---------------------------------


Salutations!



"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de news:
433fced7$0$16916$
C'est un mystère:
çà ne vient pas de l'ouverture de SOURCE: ils sont actifs tous les 2 (SOURCE
et CIBLE) : c'est déjà ce que je faisais hier

voici ce qui se passe quand on déroule la macro pas à pas:
à la deuxième instruction
Workbooks("SOURCE.xls").Activate
le fichier SOURCE est activé, il est ouvert sur l'onglet actif Feuil3 (il
comporte 3 onglets Feuil1, Feuil2, Feuil3 avec des majuscules)

à la 3ème ligne
Sheets("Feuil1").Rows(1).Copy
c'est tjrs l'onglet Feuil3 qui reste actif,
et on reçoit le message d'erreur:
Run-time error '9'
Subscript out of range

je ne comprends pas bien...

cordialement,
Marc D

"Daniel" a écrit dans le message de
news:
J'aurai dû préciser que le classeur "SOURCE.xls" doit être ouvert. Si ce
n'est pas le cas, ouvre-le avant d'exécuter la macro ou ajoute :
Workbooks.Open "C:tempSOURCE.xls" (change le répertoire en conséquence)
D'autre part vérifie que le nom de la feuille est bien "Feuil1".
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433ef9ca$0$26565$
Bon, merci d'avoir pris le temps de me répondre, mais je n'ai pas réussi
à


le faire marcher...
J'ai bien créé deux fichiers SOURCE ET CIBLE, et j'ai mis la macro dans
CIBLE.

Mais à l'exécution, j'ai un message d'erreur :
Run-time error '9'
Subscript out of range

en exécutant pas-à-pas, je constate que çà bloque à la 3ème ligne
Sheets("Feuil1").Rows(1).Copy

En relisant la macro, je ne vois pas ce qui cloche...
Une idée ??
Marc D


"Daniel" a écrit dans le message de
news:%
Je crois que tu aurais dû initialiser un nouveau fil avec un nouveau
titre.

En fouillant dans mes archives, j'ai retrouvé la macro suivante avec un
fichier source en lecture et un fichier "cible" de regroupement.
Je ne me rapelle plus si je l'avais publié. Je le remets à tout hasard
:




Sub test()
Dim Ctr As Long, i As Integer
Workbooks("SOURCE.xls").Activate
Sheets("Feuil1").Rows(1).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Paste
Ctr = 2
Workbooks("SOURCE.xls").Activate
For i = 1 To Sheets.Count
Workbooks("SOURCE.xls").Activate
Sheets(i).Activate
Range("A2").Resize(Range("A65536").End(xlUp).Row - 1, _
Range("IV1").End(xlToLeft).Column).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Select
Cells(Ctr, 1).Select
Sheets("Global").Paste
Ctr = Range("A65536").End(xlUp).Row + 1
Next i
End Sub

Un peu bousculé en ce moment avec la rentrée scolaire et le
déménagement



de
mes gamins, mais ça commence à se calmer.
Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433ea381$0$25975$
Bonjour,
voici ce que je voudrais faire:
sur plusieurs onglets d'un fichier, j'ai des données sous forme de
listes


(bases de données avec entête de colonnes en première ligne)
les onglets ont tous le même nombre de colonnes, avec les mêmes
entêtes




le nombre de lignes est différent d'un onglet à l'autre (chaque ligne
est


un
article différent)

je voudrais faire une macro qui rassemble toutes les données des
onglets
en
une seule liste, plus facile à traiter ensuite sous forme de TcD

Information complémentaire:
le fichier ci-dessus est un fichier A de saisie de données : il est
déposé


sur un répertoire d'un réseau, et plusieurs participants peuvent y
accéder


simultanément (fichier partagé)
je souhaite que la macro soit dans un autre fichier B, où serait
créée




la
compil: cette compil servira de table de données pour un TcD
c'est à cause de ce TcD que je pense préférable de séparer en 2
fichiers
(un
de saisie, et un de traitement)

La macro proposée par Daniel dans les messages précédents marche
bien,




mais
elle crée la compil sous forme d'un onglet Global dans le fichier
initial



Merci de votre aide
Marc D

"Daniel" a écrit dans le message de
news:%
Bonjour.
Désolé, je ne me rappelle plus exactement de la question, sinon de
la





majuscule de "Global".
Le mieux serait de reposter l'ensemble de ton problème sans me
l'adresser



en
particulier, afin que de plus savants que moi puissent aussi y
réfléchir.



Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message
de
news: 433e926e$1$25983$
J'espère que Daniel verra mon message: nous avons échangé
plusieurs






fois,
mais je ne crois pas qu'il ait vu mon dernier message...
Je lance une nouvelle bouteille à la mer

cordialement,
Marc D


















Avatar
Marc D
Bonjour Michdenis, merci d'intervenir

je butte encore sur la même erreur:

après la ligne
With Workbooks("Classeur2")
je reçois un message d'erreur
Run-time error '9'
Subscript out of range

une remarque sur l'instruction:
If a = 0 Then
le paramètre "a" ne doit-il pas être initialisé ? ou bien prend-il la valeur
0 par défaut ?

autre remarque: j'ai mis la macro dans la feuille thisWorkbook du fichier
CIBLE, sans succès, puis n'étant pas sûr, j'ai créé un nouveau module dans
ce même fichier: même résultat

merci

Marc D

"michdenis" a écrit dans le message de
news:%23%
Bonjour Marc,

Cette procédure copie toutes les données de toutes les feuilles du
classeur2 vers la feuille1 du classeur3


'---------------------------------
Sub Compilation()
Dim a as Integer, Sh As Worksheet
With Workbooks("Classeur2")
For Each sh In .Worksheets
derlig = sh.Range("A65536").End(xlUp).Row
dercol = sh.Range("IV1").End(xlToLeft).Column

If a = 0 Then
sh.Range("A1", sh.Cells(derlig, dercol)).Copy _
Workbooks("classeur3").Worksheets("Feuil1").Range("A1")
a = 1
Else
sh.Range("A2", sh.Cells(derlig, dercol)).Copy _

Workbooks("classeur3").Worksheets("Feuil1").Range("A65536").End(xlUp)(2)

End If
Next
End With

End Sub
'---------------------------------


Salutations!



"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news:

433fced7$0$16916$
C'est un mystère:
çà ne vient pas de l'ouverture de SOURCE: ils sont actifs tous les 2
(SOURCE

et CIBLE) : c'est déjà ce que je faisais hier

voici ce qui se passe quand on déroule la macro pas à pas:
à la deuxième instruction
Workbooks("SOURCE.xls").Activate
le fichier SOURCE est activé, il est ouvert sur l'onglet actif Feuil3 (il
comporte 3 onglets Feuil1, Feuil2, Feuil3 avec des majuscules)

à la 3ème ligne
Sheets("Feuil1").Rows(1).Copy
c'est tjrs l'onglet Feuil3 qui reste actif,
et on reçoit le message d'erreur:
Run-time error '9'
Subscript out of range

je ne comprends pas bien...

cordialement,
Marc D

"Daniel" a écrit dans le message de
news:
J'aurai dû préciser que le classeur "SOURCE.xls" doit être ouvert. Si ce
n'est pas le cas, ouvre-le avant d'exécuter la macro ou ajoute :
Workbooks.Open "C:tempSOURCE.xls" (change le répertoire en
conséquence)


D'autre part vérifie que le nom de la feuille est bien "Feuil1".
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433ef9ca$0$26565$
Bon, merci d'avoir pris le temps de me répondre, mais je n'ai pas
réussi



à
le faire marcher...
J'ai bien créé deux fichiers SOURCE ET CIBLE, et j'ai mis la macro
dans



CIBLE.

Mais à l'exécution, j'ai un message d'erreur :
Run-time error '9'
Subscript out of range

en exécutant pas-à-pas, je constate que çà bloque à la 3ème ligne
Sheets("Feuil1").Rows(1).Copy

En relisant la macro, je ne vois pas ce qui cloche...
Une idée ??
Marc D


"Daniel" a écrit dans le message de
news:%
Je crois que tu aurais dû initialiser un nouveau fil avec un nouveau
titre.

En fouillant dans mes archives, j'ai retrouvé la macro suivante avec
un




fichier source en lecture et un fichier "cible" de regroupement.
Je ne me rapelle plus si je l'avais publié. Je le remets à tout
hasard




:

Sub test()
Dim Ctr As Long, i As Integer
Workbooks("SOURCE.xls").Activate
Sheets("Feuil1").Rows(1).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Paste
Ctr = 2
Workbooks("SOURCE.xls").Activate
For i = 1 To Sheets.Count
Workbooks("SOURCE.xls").Activate
Sheets(i).Activate
Range("A2").Resize(Range("A65536").End(xlUp).Row - 1, _
Range("IV1").End(xlToLeft).Column).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Select
Cells(Ctr, 1).Select
Sheets("Global").Paste
Ctr = Range("A65536").End(xlUp).Row + 1
Next i
End Sub

Un peu bousculé en ce moment avec la rentrée scolaire et le
déménagement



de
mes gamins, mais ça commence à se calmer.
Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message
de




news: 433ea381$0$25975$
Bonjour,
voici ce que je voudrais faire:
sur plusieurs onglets d'un fichier, j'ai des données sous forme de
listes


(bases de données avec entête de colonnes en première ligne)
les onglets ont tous le même nombre de colonnes, avec les mêmes
entêtes




le nombre de lignes est différent d'un onglet à l'autre (chaque
ligne





est
un
article différent)

je voudrais faire une macro qui rassemble toutes les données des
onglets
en
une seule liste, plus facile à traiter ensuite sous forme de TcD

Information complémentaire:
le fichier ci-dessus est un fichier A de saisie de données : il est
déposé


sur un répertoire d'un réseau, et plusieurs participants peuvent y
accéder


simultanément (fichier partagé)
je souhaite que la macro soit dans un autre fichier B, où serait
créée




la
compil: cette compil servira de table de données pour un TcD
c'est à cause de ce TcD que je pense préférable de séparer en 2
fichiers
(un
de saisie, et un de traitement)

La macro proposée par Daniel dans les messages précédents marche
bien,




mais
elle crée la compil sous forme d'un onglet Global dans le fichier
initial



Merci de votre aide
Marc D

"Daniel" a écrit dans le message de
news:%
Bonjour.
Désolé, je ne me rappelle plus exactement de la question, sinon de
la





majuscule de "Global".
Le mieux serait de reposter l'ensemble de ton problème sans me
l'adresser



en
particulier, afin que de plus savants que moi puissent aussi y
réfléchir.



Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le
message






de
news: 433e926e$1$25983$
J'espère que Daniel verra mon message: nous avons échangé
plusieurs






fois,
mais je ne crois pas qu'il ait vu mon dernier message...
Je lance une nouvelle bouteille à la mer

cordialement,
Marc D






















Avatar
michdenis
Bonjour Marc,

Est-ce que ton classeur porte le nom de Classeur2 ? Tu dois pour le moins prendre le temps d'identifier les objets selon ton
application... Excel ne peut pas deviner !!! N'oublie pas d'y ajouter l'extension si ton classeur est déjà enregistrée
With Workbooks("NomDeTonClasseur.xls")

Applique la même chose pour le classeur de destination.


Concernant la variable A, comme j'ai défini le type de la variable A As integer, sa valeur est zéro en début de procédure. Rien à
modifier.


Salutations!


"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de news:
433fea8e$0$30255$
Bonjour Michdenis, merci d'intervenir

je butte encore sur la même erreur:

après la ligne
With Workbooks("Classeur2")
je reçois un message d'erreur
Run-time error '9'
Subscript out of range

une remarque sur l'instruction:
If a = 0 Then
le paramètre "a" ne doit-il pas être initialisé ? ou bien prend-il la valeur
0 par défaut ?

autre remarque: j'ai mis la macro dans la feuille thisWorkbook du fichier
CIBLE, sans succès, puis n'étant pas sûr, j'ai créé un nouveau module dans
ce même fichier: même résultat

merci

Marc D

"michdenis" a écrit dans le message de
news:%23%
Bonjour Marc,

Cette procédure copie toutes les données de toutes les feuilles du
classeur2 vers la feuille1 du classeur3


'---------------------------------
Sub Compilation()
Dim a as Integer, Sh As Worksheet
With Workbooks("Classeur2")
For Each sh In .Worksheets
derlig = sh.Range("A65536").End(xlUp).Row
dercol = sh.Range("IV1").End(xlToLeft).Column

If a = 0 Then
sh.Range("A1", sh.Cells(derlig, dercol)).Copy _
Workbooks("classeur3").Worksheets("Feuil1").Range("A1")
a = 1
Else
sh.Range("A2", sh.Cells(derlig, dercol)).Copy _

Workbooks("classeur3").Worksheets("Feuil1").Range("A65536").End(xlUp)(2)

End If
Next
End With

End Sub
'---------------------------------


Salutations!



"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news:

433fced7$0$16916$
C'est un mystère:
çà ne vient pas de l'ouverture de SOURCE: ils sont actifs tous les 2
(SOURCE

et CIBLE) : c'est déjà ce que je faisais hier

voici ce qui se passe quand on déroule la macro pas à pas:
à la deuxième instruction
Workbooks("SOURCE.xls").Activate
le fichier SOURCE est activé, il est ouvert sur l'onglet actif Feuil3 (il
comporte 3 onglets Feuil1, Feuil2, Feuil3 avec des majuscules)

à la 3ème ligne
Sheets("Feuil1").Rows(1).Copy
c'est tjrs l'onglet Feuil3 qui reste actif,
et on reçoit le message d'erreur:
Run-time error '9'
Subscript out of range

je ne comprends pas bien...

cordialement,
Marc D

"Daniel" a écrit dans le message de
news:
J'aurai dû préciser que le classeur "SOURCE.xls" doit être ouvert. Si ce
n'est pas le cas, ouvre-le avant d'exécuter la macro ou ajoute :
Workbooks.Open "C:tempSOURCE.xls" (change le répertoire en
conséquence)


D'autre part vérifie que le nom de la feuille est bien "Feuil1".
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news: 433ef9ca$0$26565$
Bon, merci d'avoir pris le temps de me répondre, mais je n'ai pas
réussi



à
le faire marcher...
J'ai bien créé deux fichiers SOURCE ET CIBLE, et j'ai mis la macro
dans



CIBLE.

Mais à l'exécution, j'ai un message d'erreur :
Run-time error '9'
Subscript out of range

en exécutant pas-à-pas, je constate que çà bloque à la 3ème ligne
Sheets("Feuil1").Rows(1).Copy

En relisant la macro, je ne vois pas ce qui cloche...
Une idée ??
Marc D


"Daniel" a écrit dans le message de
news:%
Je crois que tu aurais dû initialiser un nouveau fil avec un nouveau
titre.

En fouillant dans mes archives, j'ai retrouvé la macro suivante avec
un




fichier source en lecture et un fichier "cible" de regroupement.
Je ne me rapelle plus si je l'avais publié. Je le remets à tout
hasard




:

Sub test()
Dim Ctr As Long, i As Integer
Workbooks("SOURCE.xls").Activate
Sheets("Feuil1").Rows(1).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Paste
Ctr = 2
Workbooks("SOURCE.xls").Activate
For i = 1 To Sheets.Count
Workbooks("SOURCE.xls").Activate
Sheets(i).Activate
Range("A2").Resize(Range("A65536").End(xlUp).Row - 1, _
Range("IV1").End(xlToLeft).Column).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Select
Cells(Ctr, 1).Select
Sheets("Global").Paste
Ctr = Range("A65536").End(xlUp).Row + 1
Next i
End Sub

Un peu bousculé en ce moment avec la rentrée scolaire et le
déménagement



de
mes gamins, mais ça commence à se calmer.
Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message
de




news: 433ea381$0$25975$
Bonjour,
voici ce que je voudrais faire:
sur plusieurs onglets d'un fichier, j'ai des données sous forme de
listes


(bases de données avec entête de colonnes en première ligne)
les onglets ont tous le même nombre de colonnes, avec les mêmes
entêtes




le nombre de lignes est différent d'un onglet à l'autre (chaque
ligne





est
un
article différent)

je voudrais faire une macro qui rassemble toutes les données des
onglets
en
une seule liste, plus facile à traiter ensuite sous forme de TcD

Information complémentaire:
le fichier ci-dessus est un fichier A de saisie de données : il est
déposé


sur un répertoire d'un réseau, et plusieurs participants peuvent y
accéder


simultanément (fichier partagé)
je souhaite que la macro soit dans un autre fichier B, où serait
créée




la
compil: cette compil servira de table de données pour un TcD
c'est à cause de ce TcD que je pense préférable de séparer en 2
fichiers
(un
de saisie, et un de traitement)

La macro proposée par Daniel dans les messages précédents marche
bien,




mais
elle crée la compil sous forme d'un onglet Global dans le fichier
initial



Merci de votre aide
Marc D

"Daniel" a écrit dans le message de
news:%
Bonjour.
Désolé, je ne me rappelle plus exactement de la question, sinon de
la





majuscule de "Global".
Le mieux serait de reposter l'ensemble de ton problème sans me
l'adresser



en
particulier, afin que de plus savants que moi puissent aussi y
réfléchir.



Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le
message






de
news: 433e926e$1$25983$
J'espère que Daniel verra mon message: nous avons échangé
plusieurs






fois,
mais je ne crois pas qu'il ait vu mon dernier message...
Je lance une nouvelle bouteille à la mer

cordialement,
Marc D






















Avatar
Marc D
çà y est, c'est bon !
j'avais déjà bien sûr identifié les objets selon mon application: j'avais
remplacé Classeur2 par SOURCE et Classeur3 par CIBLE

ce qui bloquait, c'est qu'il fallait écrire SOURCE.xls et CIBLE.xls

pour ma gouverne, dans quel cas doit-on écrire le .xls ?

Merci beaucoup à Michdenis et aussi à Daniel pour leur patience (et leur
science)

Marc D


"michdenis" a écrit dans le message de
news:
Bonjour Marc,

Est-ce que ton classeur porte le nom de Classeur2 ? Tu dois pour le moins
prendre le temps d'identifier les objets selon ton

application... Excel ne peut pas deviner !!! N'oublie pas d'y ajouter
l'extension si ton classeur est déjà enregistrée

With Workbooks("NomDeTonClasseur.xls")

Applique la même chose pour le classeur de destination.


Concernant la variable A, comme j'ai défini le type de la variable A As
integer, sa valeur est zéro en début de procédure. Rien à

modifier.


Salutations!


"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news:

433fea8e$0$30255$
Bonjour Michdenis, merci d'intervenir

je butte encore sur la même erreur:

après la ligne
With Workbooks("Classeur2")
je reçois un message d'erreur
Run-time error '9'
Subscript out of range

une remarque sur l'instruction:
If a = 0 Then
le paramètre "a" ne doit-il pas être initialisé ? ou bien prend-il la
valeur

0 par défaut ?

autre remarque: j'ai mis la macro dans la feuille thisWorkbook du fichier
CIBLE, sans succès, puis n'étant pas sûr, j'ai créé un nouveau module dans
ce même fichier: même résultat

merci

Marc D

"michdenis" a écrit dans le message de
news:%23%
Bonjour Marc,

Cette procédure copie toutes les données de toutes les feuilles du
classeur2 vers la feuille1 du classeur3


'---------------------------------
Sub Compilation()
Dim a as Integer, Sh As Worksheet
With Workbooks("Classeur2")
For Each sh In .Worksheets
derlig = sh.Range("A65536").End(xlUp).Row
dercol = sh.Range("IV1").End(xlToLeft).Column

If a = 0 Then
sh.Range("A1", sh.Cells(derlig, dercol)).Copy _
Workbooks("classeur3").Worksheets("Feuil1").Range("A1")
a = 1
Else
sh.Range("A2", sh.Cells(derlig, dercol)).Copy _

Workbooks("classeur3").Worksheets("Feuil1").Range("A65536").End(xlUp)(2)

End If
Next
End With

End Sub
'---------------------------------


Salutations!



"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message de
news:

433fced7$0$16916$
C'est un mystère:
çà ne vient pas de l'ouverture de SOURCE: ils sont actifs tous les 2
(SOURCE

et CIBLE) : c'est déjà ce que je faisais hier

voici ce qui se passe quand on déroule la macro pas à pas:
à la deuxième instruction
Workbooks("SOURCE.xls").Activate
le fichier SOURCE est activé, il est ouvert sur l'onglet actif Feuil3
(il


comporte 3 onglets Feuil1, Feuil2, Feuil3 avec des majuscules)

à la 3ème ligne
Sheets("Feuil1").Rows(1).Copy
c'est tjrs l'onglet Feuil3 qui reste actif,
et on reçoit le message d'erreur:
Run-time error '9'
Subscript out of range

je ne comprends pas bien...

cordialement,
Marc D

"Daniel" a écrit dans le message de
news:
J'aurai dû préciser que le classeur "SOURCE.xls" doit être ouvert. Si
ce



n'est pas le cas, ouvre-le avant d'exécuter la macro ou ajoute :
Workbooks.Open "C:tempSOURCE.xls" (change le répertoire en
conséquence)


D'autre part vérifie que le nom de la feuille est bien "Feuil1".
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le message
de



news: 433ef9ca$0$26565$
Bon, merci d'avoir pris le temps de me répondre, mais je n'ai pas
réussi



à
le faire marcher...
J'ai bien créé deux fichiers SOURCE ET CIBLE, et j'ai mis la macro
dans



CIBLE.

Mais à l'exécution, j'ai un message d'erreur :
Run-time error '9'
Subscript out of range

en exécutant pas-à-pas, je constate que çà bloque à la 3ème ligne
Sheets("Feuil1").Rows(1).Copy

En relisant la macro, je ne vois pas ce qui cloche...
Une idée ??
Marc D


"Daniel" a écrit dans le message de
news:%
Je crois que tu aurais dû initialiser un nouveau fil avec un
nouveau





titre.
En fouillant dans mes archives, j'ai retrouvé la macro suivante
avec





un
fichier source en lecture et un fichier "cible" de regroupement.
Je ne me rapelle plus si je l'avais publié. Je le remets à tout
hasard




:

Sub test()
Dim Ctr As Long, i As Integer
Workbooks("SOURCE.xls").Activate
Sheets("Feuil1").Rows(1).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Paste
Ctr = 2
Workbooks("SOURCE.xls").Activate
For i = 1 To Sheets.Count
Workbooks("SOURCE.xls").Activate
Sheets(i).Activate
Range("A2").Resize(Range("A65536").End(xlUp).Row - 1, _
Range("IV1").End(xlToLeft).Column).Copy
Workbooks("CIBLE.xls").Activate
Sheets("Global").Select
Cells(Ctr, 1).Select
Sheets("Global").Paste
Ctr = Range("A65536").End(xlUp).Row + 1
Next i
End Sub

Un peu bousculé en ce moment avec la rentrée scolaire et le
déménagement



de
mes gamins, mais ça commence à se calmer.
Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le
message





de
news: 433ea381$0$25975$
Bonjour,
voici ce que je voudrais faire:
sur plusieurs onglets d'un fichier, j'ai des données sous forme
de






listes
(bases de données avec entête de colonnes en première ligne)
les onglets ont tous le même nombre de colonnes, avec les mêmes
entêtes




le nombre de lignes est différent d'un onglet à l'autre (chaque
ligne





est
un
article différent)

je voudrais faire une macro qui rassemble toutes les données des
onglets
en
une seule liste, plus facile à traiter ensuite sous forme de TcD

Information complémentaire:
le fichier ci-dessus est un fichier A de saisie de données : il
est






déposé
sur un répertoire d'un réseau, et plusieurs participants peuvent
y






accéder
simultanément (fichier partagé)
je souhaite que la macro soit dans un autre fichier B, où serait
créée




la
compil: cette compil servira de table de données pour un TcD
c'est à cause de ce TcD que je pense préférable de séparer en 2
fichiers
(un
de saisie, et un de traitement)

La macro proposée par Daniel dans les messages précédents marche
bien,




mais
elle crée la compil sous forme d'un onglet Global dans le fichier
initial



Merci de votre aide
Marc D

"Daniel" a écrit dans le message de
news:%
Bonjour.
Désolé, je ne me rappelle plus exactement de la question, sinon
de







la
majuscule de "Global".
Le mieux serait de reposter l'ensemble de ton problème sans me
l'adresser



en
particulier, afin que de plus savants que moi puissent aussi y
réfléchir.



Cordialement.
Daniel
"Marc D" <http://cerbermail.com/?GYTiuFqCBb> a écrit dans le
message






de
news: 433e926e$1$25983$
J'espère que Daniel verra mon message: nous avons échangé
plusieurs






fois,
mais je ne crois pas qu'il ait vu mon dernier message...
Je lance une nouvelle bouteille à la mer

cordialement,
Marc D


























1 2 3