Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

'recompiler' un fichier excel vide avec plusieurs fichier remplis

15 réponses
Avatar
david anceau
Bonjour,
Le titre n'est pas forcement explicite.

J'ai 30 fichiers de structure identiques qui doivent =EAtre remplis par
des magasins.
Chaque fichier comprend des colonnes qui correspondent =E0 tous les
magasins (code =E0 trois lettre).
ex :
ANG BOR PAR NAN COL etc...
Qt=E9
Chaque magasin va remplir sa colonne dans un fichier qui lui est
attribu=E9. ANG (angoul=E8me) aura le m=EAme fichier que BOR (bordeaux) mai=
s
remplira uniquement sa colonne.
ex pour Bordeaux : pour colmar :
ANG BOR PAR NAN COL ANG BOR PAR NAN COL
Qt=E9
12
20

Au final, j'aurai 30 fois le m=EAme fichier remplit uniquement dans une
colonne sp=E9cifique au magasin.

Je dois recompiler toutes les colonnes des trente fichiers dans un
autre fichier excel (le m=EAme mais vide) pour obtenir le fichier
global.
A B C D E
1 ANG BOR PAR NAN COL
2 Qt=E9 12 20

J'arrive =E0 lire un r=E9pertoire de fa=E7on r=E9cursive, mais je cherche =
=E0
faire un update (qui met =E0 jour la bonne colonne vide du fichier
final) =E0 chaque lecture. Savez vous comment faire, si possible en
utilisant ADO ????

Merci d'avance pour votre aide

10 réponses

1 2
Avatar
MichDenis
Pour chacune des régions "ANG BOR PAR NAN COL etc..."
est-ce qu'il y a une façon de reconnaître la région par le nom
du fichier ?

Tes étiquettes de colonnes se retrouvent en ligne 1 ?
Est-ce que le classeur a plus d'une feuille ?
Est-ce le même nom pour chaque feuille de chaque classeur ?
si oui c'est quoi le nom de la feuille ?

Est-ce que dans la colonne de chaque région, il y a des cellules vides ?
le contenu des cellules de toute la colonne est-il du même type ?
Numérique ou alphanumérique ? (une idée du type de données)

Ta version d'excel ?


"david anceau" a écrit dans le message de groupe de discussion :

Bonjour,
Le titre n'est pas forcement explicite.

J'ai 30 fichiers de structure identiques qui doivent être remplis par
des magasins.
Chaque fichier comprend des colonnes qui correspondent à tous les
magasins (code à trois lettre).
ex :
ANG BOR PAR NAN COL etc...
Qté
Chaque magasin va remplir sa colonne dans un fichier qui lui est
attribué. ANG (angoulème) aura le même fichier que BOR (bordeaux) mais
remplira uniquement sa colonne.
ex pour Bordeaux : pour colmar :
ANG BOR PAR NAN COL ANG BOR PAR NAN COL
Qté
12
20

Au final, j'aurai 30 fois le même fichier remplit uniquement dans une
colonne spécifique au magasin.

Je dois recompiler toutes les colonnes des trente fichiers dans un
autre fichier excel (le même mais vide) pour obtenir le fichier
global.
A B C D E
1 ANG BOR PAR NAN COL
2 Qté 12 20

J'arrive à lire un répertoire de façon récursive, mais je cherche à
faire un update (qui met à jour la bonne colonne vide du fichier
final) à chaque lecture. Savez vous comment faire, si possible en
utilisant ADO ????

Merci d'avance pour votre aide
Avatar
david anceau
Ok tu as raison, il faut plus de précision...
Les fichiers portent tous le même nom mais sont dans des répertoires
différents.
Les étiquette de colonnes sont en ligne 15.
Le classeur possède plus d'une feuille et celle qui m'interesse est la
feuille "REFERENCEMENT"
Il s'agit du même nom pour chaque feuille de chaque classeur.
Il y a des cellules vide dans les colonnes de chaque region et il
s'agit de valeurs numériques entieres.
Je possède excel 2003 et 2007.

D'avance merci

David

On 4 mar, 15:14, "MichDenis" wrote:
Pour chacune des régions "ANG BOR PAR NAN COL etc..."
est-ce qu'il y a une façon de reconnaître la région par le nom
du fichier ?

Tes étiquettes de colonnes se retrouvent en ligne 1 ?
Est-ce que le classeur a plus d'une feuille ?
Est-ce le même nom pour chaque feuille de chaque classeur ?
si oui c'est quoi le nom de la feuille ?

Est-ce que dans la colonne de chaque région, il y a des cellules vides ?
le contenu des cellules de toute la colonne est-il du même type ?
Numérique ou alphanumérique ? (une idée du type de données)

Ta version d'excel ?

"david anceau" a écrit dans le message de groupe d e discussion :

Bonjour,
Le titre n'est pas forcement explicite.

J'ai 30 fichiers de structure identiques qui doivent être remplis par
des magasins.
Chaque fichier comprend des colonnes qui correspondent à tous les
magasins (code à trois lettre).
ex :
        ANG BOR PAR NAN COL etc...
Qté
Chaque magasin va remplir sa colonne dans un fichier qui lui est
attribué. ANG (angoulème) aura le même fichier que BOR (bordeaux) m ais
remplira uniquement sa colonne.
ex pour Bordeaux :                           po ur colmar :
        ANG BOR PAR NAN COL         ANG BOR PAR NAN COL
Qté
12
20

Au final, j'aurai 30 fois le même fichier remplit uniquement dans une
colonne spécifique au magasin.








Je dois recompiler toutes les colonnes des trente fichiers dans un
autre fichier excel (le même mais vide) pour obtenir le fichier
global.
          A     B     C      D     E
1        ANG BOR PAR NAN COL
2 Qté           12                    20

J'arrive à lire un répertoire de façon récursive, mais je cherche à
faire un update (qui met à jour la bonne colonne vide du fichier
final) à chaque lecture. Savez vous comment faire, si possible en
utilisant ADO ????

Merci d'avance pour votre aide


Avatar
MichDenis
Suggestion :
Si chaque nom de tes classeurs débutaient par le code
qui leur est propre dans le genre :
"ang_Classeur.xls" , "bor_classeur.xls" ...

