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

chercher des valeurs d'un classeur dans d'autres classeurs fermés

3 réponses
Avatar
fa
Bonjour,

Dans un répertoire c:\classeurs j'ai 20 Classeurs xls ( nommés
Fich1.xls;fich2.xls;fich3.xls etc) contenant une seule feuille et des
valeurs ( n° de série) ( sans lignes vides) dans la Colonne A.de chaque
classeur ( une centaine de numéros par classeur)

Dans un autre classeur ouvert ( nommé " Fich_Synthèse.xls") il y a 2
feuilles :
- la feuille 2 comporte en colonne B une dizaine de n° de série ( par
exemple 1400; 2750 ; 3500 etc)
- La feuille 1 est vide

Le but est, par un bouton( vba) situé sur la feuil1 de ce classeur ouvert ,
d'aller chercher dans les 20 classeurs du répertoire si ces numéros existent
et dans l'affirmative les sélectionner et les recopier dans la colonne A
dela feuille 1 de mon classeur "Fich_synthèse.xls" avec ( j'abuse peut-être)
l'adresse comportant le nom du classeur le nom de la feuil et le numéro de
cellule pour chaque numéro trouvé.

pour ma part j'utilise d'habitude pour ce genre de truc dans un seul
classeur la macro suivante

For each cell1 in range ("a1:a100")
for each cell2 in range(" plage")
if cell1.value <> "" and cell1.value =cell.value then etc etc

mais là ...Ca dépasse mes connaissances...

J'utilise le pack office 97

Merci pour votre aide

3 réponses

Avatar
JB
Bonsoir,


Sub Essai()
[A2:A1000].ClearContents
ChDir ThisWorkbook.Path
nf = Dir("y_clas*.xls") ' premier classeur
Do While nf <> ""
Workbooks.Open Filename:=nf
For Each c In Sheets(1).Range("A1", [A65000].End(xlUp))
r = Application.Match(c,
Workbooks("synthese.xls").Sheets(2).[b:b], 0)
If Not IsError(r) Then

Workbooks("synthese.xls").Sheets(1).[A65000].End(xlUp).Offset(1, 0) = _
c & " " & nf & " " & Sheets(1).Name & " " & c.Address
End If
Next c
ActiveWorkbook.Close
nf = Dir ' classeur suivant
Loop
End Sub

http://cjoint.com/?bnt37LXFJU

Cordialement JB

Bonjour,

Dans un répertoire c:classeurs j'ai 20 Classeurs xls ( nommés
Fich1.xls;fich2.xls;fich3.xls etc) contenant une seule feuille et des
valeurs ( n° de série) ( sans lignes vides) dans la Colonne A.de chaq ue
classeur ( une centaine de numéros par classeur)

Dans un autre classeur ouvert ( nommé " Fich_Synthèse.xls") il y a 2
feuilles :
- la feuille 2 comporte en colonne B une dizaine de n° de série ( p ar
exemple 1400; 2750 ; 3500 etc)
- La feuille 1 est vide

Le but est, par un bouton( vba) situé sur la feuil1 de ce classeur ouve rt ,
d'aller chercher dans les 20 classeurs du répertoire si ces numéros e xistent
et dans l'affirmative les sélectionner et les recopier dans la colonne A
dela feuille 1 de mon classeur "Fich_synthèse.xls" avec ( j'abuse peut- être)
l'adresse comportant le nom du classeur le nom de la feuil et le numéro de
cellule pour chaque numéro trouvé.

pour ma part j'utilise d'habitude pour ce genre de truc dans un seul
classeur la macro suivante

For each cell1 in range ("a1:a100")
for each cell2 in range(" plage")
if cell1.value <> "" and cell1.value Îll.value then etc etc

mais là ...Ca dépasse mes connaissances...

J'utilise le pack office 97

Merci pour votre aide


Avatar
JB
Bonsoir,



Sub Essai()
[A2:A1000].ClearContents
ChDir ThisWorkbook.Path
nf = Dir("y_clas*.xls") ' premier classeur
Do While nf <> ""
Workbooks.Open Filename:=nf
For Each c In Sheets(1).Range("A1", [A65000].End(xlUp))
r = Application.Match(c,
Workbooks("synthese.xls").Sheets(2).[b:b], 0)
If Not IsError(r) Then

Workbooks("synthese.xls").Sheets(1).[A65000].End(xlUp).Offset(1, 0) = _
c & " " & nf & " " & Sheets(1).Name & " " & c.Address
End If
Next c
ActiveWorkbook.Close
nf = Dir ' classeur suivant
Loop
End Sub

Cordialement JB

Bonjour,

Dans un répertoire c:classeurs j'ai 20 Classeurs xls ( nommés
Fich1.xls;fich2.xls;fich3.xls etc) contenant une seule feuille et des
valeurs ( n° de série) ( sans lignes vides) dans la Colonne A.de chaq ue
classeur ( une centaine de numéros par classeur)

Dans un autre classeur ouvert ( nommé " Fich_Synthèse.xls") il y a 2
feuilles :
- la feuille 2 comporte en colonne B une dizaine de n° de série ( p ar
exemple 1400; 2750 ; 3500 etc)
- La feuille 1 est vide

Le but est, par un bouton( vba) situé sur la feuil1 de ce classeur ouve rt ,
d'aller chercher dans les 20 classeurs du répertoire si ces numéros e xistent
et dans l'affirmative les sélectionner et les recopier dans la colonne A
dela feuille 1 de mon classeur "Fich_synthèse.xls" avec ( j'abuse peut- être)
l'adresse comportant le nom du classeur le nom de la feuil et le numéro de
cellule pour chaque numéro trouvé.

pour ma part j'utilise d'habitude pour ce genre de truc dans un seul
classeur la macro suivante

For each cell1 in range ("a1:a100")
for each cell2 in range(" plage")
if cell1.value <> "" and cell1.value Îll.value then etc etc

mais là ...Ca dépasse mes connaissances...

J'utilise le pack office 97

Merci pour votre aide


Avatar
fa
Bonsoir

Merci JB je vais étudier ce que tu m'as indiqué



"fa" a écrit dans le message de news:
45a8a2a7$0$5096$
Bonjour,

Dans un répertoire c:classeurs j'ai 20 Classeurs xls ( nommés
Fich1.xls;fich2.xls;fich3.xls etc) contenant une seule feuille et des
valeurs ( n° de série) ( sans lignes vides) dans la Colonne A.de chaque
classeur ( une centaine de numéros par classeur)

Dans un autre classeur ouvert ( nommé " Fich_Synthèse.xls") il y a 2
feuilles :
- la feuille 2 comporte en colonne B une dizaine de n° de série ( par
exemple 1400; 2750 ; 3500 etc)
- La feuille 1 est vide

Le but est, par un bouton( vba) situé sur la feuil1 de ce classeur ouvert
, d'aller chercher dans les 20 classeurs du répertoire si ces numéros
existent et dans l'affirmative les sélectionner et les recopier dans la
colonne A dela feuille 1 de mon classeur "Fich_synthèse.xls" avec (
j'abuse peut-être) l'adresse comportant le nom du classeur le nom de la
feuil et le numéro de cellule pour chaque numéro trouvé.

pour ma part j'utilise d'habitude pour ce genre de truc dans un seul
classeur la macro suivante

For each cell1 in range ("a1:a100")
for each cell2 in range(" plage")
if cell1.value <> "" and cell1.value Îll.value then etc etc

mais là ...Ca dépasse mes connaissances...

J'utilise le pack office 97

Merci pour votre aide