A ) tu pourrais les regrouper dans le même répertoire
l'accessibilité est d'autant plus facile et rapide.
B ) Avec ADO, lorsque tu veux ouvrir le fichier, tu sais sur
quel champ de la table de ce classeur tu dois extraire les données
puisque ce champ apparaît dans le nom du classeur. À défaut de
quoi, il faut faire une requête sur l'ensemble des données du fichier,
identifier le champ qui a le plus de données car je suppose que les
autres champs sont vides... ça complique inutilement le traitement
et son temps de traitement.

C) Quels sont les colonnes que tu utilises ? De A15 À ....

Qu'en penses-tu ?




"david anceau" a écrit dans le message de groupe de discussion :

Ok tu as raison, il faut plus de précision...
Les fichiers portent tous le même nom mais sont dans des répertoires
différents.
Les étiquette de colonnes sont en ligne 15.
Le classeur possède plus d'une feuille et celle qui m'interesse est la
feuille "REFERENCEMENT"
Il s'agit du même nom pour chaque feuille de chaque classeur.
Il y a des cellules vide dans les colonnes de chaque region et il
s'agit de valeurs numériques entieres.
Je possède excel 2003 et 2007.

D'avance merci

David

On 4 mar, 15:14, "MichDenis" wrote:
Pour chacune des régions "ANG BOR PAR NAN COL etc..."
est-ce qu'il y a une façon de reconnaître la région par le nom
du fichier ?

Tes étiquettes de colonnes se retrouvent en ligne 1 ?
Est-ce que le classeur a plus d'une feuille ?
Est-ce le même nom pour chaque feuille de chaque classeur ?
si oui c'est quoi le nom de la feuille ?

Est-ce que dans la colonne de chaque région, il y a des cellules vides ?
le contenu des cellules de toute la colonne est-il du même type ?
Numérique ou alphanumérique ? (une idée du type de données)

Ta version d'excel ?

"david anceau" a écrit dans le message de groupe de discussion :

Bonjour,
Le titre n'est pas forcement explicite.

J'ai 30 fichiers de structure identiques qui doivent être remplis par
des magasins.
Chaque fichier comprend des colonnes qui correspondent à tous les
magasins (code à trois lettre).
ex :
ANG BOR PAR NAN COL etc...
Qté
Chaque magasin va remplir sa colonne dans un fichier qui lui est
attribué. ANG (angoulème) aura le même fichier que BOR (bordeaux) mais
remplira uniquement sa colonne.
ex pour Bordeaux : pour colmar :
ANG BOR PAR NAN COL ANG BOR PAR NAN COL
Qté
12
20

Au final, j'aurai 30 fois le même fichier remplit uniquement dans une
colonne spécifique au magasin.








Je dois recompiler toutes les colonnes des trente fichiers dans un
autre fichier excel (le même mais vide) pour obtenir le fichier
global.
A B C D E
1 ANG BOR PAR NAN COL
2 Qté 12 20

J'arrive à lire un répertoire de façon récursive, mais je cherche à
faire un update (qui met à jour la bonne colonne vide du fichier
final) à chaque lecture. Savez vous comment faire, si possible en
utilisant ADO ????

Merci d'avance pour votre aide


Avatar
david anceau
Très bonne idée !
Je vais renommer les fichiers avec en prefixe le nom de la region
suivi de _
Mes colonnes débutent à BF et finissent à FQ.
voici en PJ un fichier type pour mieux comprendre :
http://www.cijoint.fr/cjlink.php?file=cj200903/cijj4Rh9V5.xls



On 4 mar, 16:15, "MichDenis" wrote:
Suggestion :
Si chaque nom de tes classeurs débutaient par le code
qui leur est propre dans le genre :
"ang_Classeur.xls" , "bor_classeur.xls" ...

A ) tu pourrais les regrouper dans le même répertoire
     l'accessibilité est d'autant plus facile et rapide.
B ) Avec ADO, lorsque tu veux ouvrir le fichier, tu sais sur
quel champ de la table de ce classeur tu dois extraire les données
puisque ce champ apparaît dans le nom du classeur. À défaut de
quoi, il faut faire une requête sur l'ensemble des données du fichier ,
identifier le champ qui a le plus de données car je suppose que les
autres champs sont vides... ça complique inutilement le traitement
et son temps de traitement.

C) Quels sont les colonnes que tu utilises ? De A15 À  ....

Qu'en penses-tu ?

"david anceau" a écrit dans le message de groupe d e discussion :

Ok tu as raison, il faut plus de précision...
Les fichiers portent tous le même nom mais sont dans des répertoires
différents.
Les étiquette de colonnes sont en ligne 15.
Le classeur possède plus d'une feuille et celle qui m'interesse est la
feuille "REFERENCEMENT"
Il s'agit du même nom pour chaque feuille de chaque classeur.
Il y a des cellules vide dans les colonnes de chaque region et il
s'agit de valeurs numériques entieres.
Je possède excel 2003 et 2007.

D'avance merci

David

On 4 mar, 15:14, "MichDenis" wrote:

> Pour chacune des régions "ANG BOR PAR NAN COL etc..."
> est-ce qu'il y a une façon de reconnaître la région par le nom
> du fichier ?

> Tes étiquettes de colonnes se retrouvent en ligne 1 ?
> Est-ce que le classeur a plus d'une feuille ?
> Est-ce le même nom pour chaque feuille de chaque classeur ?
> si oui c'est quoi le nom de la feuille ?

> Est-ce que dans la colonne de chaque région, il y a des cellules vide s ?
> le contenu des cellules de toute la colonne est-il du même type ?
> Numérique ou alphanumérique ? (une idée du type de données)

> Ta version d'excel ?

> "david anceau" a écrit dans le message de groupe de discussion :
>
> Bonjour,
> Le titre n'est pas forcement explicite.

> J'ai 30 fichiers de structure identiques qui doivent être remplis par
> des magasins.
> Chaque fichier comprend des colonnes qui correspondent à tous les
> magasins (code à trois lettre).
> ex :
>         ANG BOR PAR NAN COL etc...
> Qté
> Chaque magasin va remplir sa colonne dans un fichier qui lui est
> attribué. ANG (angoulème) aura le même fichier que BOR (bordeaux) mais
> remplira uniquement sa colonne.
> ex pour Bordeaux :                           pour colmar :
>         ANG BOR PAR NAN COL         ANG BOR PAR NAN COL
> Qté
> 12
> 20

> Au final, j'aurai 30 fois le même fichier remplit uniquement dans une
> colonne spécifique au magasin.

> Je dois recompiler toutes les colonnes des trente fichiers dans un
> autre fichier excel (le même mais vide) pour obtenir le fichier
> global.
>           A     B     C      D     E
> 1        ANG BOR PAR NAN COL
> 2 Qté           12                    2 0

> J'arrive à lire un répertoire de façon récursive, mais je cherc he à
> faire un update (qui met à jour la bonne colonne vide du fichier
> final) à chaque lecture. Savez vous comment faire, si possible en
> utilisant ADO ????

> Merci d'avance pour votre aide


Avatar
MichDenis
En relisant la donne du problème, tu disais que tes données
débutent en ligne 15. Cependant ADO a ses exigences et lui
il débute en ligne 1. le tableau doit débute en ligne 1

l'autre alternative est d'ouvrir chacun des fichiers pour
traiter les données.



"david anceau" a écrit dans le message de groupe de discussion :

Très bonne idée !
Je vais renommer les fichiers avec en prefixe le nom de la region
suivi de _
Mes colonnes débutent à BF et finissent à FQ.
voici en PJ un fichier type pour mieux comprendre :
http://www.cijoint.fr/cjlink.php?file=cj200903/cijj4Rh9V5.xls



On 4 mar, 16:15, "MichDenis" wrote:
Suggestion :
Si chaque nom de tes classeurs débutaient par le code
qui leur est propre dans le genre :
"ang_Classeur.xls" , "bor_classeur.xls" ...

A ) tu pourrais les regrouper dans le même répertoire
l'accessibilité est d'autant plus facile et rapide.
B ) Avec ADO, lorsque tu veux ouvrir le fichier, tu sais sur
quel champ de la table de ce classeur tu dois extraire les données
puisque ce champ apparaît dans le nom du classeur. À défaut de
quoi, il faut faire une requête sur l'ensemble des données du fichier,
identifier le champ qui a le plus de données car je suppose que les
autres champs sont vides... ça complique inutilement le traitement
et son temps de traitement.

C) Quels sont les colonnes que tu utilises ? De A15 À ....

Qu'en penses-tu ?

"david anceau" a écrit dans le message de groupe de discussion :

Ok tu as raison, il faut plus de précision...
Les fichiers portent tous le même nom mais sont dans des répertoires
différents.
Les étiquette de colonnes sont en ligne 15.
Le classeur possède plus d'une feuille et celle qui m'interesse est la
feuille "REFERENCEMENT"
Il s'agit du même nom pour chaque feuille de chaque classeur.
Il y a des cellules vide dans les colonnes de chaque region et il
s'agit de valeurs numériques entieres.
Je possède excel 2003 et 2007.

D'avance merci

David

On 4 mar, 15:14, "MichDenis" wrote:

> Pour chacune des régions "ANG BOR PAR NAN COL etc..."
> est-ce qu'il y a une façon de reconnaître la région par le nom
> du fichier ?

> Tes étiquettes de colonnes se retrouvent en ligne 1 ?
> Est-ce que le classeur a plus d'une feuille ?
> Est-ce le même nom pour chaque feuille de chaque classeur ?
> si oui c'est quoi le nom de la feuille ?

> Est-ce que dans la colonne de chaque région, il y a des cellules vides ?
> le contenu des cellules de toute la colonne est-il du même type ?
> Numérique ou alphanumérique ? (une idée du type de données)

> Ta version d'excel ?

> "david anceau" a écrit dans le message de groupe de discussion :
>
> Bonjour,
> Le titre n'est pas forcement explicite.

> J'ai 30 fichiers de structure identiques qui doivent être remplis par
> des magasins.
> Chaque fichier comprend des colonnes qui correspondent à tous les
> magasins (code à trois lettre).
> ex :
> ANG BOR PAR NAN COL etc...
> Qté
> Chaque magasin va remplir sa colonne dans un fichier qui lui est
> attribué. ANG (angoulème) aura le même fichier que BOR (bordeaux) mais
> remplira uniquement sa colonne.
> ex pour Bordeaux : pour colmar :
> ANG BOR PAR NAN COL ANG BOR PAR NAN COL
> Qté
> 12
> 20

> Au final, j'aurai 30 fois le même fichier remplit uniquement dans une
> colonne spécifique au magasin.

> Je dois recompiler toutes les colonnes des trente fichiers dans un
> autre fichier excel (le même mais vide) pour obtenir le fichier
> global.
> A B C D E
> 1 ANG BOR PAR NAN COL
> 2 Qté 12 20

> J'arrive à lire un répertoire de façon récursive, mais je cherche à
> faire un update (qui met à jour la bonne colonne vide du fichier
> final) à chaque lecture. Savez vous comment faire, si possible en
> utilisant ADO ????

> Merci d'avance pour votre aide


Avatar
David
Ah ? ADO ne peux pas copier des colonnes entières ?
Ce qui pourrais résoudre mon problème.
Merci pour ton aide

On 4 mar, 17:10, "MichDenis" wrote:
En relisant la donne du problème, tu disais que tes données
débutent en ligne 15. Cependant ADO a ses exigences et lui
il débute en ligne 1. le tableau doit débute en ligne 1

l'autre alternative est d'ouvrir chacun des fichiers pour
traiter les données.

"david anceau" a écrit dans le message de groupe d e discussion :

Très bonne idée !
Je vais renommer les fichiers avec en prefixe le nom de la region
suivi de _
Mes colonnes débutent à BF et finissent à FQ.
voici en PJ un fichier type pour mieux comprendre :http://www.cijoint.fr/ cjlink.php?file=cj200903/cijj4Rh9V5.xls

On 4 mar, 16:15, "MichDenis" wrote:

> Suggestion :
> Si chaque nom de tes classeurs débutaient par le code
> qui leur est propre dans le genre :
> "ang_Classeur.xls" , "bor_classeur.xls" ...

> A ) tu pourrais les regrouper dans le même répertoire
>      l'accessibilité est d'autant plus facile et rapide.
> B ) Avec ADO, lorsque tu veux ouvrir le fichier, tu sais sur
> quel champ de la table de ce classeur tu dois extraire les données
> puisque ce champ apparaît dans le nom du classeur. À défaut de
> quoi, il faut faire une requête sur l'ensemble des données du fichi er,
> identifier le champ qui a le plus de données car je suppose que les
> autres champs sont vides... ça complique inutilement le traitement
> et son temps de traitement.

> C) Quels sont les colonnes que tu utilises ? De A15 À  ....

> Qu'en penses-tu ?

> "david anceau" a écrit dans le message de groupe de discussion :
>
> Ok tu as raison, il faut plus de précision...
> Les fichiers portent tous le même nom mais sont dans des répertoire s
> différents.
> Les étiquette de colonnes sont en ligne 15.
> Le classeur possède plus d'une feuille et celle qui m'interesse est l a
> feuille "REFERENCEMENT"
> Il s'agit du même nom pour chaque feuille de chaque classeur.
> Il y a des cellules vide dans les colonnes de chaque region et il
> s'agit de valeurs numériques entieres.
> Je possède excel 2003 et 2007.

> D'avance merci

> David

> On 4 mar, 15:14, "MichDenis" wrote:

> > Pour chacune des régions "ANG BOR PAR NAN COL etc..."
> > est-ce qu'il y a une façon de reconnaître la région par le nom
> > du fichier ?

> > Tes étiquettes de colonnes se retrouvent en ligne 1 ?
> > Est-ce que le classeur a plus d'une feuille ?
> > Est-ce le même nom pour chaque feuille de chaque classeur ?
> > si oui c'est quoi le nom de la feuille ?

> > Est-ce que dans la colonne de chaque région, il y a des cellules vi des ?
> > le contenu des cellules de toute la colonne est-il du même type ?
> > Numérique ou alphanumérique ? (une idée du type de données)

> > Ta version d'excel ?

> > "david anceau" a écrit dans le message de grou pe de discussion :
> >
> > Bonjour,
> > Le titre n'est pas forcement explicite.

> > J'ai 30 fichiers de structure identiques qui doivent être remplis p ar
> > des magasins.
> > Chaque fichier comprend des colonnes qui correspondent à tous les
> > magasins (code à trois lettre).
> > ex :
> >         ANG BOR PAR NAN COL etc...
> > Qté
> > Chaque magasin va remplir sa colonne dans un fichier qui lui est
> > attribué. ANG (angoulème) aura le même fichier que BOR (bordeau x) mais
> > remplira uniquement sa colonne.
> > ex pour Bordeaux :                           pour colmar :
> >         ANG BOR PAR NAN COL         ANG BOR PAR NAN C OL
> > Qté
> > 12
> > 20

> > Au final, j'aurai 30 fois le même fichier remplit uniquement dans u ne
> > colonne spécifique au magasin.

> > Je dois recompiler toutes les colonnes des trente fichiers dans un
> > autre fichier excel (le même mais vide) pour obtenir le fichier
> > global.
> >           A     B     C      D     E
> > 1        ANG BOR PAR NAN COL
> > 2 Qté           12                    20

> > J'arrive à lire un répertoire de façon récursive, mais je che rche à
> > faire un update (qui met à jour la bonne colonne vide du fichier
> > final) à chaque lecture. Savez vous comment faire, si possible en
> > utilisant ADO ????

> > Merci d'avance pour votre aide


Avatar
MichDenis
Ado peut copier toute la colonne même si elle a 50,000 lignes
mais elle débute en a1... j'espère que tes premières lignes
de 1 à 15 ne sont pas vides car ADO utilise les 8 premières
lignes pour se faire une idée des données et lorsque ces
lignes sont vides... c'est problématique.



"David" a écrit dans le message de groupe de discussion :

Ah ? ADO ne peux pas copier des colonnes entières ?
Ce qui pourrais résoudre mon problème.
Merci pour ton aide

On 4 mar, 17:10, "MichDenis" wrote:
En relisant la donne du problème, tu disais que tes données
débutent en ligne 15. Cependant ADO a ses exigences et lui
il débute en ligne 1. le tableau doit débute en ligne 1

l'autre alternative est d'ouvrir chacun des fichiers pour
traiter les données.

"david anceau" a écrit dans le message de groupe de discussion :

Très bonne idée !
Je vais renommer les fichiers avec en prefixe le nom de la region
suivi de _
Mes colonnes débutent à BF et finissent à FQ.
voici en PJ un fichier type pour mieux comprendre
:http://www.cijoint.fr/cjlink.php?file=cj200903/cijj4Rh9V5.xls

On 4 mar, 16:15, "MichDenis" wrote:

> Suggestion :
> Si chaque nom de tes classeurs débutaient par le code
> qui leur est propre dans le genre :
> "ang_Classeur.xls" , "bor_classeur.xls" ...

> A ) tu pourrais les regrouper dans le même répertoire
> l'accessibilité est d'autant plus facile et rapide.
> B ) Avec ADO, lorsque tu veux ouvrir le fichier, tu sais sur
> quel champ de la table de ce classeur tu dois extraire les données
> puisque ce champ apparaît dans le nom du classeur. À défaut de
> quoi, il faut faire une requête sur l'ensemble des données du fichier,
> identifier le champ qui a le plus de données car je suppose que les
> autres champs sont vides... ça complique inutilement le traitement
> et son temps de traitement.

> C) Quels sont les colonnes que tu utilises ? De A15 À ....

> Qu'en penses-tu ?

> "david anceau" a écrit dans le message de groupe de discussion :
>
> Ok tu as raison, il faut plus de précision...
> Les fichiers portent tous le même nom mais sont dans des répertoires
> différents.
> Les étiquette de colonnes sont en ligne 15.
> Le classeur possède plus d'une feuille et celle qui m'interesse est la
> feuille "REFERENCEMENT"
> Il s'agit du même nom pour chaque feuille de chaque classeur.
> Il y a des cellules vide dans les colonnes de chaque region et il
> s'agit de valeurs numériques entieres.
> Je possède excel 2003 et 2007.

> D'avance merci

> David

> On 4 mar, 15:14, "MichDenis" wrote:

> > Pour chacune des régions "ANG BOR PAR NAN COL etc..."
> > est-ce qu'il y a une façon de reconnaître la région par le nom
> > du fichier ?

> > Tes étiquettes de colonnes se retrouvent en ligne 1 ?
> > Est-ce que le classeur a plus d'une feuille ?
> > Est-ce le même nom pour chaque feuille de chaque classeur ?
> > si oui c'est quoi le nom de la feuille ?

> > Est-ce que dans la colonne de chaque région, il y a des cellules vides ?
> > le contenu des cellules de toute la colonne est-il du même type ?
> > Numérique ou alphanumérique ? (une idée du type de données)

> > Ta version d'excel ?

> > "david anceau" a écrit dans le message de groupe de discussion
> > :
> >
> > Bonjour,
> > Le titre n'est pas forcement explicite.

> > J'ai 30 fichiers de structure identiques qui doivent être remplis par
> > des magasins.
> > Chaque fichier comprend des colonnes qui correspondent à tous les
> > magasins (code à trois lettre).
> > ex :
> > ANG BOR PAR NAN COL etc...
> > Qté
> > Chaque magasin va remplir sa colonne dans un fichier qui lui est
> > attribué. ANG (angoulème) aura le même fichier que BOR (bordeaux) mais
> > remplira uniquement sa colonne.
> > ex pour Bordeaux : pour colmar :
> > ANG BOR PAR NAN COL ANG BOR PAR NAN COL
> > Qté
> > 12
> > 20

> > Au final, j'aurai 30 fois le même fichier remplit uniquement dans une
> > colonne spécifique au magasin.

> > Je dois recompiler toutes les colonnes des trente fichiers dans un
> > autre fichier excel (le même mais vide) pour obtenir le fichier
> > global.
> > A B C D E
> > 1 ANG BOR PAR NAN COL
> > 2 Qté 12 20

> > J'arrive à lire un répertoire de façon récursive, mais je cherche à
> > faire un update (qui met à jour la bonne colonne vide du fichier
> > final) à chaque lecture. Savez vous comment faire, si possible en
> > utilisant ADO ????

> > Merci d'avance pour votre aide


Avatar
MichDenis
Place ceci dans le fichier destinataire, dans un module standard.

En supposant que cela passe ! ADO n'aime pas beaucoup les
cellules vides, et différents types de données dans une même
colonne. Espérons que le bidouillage sera suffisannt.

J'ai utilisé EXCEL 2007.

à toi de t'amuser !
'--------------------------------------------
Sub test()

Dim Rst As New ADODB.Recordset
Dim Cnn As New ADODB.Connection
Dim Fichier As String
Dim Requete As String
Dim NbRecord As Long, A As Long
Dim R As Range, Cp As Range
Dim LigMax As Long
Dim répertoire As String
Dim ModeCalcul As String
'si le fichier destinataire est avec les autres
'sinon lui donner le chemin en dur
répertoire = ThisWorkbook.Path & ""

'Quel est le nombre maximum de données à traiter
'par colonne, tu mets un chiffre assez grand pour
'être certain qu'il n'y aura pas de dépassement.
LigMax = 500

Application.EnableEvents = False
Application.ScreenUpdating = False
MondeCalcul = Application.Calculation
Application.Calculation = xlCalculationManual

Fichier = Dir(répertoire & "*.xlsm")
If Fichier <> "" Then
Do While Fichier <> ""
If Fichier <> ThisWorkbook.Name Then
Champ = Left(Fichier, 3)
With Worksheets("REFERENCEMENT")
Set Cp = .Range("BF15:FQ15").Find(what:=Champ, LookIn:=xlValues, _
lookat:=xlWhole, SearchOrder:=xlByRows)
Set Rg = Cp.Offset(-14).Resize(LigMax)
If Not Cp Is Nothing Then
Champ = "F" & Cp.Column
Requete = "SELECT * From [" & Rg.Parent.Name & "$" & _
Rg.Address(0, 0) & "]"

Cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & répertoire & Fichier & _
";Extended Properties=""Excel 12.0 Xml;HDR=NO;IMEX=1"""

Rst.Open Requete, Cnn, adOpenStatic, adLockOptimistic
NbRecord = Rst.RecordCount
For A = 1 To NbRecord
Rg(A) = Rst.Fields(0).Value
Rst.MoveNext
Next
Rst.Close: Cnn.Close
Else
MsgBox "Le champ " & Champ & " n'a pu être trouvé."
End If
End With
End If
Fichier = Dir()
Loop
End If
Set Rst = Nothing: Set Cnn = Nothing
Application.Calculation = MondeCalcul
Application.EnableEvents = True
End Sub
'--------------------------------------------




"David" a écrit dans le message de groupe de discussion :

Ah ? ADO ne peux pas copier des colonnes entières ?
Ce qui pourrais résoudre mon problème.
Merci pour ton aide

On 4 mar, 17:10, "MichDenis" wrote:
En relisant la donne du problème, tu disais que tes données
débutent en ligne 15. Cependant ADO a ses exigences et lui
il débute en ligne 1. le tableau doit débute en ligne 1

l'autre alternative est d'ouvrir chacun des fichiers pour
traiter les données.

"david anceau" a écrit dans le message de groupe de discussion :

Très bonne idée !
Je vais renommer les fichiers avec en prefixe le nom de la region
suivi de _
Mes colonnes débutent à BF et finissent à FQ.
voici en PJ un fichier type pour mieux comprendre
:http://www.cijoint.fr/cjlink.php?file=cj200903/cijj4Rh9V5.xls

On 4 mar, 16:15, "MichDenis" wrote:

> Suggestion :
> Si chaque nom de tes classeurs débutaient par le code
> qui leur est propre dans le genre :
> "ang_Classeur.xls" , "bor_classeur.xls" ...

> A ) tu pourrais les regrouper dans le même répertoire
> l'accessibilité est d'autant plus facile et rapide.
> B ) Avec ADO, lorsque tu veux ouvrir le fichier, tu sais sur
> quel champ de la table de ce classeur tu dois extraire les données
> puisque ce champ apparaît dans le nom du classeur. À défaut de
> quoi, il faut faire une requête sur l'ensemble des données du fichier,
> identifier le champ qui a le plus de données car je suppose que les
> autres champs sont vides... ça complique inutilement le traitement
> et son temps de traitement.

> C) Quels sont les colonnes que tu utilises ? De A15 À ....

> Qu'en penses-tu ?

> "david anceau" a écrit dans le message de groupe de discussion :
>
> Ok tu as raison, il faut plus de précision...
> Les fichiers portent tous le même nom mais sont dans des répertoires
> différents.
> Les étiquette de colonnes sont en ligne 15.
> Le classeur possède plus d'une feuille et celle qui m'interesse est la
> feuille "REFERENCEMENT"
> Il s'agit du même nom pour chaque feuille de chaque classeur.
> Il y a des cellules vide dans les colonnes de chaque region et il
> s'agit de valeurs numériques entieres.
> Je possède excel 2003 et 2007.

> D'avance merci

> David

> On 4 mar, 15:14, "MichDenis" wrote:

> > Pour chacune des régions "ANG BOR PAR NAN COL etc..."
> > est-ce qu'il y a une façon de reconnaître la région par le nom
> > du fichier ?

> > Tes étiquettes de colonnes se retrouvent en ligne 1 ?
> > Est-ce que le classeur a plus d'une feuille ?
> > Est-ce le même nom pour chaque feuille de chaque classeur ?
> > si oui c'est quoi le nom de la feuille ?

> > Est-ce que dans la colonne de chaque région, il y a des cellules vides ?
> > le contenu des cellules de toute la colonne est-il du même type ?
> > Numérique ou alphanumérique ? (une idée du type de données)

> > Ta version d'excel ?

> > "david anceau" a écrit dans le message de groupe de discussion
> > :
> >
> > Bonjour,
> > Le titre n'est pas forcement explicite.

> > J'ai 30 fichiers de structure identiques qui doivent être remplis par
> > des magasins.
> > Chaque fichier comprend des colonnes qui correspondent à tous les
> > magasins (code à trois lettre).
> > ex :
> > ANG BOR PAR NAN COL etc...
> > Qté
> > Chaque magasin va remplir sa colonne dans un fichier qui lui est
> > attribué. ANG (angoulème) aura le même fichier que BOR (bordeaux) mais
> > remplira uniquement sa colonne.
> > ex pour Bordeaux : pour colmar :
> > ANG BOR PAR NAN COL ANG BOR PAR NAN COL
> > Qté
> > 12
> > 20

> > Au final, j'aurai 30 fois le même fichier remplit uniquement dans une
> > colonne spécifique au magasin.

> > Je dois recompiler toutes les colonnes des trente fichiers dans un
> > autre fichier excel (le même mais vide) pour obtenir le fichier
> > global.
> > A B C D E
> > 1 ANG BOR PAR NAN COL
> > 2 Qté 12 20

> > J'arrive à lire un répertoire de façon récursive, mais je cherche à
> > faire un update (qui met à jour la bonne colonne vide du fichier
> > final) à chaque lecture. Savez vous comment faire, si possible en
> > utilisant ADO ????

> > Merci d'avance pour votre aide


Avatar
david anceau
Chapeau bas MichDenis !!!

Je vais tester ton code dans la matinée.
Quitte à supprimer les données à vide en haut du fichier.

Merci merci beaucoup
David


On 4 mar, 21:19, "MichDenis" wrote:
Place ceci dans le fichier destinataire, dans un module standard.

En supposant que cela passe ! ADO n'aime pas beaucoup les
cellules vides, et différents types de données dans une même
colonne. Espérons que le bidouillage sera suffisannt.

J'ai utilisé EXCEL 2007.

à toi de t'amuser !
'--------------------------------------------
Sub test()

Dim Rst As New ADODB.Recordset
Dim Cnn As New ADODB.Connection
Dim Fichier As String
Dim Requete As String
Dim NbRecord As Long, A As Long
Dim R As Range, Cp As Range
Dim LigMax As Long
Dim répertoire As String
Dim ModeCalcul As String
'si le fichier destinataire est avec les autres
'sinon lui donner le chemin en dur
répertoire = ThisWorkbook.Path & ""

'Quel est le nombre maximum de données à traiter
'par colonne, tu mets un chiffre assez grand pour
'être certain qu'il n'y aura pas de dépassement.
LigMax = 500

Application.EnableEvents = False
Application.ScreenUpdating = False
MondeCalcul = Application.Calculation
Application.Calculation = xlCalculationManual

Fichier = Dir(répertoire & "*.xlsm")
If Fichier <> "" Then
    Do While Fichier <> ""
        If Fichier <> ThisWorkbook.Name Then
            Champ = Left(Fichier, 3)
            With Worksheets("REFERENCEMENT")
                Set Cp = .Range("BF15:FQ15").Find(what: =Champ, LookIn:=xlValues, _
                                lookat: =xlWhole, SearchOrder:=xlByRows)
                Set Rg = Cp.Offset(-14).Resize(LigMax)
                If Not Cp Is Nothing Then
                    Champ = "F" & Cp.Column
                    Requete = "SELECT * From [" & R g.Parent.Name & "$" & _
                            Rg.Address(0, 0) & "]"

                    Cnn.Open "Provider=Microsoft.AC E.OLEDB.12.0;" & _
                        "Data Source=" & répe rtoire & Fichier & _
                        ";Extended Properties=" "Excel 12.0 Xml;HDR=NO;IMEX=1"""

                    Rst.Open Requete, Cnn, adOpenStat ic, adLockOptimistic
                    NbRecord = Rst.RecordCount
                    For A = 1 To NbRecord
                        Rg(A) = Rst.Fields(0).V alue
                        Rst.MoveNext
                    Next
                    Rst.Close: Cnn.Close
                Else
                    MsgBox "Le champ " & Champ & " n' a pu être trouvé."
                End If
            End With
        End If
        Fichier = Dir()
    Loop
End If
Set Rst = Nothing: Set Cnn = Nothing
Application.Calculation = MondeCalcul
Application.EnableEvents = True
End Sub
'--------------------------------------------

"David" a écrit dans le message de groupe de discussion :

Ah ? ADO ne peux pas copier des colonnes entières ?
Ce qui pourrais résoudre mon problème.
Merci pour ton aide

On 4 mar, 17:10, "MichDenis" wrote:

> En relisant la donne du problème, tu disais que tes données
> débutent en ligne 15. Cependant ADO a ses exigences et lui
> il débute en ligne 1. le tableau doit débute en ligne 1

> l'autre alternative est d'ouvrir chacun des fichiers pour
> traiter les données.

> "david anceau" a écrit dans le message de groupe de discussion :
>
> Très bonne idée !
> Je vais renommer les fichiers avec en prefixe le nom de la region
> suivi de _
> Mes colonnes débutent à BF et finissent à FQ.
> voici en PJ un fichier type pour mieux comprendre
> :http://www.cijoint.fr/cjlink.php?file=cj200903/cijj4Rh9V5.xls

> On 4 mar, 16:15, "MichDenis" wrote:

> > Suggestion :
> > Si chaque nom de tes classeurs débutaient par le code
> > qui leur est propre dans le genre :
> > "ang_Classeur.xls" , "bor_classeur.xls" ...

> > A ) tu pourrais les regrouper dans le même répertoire
> >      l'accessibilité est d'autant plus facile et rapide.
> > B ) Avec ADO, lorsque tu veux ouvrir le fichier, tu sais sur
> > quel champ de la table de ce classeur tu dois extraire les données
> > puisque ce champ apparaît dans le nom du classeur. À défaut de
> > quoi, il faut faire une requête sur l'ensemble des données du fic hier,
> > identifier le champ qui a le plus de données car je suppose que les
> > autres champs sont vides... ça complique inutilement le traitement
> > et son temps de traitement.

> > C) Quels sont les colonnes que tu utilises ? De A15 À  ....

> > Qu'en penses-tu ?

> > "david anceau" a écrit dans le message de grou pe de discussion :
> >
> > Ok tu as raison, il faut plus de précision...
> > Les fichiers portent tous le même nom mais sont dans des répertoi res
> > différents.
> > Les étiquette de colonnes sont en ligne 15.
> > Le classeur possède plus d'une feuille et celle qui m'interesse est la
> > feuille "REFERENCEMENT"
> > Il s'agit du même nom pour chaque feuille de chaque classeur.
> > Il y a des cellules vide dans les colonnes de chaque region et il
> > s'agit de valeurs numériques entieres.
> > Je possède excel 2003 et 2007.

> > D'avance merci

> > David

> > On 4 mar, 15:14, "MichDenis" wrote:

> > > Pour chacune des régions "ANG BOR PAR NAN COL etc..."
> > > est-ce qu'il y a une façon de reconnaître la région par le no m
> > > du fichier ?

> > > Tes étiquettes de colonnes se retrouvent en ligne 1 ?
> > > Est-ce que le classeur a plus d'une feuille ?
> > > Est-ce le même nom pour chaque feuille de chaque classeur ?
> > > si oui c'est quoi le nom de la feuille ?

> > > Est-ce que dans la colonne de chaque région, il y a des cellules vides ?
> > > le contenu des cellules de toute la colonne est-il du même type ?
> > > Numérique ou alphanumérique ? (une idée du type de données)

> > > Ta version d'excel ?

> > > "david anceau" a écrit dans le message de gr oupe de discussion
> > > :
> > > .
> > > Bonjour,
> > > Le titre n'est pas forcement explicite.

> > > J'ai 30 fichiers de structure identiques qui doivent être remplis par
> > > des magasins.
> > > Chaque fichier comprend des colonnes qui correspondent à tous les
> > > magasins (code à trois lettre).
> > > ex :
> > >         ANG BOR PAR NAN COL etc...
> > > Qté
> > > Chaque magasin va remplir sa colonne dans un fichier qui lui est
> > > attribué. ANG (angoulème) aura le même fichier que BOR (borde aux) mais
> > > remplira uniquement sa colonne.
> > > ex pour Bordeaux :                           pour colmar :
> > >         ANG BOR PAR NAN COL         ANG BOR PAR NAN COL
> > > Qté
> > > 12
> > > 20

> > > Au final, j'aurai 30 fois le même fichier remplit uniquement dans une
> > > colonne spécifique au magasin.

> > > Je dois recompiler toutes les colonnes des trente fichiers dans un
> > > autre fichier excel (le même mais vide) pour obtenir le fichier
> > > global.
> > >           A     B     C      D     E
> > > 1        ANG BOR PAR NAN COL
> > > 2 Qté           12                    20

> > > J'arrive à lire un répertoire de façon récursive, mais je c herche à
> > > faire un update (qui met à jour la bonne colonne vide du fichier
> > > final) à chaque lecture. Savez vous comment faire, si possible en
> > > utilisant ADO ????

> > > Merci d'avance pour votre aide


Avatar
David
Bonjour MichDenis,
J'ai une erreur d'execution de type 9 en ligne

With Worksheets("REFERENCEMENT")

Apparemment, il ne trouve pas la feuille (qui pourtant existe)
Et je viens d'essayer tous les types de modif que je connais, rien n'y
fait.


On 5 mar, 09:28, david anceau wrote:
Chapeau bas MichDenis !!!

Je vais tester ton code dans la matinée.
Quitte à supprimer les données à vide en haut du fichier.

Merci merci beaucoup
David

On 4 mar, 21:19, "MichDenis" wrote:

> Place ceci dans le fichier destinataire, dans un module standard.

> En supposant que cela passe ! ADO n'aime pas beaucoup les
> cellules vides, et différents types de données dans une même
> colonne. Espérons que le bidouillage sera suffisannt.

> J'ai utilisé EXCEL 2007.

> à toi de t'amuser !
> '--------------------------------------------
> Sub test()

> Dim Rst As New ADODB.Recordset
> Dim Cnn As New ADODB.Connection
> Dim Fichier As String
> Dim Requete As String
> Dim NbRecord As Long, A As Long
> Dim R As Range, Cp As Range
> Dim LigMax As Long
> Dim répertoire As String
> Dim ModeCalcul As String
> 'si le fichier destinataire est avec les autres
> 'sinon lui donner le chemin en dur
> répertoire = ThisWorkbook.Path & ""

> 'Quel est le nombre maximum de données à traiter
> 'par colonne, tu mets un chiffre assez grand pour
> 'être certain qu'il n'y aura pas de dépassement.
> LigMax = 500

> Application.EnableEvents = False
> Application.ScreenUpdating = False
> MondeCalcul = Application.Calculation
> Application.Calculation = xlCalculationManual

> Fichier = Dir(répertoire & "*.xlsm")
> If Fichier <> "" Then
>     Do While Fichier <> ""
>         If Fichier <> ThisWorkbook.Name Then
>             Champ = Left(Fichier, 3)
>             With Worksheets("REFERENCEMENT")
>                 Set Cp = .Range("BF15:FQ15").Find(wha t:=Champ, LookIn:=xlValues, _
>                                 lookat: =xlWhole, SearchOrder:=xlByRows)
>                 Set Rg = Cp.Offset(-14).Resize(LigMax )
>                 If Not Cp Is Nothing Then
>                     Champ = "F" & Cp.Column
>                     Requete = "SELECT * From [" & Rg.Parent.Name & "$" & _
>                             Rg.Address(0, 0 ) & "]"

>                     Cnn.Open "Provider=Microsoft. ACE.OLEDB.12.0;" & _
>                         "Data Source=" & ré pertoire & Fichier & _
>                         ";Extended Properties =""Excel 12.0 Xml;HDR=NO;IMEX=1"""

>                     Rst.Open Requete, Cnn, adOpenSt atic, adLockOptimistic
>                     NbRecord = Rst.RecordCount
>                     For A = 1 To NbRecord
>                         Rg(A) = Rst.Fields(0) .Value
>                         Rst.MoveNext
>                     Next
>                     Rst.Close: Cnn.Close
>                 Else
>                     MsgBox "Le champ " & Champ & " n'a pu être trouvé."
>                 End If
>             End With
>         End If
>         Fichier = Dir()
>     Loop
> End If
> Set Rst = Nothing: Set Cnn = Nothing
> Application.Calculation = MondeCalcul
> Application.EnableEvents = True
> End Sub
> '--------------------------------------------

> "David" a écrit dans le message de grou pe de discussion :
>
> Ah ? ADO ne peux pas copier des colonnes entières ?
> Ce qui pourrais résoudre mon problème.
> Merci pour ton aide

> On 4 mar, 17:10, "MichDenis" wrote:

> > En relisant la donne du problème, tu disais que tes données
> > débutent en ligne 15. Cependant ADO a ses exigences et lui
> > il débute en ligne 1. le tableau doit débute en ligne 1

> > l'autre alternative est d'ouvrir chacun des fichiers pour
> > traiter les données.

> > "david anceau" a écrit dans le message de grou pe de discussion :
> >
> > Très bonne idée !
> > Je vais renommer les fichiers avec en prefixe le nom de la region
> > suivi de _
> > Mes colonnes débutent à BF et finissent à FQ.
> > voici en PJ un fichier type pour mieux comprendre
> > :http://www.cijoint.fr/cjlink.php?file=cj200903/cijj4Rh9V5.xls

> > On 4 mar, 16:15, "MichDenis" wrote:

> > > Suggestion :
> > > Si chaque nom de tes classeurs débutaient par le code
> > > qui leur est propre dans le genre :
> > > "ang_Classeur.xls" , "bor_classeur.xls" ...

> > > A ) tu pourrais les regrouper dans le même répertoire
> > >      l'accessibilité est d'autant plus facile et rapide.
> > > B ) Avec ADO, lorsque tu veux ouvrir le fichier, tu sais sur
> > > quel champ de la table de ce classeur tu dois extraire les donnée s
> > > puisque ce champ apparaît dans le nom du classeur. À défaut d e
> > > quoi, il faut faire une requête sur l'ensemble des données du f ichier,
> > > identifier le champ qui a le plus de données car je suppose que l es
> > > autres champs sont vides... ça complique inutilement le traitemen t
> > > et son temps de traitement.

> > > C) Quels sont les colonnes que tu utilises ? De A15 À  ....

> > > Qu'en penses-tu ?

> > > "david anceau" a écrit dans le message de gr oupe de discussion :
> > >
> > > Ok tu as raison, il faut plus de précision...
> > > Les fichiers portent tous le même nom mais sont dans des répert oires
> > > différents.
> > > Les étiquette de colonnes sont en ligne 15.
> > > Le classeur possède plus d'une feuille et celle qui m'interesse e st la
> > > feuille "REFERENCEMENT"
> > > Il s'agit du même nom pour chaque feuille de chaque classeur.
> > > Il y a des cellules vide dans les colonnes de chaque region et il
> > > s'agit de valeurs numériques entieres.
> > > Je possède excel 2003 et 2007.

> > > D'avance merci

> > > David

> > > On 4 mar, 15:14, "MichDenis" wrote:

> > > > Pour chacune des régions "ANG BOR PAR NAN COL etc..."
> > > > est-ce qu'il y a une façon de reconnaître la région par le nom
> > > > du fichier ?

> > > > Tes étiquettes de colonnes se retrouvent en ligne 1 ?
> > > > Est-ce que le classeur a plus d'une feuille ?
> > > > Est-ce le même nom pour chaque feuille de chaque classeur ?
> > > > si oui c'est quoi le nom de la feuille ?

> > > > Est-ce que dans la colonne de chaque région, il y a des cellule s vides ?
> > > > le contenu des cellules de toute la colonne est-il du même type ?
> > > > Numérique ou alphanumérique ? (une idée du type de donnée s)

> > > > Ta version d'excel ?

> > > > "david anceau" a écrit dans le message de groupe de discussion
> > > > :
> > > > ...
> > > > Bonjour,
> > > > Le titre n'est pas forcement explicite.

> > > > J'ai 30 fichiers de structure identiques qui doivent être rempl is par
> > > > des magasins.
> > > > Chaque fichier comprend des colonnes qui correspondent à tous l es
> > > > magasins (code à trois lettre).
> > > > ex :
> > > >         ANG BOR PAR NAN COL etc...
> > > > Qté
> > > > Chaque magasin va remplir sa colonne dans un fichier qui lui est
> > > > attribué. ANG (angoulème) aura le même fichier que BOR (bor deaux) mais
> > > > remplira uniquement sa colonne.
> > > > ex pour Bordeaux :                           pour colmar :
> > > >         ANG BOR PAR NAN COL         ANG BOR PAR N AN COL
> > > > Qté
> > > > 12
> > > > 20

> > > > Au final, j'aurai 30 fois le même fichier remplit uniquement da ns une
> > > > colonne spécifique au magasin.

> > > > Je dois recompiler toutes les colonnes des trente fichiers dans u n
> > > > autre fichier excel (le même mais vide) pour obtenir le fichier
> > > > global.
> > > >           A     B     C      D     E
> > > > 1        ANG BOR PAR NAN COL
> > > > 2 Qté           12                    20

> > > > J'arrive à lire un répertoire de façon récursive, mais je cherche à
> > > > faire un update (qui met à jour la bonne colonne vide du fichie r
> > > > final) à chaque lecture. Savez vous comment faire, si possible en
> > > > utilisant ADO ????

> > > > Merci d'avance pour votre aide


1 2