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

macro de recherche

16 réponses
Avatar
Manu
Bonjour,

Je n'arrive pas du tout à m'en sortir. Pas facile... je vais tacher d'etre
clair

J'ai des fichiers nommé : toto 2008.xls ; toto 2009.xls ; toto 2010.xls ;
toto 2011.xls .....
j'ai 13 feuil données ; janvier ; fevrier .. jusqu'a decembre
dans toutes les feuil j'ai en colonne A des noms, ils sont tapé dans la
feuil données et dans chaque autre feuil j'ai fais une liaison =Données!A5
etc ainsi je suis sur que dans chaque col A de chaque feuil, j'ai les memes
noms

Les fichiers ne sont pas toujours totalement identique,
les feuils sont toujours les memes mais en colonne A j'ai des noms mais ne
sont pas toujours les memes d'une année à une autre et ne sont pas toujours
trier de la meme facon.

Je souhaiterai créer un bouton que lorsque je fais des changements de D7 à
D1000 de la feuil decembre du fichier toto 2008.xls, qu'il me copie cette
plage dans la colonne E du fichier toto N+1 c'est à dire toto 2009.xls

ca, j'y arrivais avec cela :

Sub miseajour_N_Nplus1()
Dim NomFic As String, Chemin As String, Annéesuivante As String

Calculate
Sheets("decembre").Select
Range("D7:D1000").Select
Selection.Copy
Sheets("données").Select
Annéesuivante = Range("B1") + 1
NomFic = "toto" & Annéesuivante & ".xls"
Chemin = "C:\" & Annéesuivante & "\"
Workbooks(NomFic).Activate
Sheets("Données").Select
Range("e4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("e4").Select
Calculate
Sheets("données").Select
Range("e4").Select
Annéesuivante = Range("B1") - 1
NomFic = "toto" & Annéesuivante & ".xls"
Chemin = "C:\" & Annéesuivante & "\"
Workbooks(NomFic).Activate
ActiveWorkbook.Save
ActiveWindow.Close

End Sub

Mais evidemment comme je le stipulais au dessus, cette macro est une grosse
boulette dans la mesure ou je copie une plage d'un fichier à un autre mais
que ces donnés ne correspondent plus au nom qu'il y a dans la colonne A car
les noms changent d'une année à l'autre.

Alors, est t'il possible de copier les cellules de D7 à D1000 de la feuil
decembre et de coller dans la colonne E du fichier toto N+1 en faisant
attention au nom qu'il y a dans la colonne A, si le noms existe sur les 2
fichiers, alors qu'il me recherche dans le fichier N+1 ou se trouve le nom
et qu'il me le colle dans la colonne E en face du nom correspondant etc...
pour tous les cellules de D7 à D1000 et que si un nom n'est plus commun au 2
fichier alors qu'il ne fasse rien et que si un nom existe en toto N+1 et
qu'il n'existatis pas en N-1 alors qu'il ne fasse rien non plus.

Vraiment pas facile... J'ai été clair ??? j'espere .

merci du coup de main, j'en ais vraiment besoin.

Manu

10 réponses

1 2
Avatar
Manu
J'ai oublié de preciser qu'en B1 de la feuil données j'ai l'année du fichier
en cours c'est à dire que si je suis sur le fichier toto 2009.xls alors en
B1 il y a 2009 etc ....
Et que les noms de la feuil données se trouve de A4 à A1000 mais que sur les
autres feuil janvier ; fevrier ; mars ... ils se trouvent de A7 à A1000
Evidemment j'ai pris jusqu'à 1000 pour avoir une securité mais réellement il
y a environ 500 noms.

Merci

"Manu" a écrit dans le message de news:
%
Bonjour,

Je n'arrive pas du tout à m'en sortir. Pas facile... je vais tacher d'etre
clair

J'ai des fichiers nommé : toto 2008.xls ; toto 2009.xls ; toto 2010.xls ;
toto 2011.xls .....
j'ai 13 feuil données ; janvier ; fevrier .. jusqu'a decembre
dans toutes les feuil j'ai en colonne A des noms, ils sont tapé dans la
feuil données et dans chaque autre feuil j'ai fais une liaison
=Données!A5 etc ainsi je suis sur que dans chaque col A de chaque feuil,
j'ai les memes noms

Les fichiers ne sont pas toujours totalement identique,
les feuils sont toujours les memes mais en colonne A j'ai des noms mais ne
sont pas toujours les memes d'une année à une autre et ne sont pas
toujours trier de la meme facon.

Je souhaiterai créer un bouton que lorsque je fais des changements de D7 à
D1000 de la feuil decembre du fichier toto 2008.xls, qu'il me copie cette
plage dans la colonne E du fichier toto N+1 c'est à dire toto 2009.xls

ca, j'y arrivais avec cela :

Sub miseajour_N_Nplus1()
Dim NomFic As String, Chemin As String, Annéesuivante As String

Calculate
Sheets("decembre").Select
Range("D7:D1000").Select
Selection.Copy
Sheets("données").Select
Annéesuivante = Range("B1") + 1
NomFic = "toto" & Annéesuivante & ".xls"
Chemin = "C:" & Annéesuivante & ""
Workbooks(NomFic).Activate
Sheets("Données").Select
Range("e4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Range("e4").Select
Calculate
Sheets("données").Select
Range("e4").Select
Annéesuivante = Range("B1") - 1
NomFic = "toto" & Annéesuivante & ".xls"
Chemin = "C:" & Annéesuivante & ""
Workbooks(NomFic).Activate
ActiveWorkbook.Save
ActiveWindow.Close

End Sub

Mais evidemment comme je le stipulais au dessus, cette macro est une
grosse boulette dans la mesure ou je copie une plage d'un fichier à un
autre mais que ces donnés ne correspondent plus au nom qu'il y a dans la
colonne A car les noms changent d'une année à l'autre.

Alors, est t'il possible de copier les cellules de D7 à D1000 de la feuil
decembre et de coller dans la colonne E du fichier toto N+1 en faisant
attention au nom qu'il y a dans la colonne A, si le noms existe sur les 2
fichiers, alors qu'il me recherche dans le fichier N+1 ou se trouve le nom
et qu'il me le colle dans la colonne E en face du nom correspondant etc...
pour tous les cellules de D7 à D1000 et que si un nom n'est plus commun au
2 fichier alors qu'il ne fasse rien et que si un nom existe en toto N+1 et
qu'il n'existatis pas en N-1 alors qu'il ne fasse rien non plus.

Vraiment pas facile... J'ai été clair ??? j'espere .

merci du coup de main, j'en ais vraiment besoin.

Manu





Avatar
Daniel.C
Bonjour.
Tu n'as besoin de bouton, mets la macro suivante dans le module
"ThisWorkbook" de chaque fichier :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
If Sh.Name = "Données" Then Exit Sub
If Intersect(Target, Range(Sh.[D7], Sh.[D65000].End(xlUp))) Is Nothing
Then Exit Sub
If Target.Count > 1 Then Exit Sub
Set Sh = ActiveSheet
Workbooks.Open ThisWorkbook.Path & "toto " & [Données!B1] + 1 & ".xls"
Application.EnableEvents = False
Sh.[D7:D1000].Copy ActiveWorkbook.Sheets(Sh.Name).[E7]
Application.EnableEvents = True
ActiveWorkbook.Close True
End Sub

Daniel

Bonjour,

Je n'arrive pas du tout à m'en sortir. Pas facile... je vais tacher d'etre
clair

J'ai des fichiers nommé : toto 2008.xls ; toto 2009.xls ; toto 2010.xls ;
toto 2011.xls .....
j'ai 13 feuil données ; janvier ; fevrier .. jusqu'a decembre
dans toutes les feuil j'ai en colonne A des noms, ils sont tapé dans la feuil
données et dans chaque autre feuil j'ai fais une liaison =Données!A5 etc
ainsi je suis sur que dans chaque col A de chaque feuil, j'ai les memes noms

Les fichiers ne sont pas toujours totalement identique,
les feuils sont toujours les memes mais en colonne A j'ai des noms mais ne
sont pas toujours les memes d'une année à une autre et ne sont pas toujours
trier de la meme facon.

Je souhaiterai créer un bouton que lorsque je fais des changements de D7 à
D1000 de la feuil decembre du fichier toto 2008.xls, qu'il me copie cette
plage dans la colonne E du fichier toto N+1 c'est à dire toto 2009.xls

ca, j'y arrivais avec cela :

Sub miseajour_N_Nplus1()
Dim NomFic As String, Chemin As String, Annéesuivante As String

Calculate
Sheets("decembre").Select
Range("D7:D1000").Select
Selection.Copy
Sheets("données").Select
Annéesuivante = Range("B1") + 1
NomFic = "toto" & Annéesuivante & ".xls"
Chemin = "C:" & Annéesuivante & ""
Workbooks(NomFic).Activate
Sheets("Données").Select
Range("e4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Range("e4").Select
Calculate
Sheets("données").Select
Range("e4").Select
Annéesuivante = Range("B1") - 1
NomFic = "toto" & Annéesuivante & ".xls"
Chemin = "C:" & Annéesuivante & ""
Workbooks(NomFic).Activate
ActiveWorkbook.Save
ActiveWindow.Close

End Sub

Mais evidemment comme je le stipulais au dessus, cette macro est une grosse
boulette dans la mesure ou je copie une plage d'un fichier à un autre mais
que ces donnés ne correspondent plus au nom qu'il y a dans la colonne A car
les noms changent d'une année à l'autre.

Alors, est t'il possible de copier les cellules de D7 à D1000 de la feuil
decembre et de coller dans la colonne E du fichier toto N+1 en faisant
attention au nom qu'il y a dans la colonne A, si le noms existe sur les 2
fichiers, alors qu'il me recherche dans le fichier N+1 ou se trouve le nom et
qu'il me le colle dans la colonne E en face du nom correspondant etc... pour
tous les cellules de D7 à D1000 et que si un nom n'est plus commun au 2
fichier alors qu'il ne fasse rien et que si un nom existe en toto N+1 et
qu'il n'existatis pas en N-1 alors qu'il ne fasse rien non plus.

Vraiment pas facile... J'ai été clair ??? j'espere .

merci du coup de main, j'en ais vraiment besoin.

Manu


Avatar
Manu
Je te joins un fichier epuré car je n'arrive pas à mettre en place ton code,
mais j'aurais prefere mettre un bouton, tu le verras il s'appelle : "(2)
Mise à jour des modifications sur année N+1"

Alors ce fichier doit etre rangé dans un dossier 2009 sur le C: et quand tu
clic sur "changer d'année" il t'en crera un nouveau dans un dossier 2010

le but etant de faire de changer quelques noms sur le toto 2010 et voir si
ca ce met bien à jour lorsque je clic dans le toto 2009 sur le bouton :"(2)
Mise à jour des modifications sur année N+1"
http://www.cijoint.fr/cjlink.php?file=cj201002/cij1M5rjiI.xls

Merci encore, car pour moi, c'est un vrai sac de noeud

Manu


"Daniel.C" a écrit dans le message de news:
%
Bonjour.
Tu n'as besoin de bouton, mets la macro suivante dans le module
"ThisWorkbook" de chaque fichier :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
If Sh.Name = "Données" Then Exit Sub
If Intersect(Target, Range(Sh.[D7], Sh.[D65000].End(xlUp))) Is Nothing
Then Exit Sub
If Target.Count > 1 Then Exit Sub
Set Sh = ActiveSheet
Workbooks.Open ThisWorkbook.Path & "toto " & [Données!B1] + 1 & ".xls"
Application.EnableEvents = False
Sh.[D7:D1000].Copy ActiveWorkbook.Sheets(Sh.Name).[E7]
Application.EnableEvents = True
ActiveWorkbook.Close True
End Sub

Daniel

Bonjour,

Je n'arrive pas du tout à m'en sortir. Pas facile... je vais tacher
d'etre clair

J'ai des fichiers nommé : toto 2008.xls ; toto 2009.xls ; toto 2010.xls ;
toto 2011.xls .....
j'ai 13 feuil données ; janvier ; fevrier .. jusqu'a decembre
dans toutes les feuil j'ai en colonne A des noms, ils sont tapé dans la
feuil données et dans chaque autre feuil j'ai fais une liaison
=Données!A5 etc ainsi je suis sur que dans chaque col A de chaque feuil,
j'ai les memes noms

Les fichiers ne sont pas toujours totalement identique,
les feuils sont toujours les memes mais en colonne A j'ai des noms mais
ne sont pas toujours les memes d'une année à une autre et ne sont pas
toujours trier de la meme facon.

Je souhaiterai créer un bouton que lorsque je fais des changements de D7
à D1000 de la feuil decembre du fichier toto 2008.xls, qu'il me copie
cette plage dans la colonne E du fichier toto N+1 c'est à dire toto
2009.xls

ca, j'y arrivais avec cela :

Sub miseajour_N_Nplus1()
Dim NomFic As String, Chemin As String, Annéesuivante As String

Calculate
Sheets("decembre").Select
Range("D7:D1000").Select
Selection.Copy
Sheets("données").Select
Annéesuivante = Range("B1") + 1
NomFic = "toto" & Annéesuivante & ".xls"
Chemin = "C:" & Annéesuivante & ""
Workbooks(NomFic).Activate
Sheets("Données").Select
Range("e4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Range("e4").Select
Calculate
Sheets("données").Select
Range("e4").Select
Annéesuivante = Range("B1") - 1
NomFic = "toto" & Annéesuivante & ".xls"
Chemin = "C:" & Annéesuivante & ""
Workbooks(NomFic).Activate
ActiveWorkbook.Save
ActiveWindow.Close

End Sub

Mais evidemment comme je le stipulais au dessus, cette macro est une
grosse boulette dans la mesure ou je copie une plage d'un fichier à un
autre mais que ces donnés ne correspondent plus au nom qu'il y a dans la
colonne A car les noms changent d'une année à l'autre.

Alors, est t'il possible de copier les cellules de D7 à D1000 de la
feuil decembre et de coller dans la colonne E du fichier toto N+1 en
faisant attention au nom qu'il y a dans la colonne A, si le noms existe
sur les 2 fichiers, alors qu'il me recherche dans le fichier N+1 ou se
trouve le nom et qu'il me le colle dans la colonne E en face du nom
correspondant etc... pour tous les cellules de D7 à D1000 et que si un
nom n'est plus commun au 2 fichier alors qu'il ne fasse rien et que si un
nom existe en toto N+1 et qu'il n'existatis pas en N-1 alors qu'il ne
fasse rien non plus.

Vraiment pas facile... J'ai été clair ??? j'espere .

merci du coup de main, j'en ais vraiment besoin.

Manu






Avatar
FFO
Salut à toi

Utilises ces lignes de code :

Sheets("decembre").Activate
i = 7
Fichier = "Toto " & Sheets("données").Range("B1") + 1 & ".xls"
Do While i < Range("A65535").End(xlUp).Row + 1
Ligne = 0
On Error Resume Next
Ligne =
Workbooks(Fichier).Sheets("données").Columns("A:A").Find(What:=Range("A" &
i), After:=Workbooks(Fichier).Sheets("données").Range("A6"),
LookIn:=xlValues, Lookat:=xlWhole).Row
If Ligne > 0 Then
Workbooks(Fichier).Sheets("données").Range("E" & Ligne) = Range("D" & i)
End If
i = i + 1
Loop

ces 3 lignes doivent être mises bout à bout sur une seule :

Ligne =
Workbooks(Fichier).Sheets("données").Columns("A:A").Find(What:=Range("A" &
i), After:=Workbooks(Fichier).Sheets("données").Range("A6"),
LookIn:=xlValues, Lookat:=xlWhole).Row


ton fichier de destination "Toto et année suivante .xls" doit être ouvert

l'onglet de destination doit être nommé "données"

Mets ce code dans le fichier source

Exécutes le à partir de l'onglet "decembre"

Va constater le résultat colonne E Fichier de destination onglet "données"

Donnes moi des nouvelles !!!!!!
Avatar
Manu
Ca à l'air de fonctionner FFO, je vais desormais l'installer dans le fichier
d'origine, et je te tiens au courant.

Je m'attendais pour faire ca à des tonnes de lignes, c'est fou ce qui est
possible de faire en VBA, il faut vraiment que je m'y mette.

Merci, et je te tiens au courant.

Manu

"FFO" a écrit dans le message de news:

Salut à toi

Utilises ces lignes de code :

Sheets("decembre").Activate
i = 7
Fichier = "Toto " & Sheets("données").Range("B1") + 1 & ".xls"
Do While i < Range("A65535").End(xlUp).Row + 1
Ligne = 0
On Error Resume Next
Ligne > Workbooks(Fichier).Sheets("données").Columns("A:A").Find(What:=Range("A" &
i), After:=Workbooks(Fichier).Sheets("données").Range("A6"),
LookIn:=xlValues, Lookat:=xlWhole).Row
If Ligne > 0 Then
Workbooks(Fichier).Sheets("données").Range("E" & Ligne) = Range("D" & i)
End If
i = i + 1
Loop

ces 3 lignes doivent être mises bout à bout sur une seule :

Ligne > Workbooks(Fichier).Sheets("données").Columns("A:A").Find(What:=Range("A" &
i), After:=Workbooks(Fichier).Sheets("données").Range("A6"),
LookIn:=xlValues, Lookat:=xlWhole).Row


ton fichier de destination "Toto et année suivante .xls" doit être ouvert

l'onglet de destination doit être nommé "données"

Mets ce code dans le fichier source

Exécutes le à partir de l'onglet "decembre"

Va constater le résultat colonne E Fichier de destination onglet "données"

Donnes moi des nouvelles !!!!!!



Avatar
Manu
Super, j'ai fais divers tests et pour l'instant tout fonctionne, merci
encore FFo ainsi qu'à daniel.

Manu

"Manu" a écrit dans le message de news:
ez$
Ca à l'air de fonctionner FFO, je vais desormais l'installer dans le
fichier d'origine, et je te tiens au courant.

Je m'attendais pour faire ca à des tonnes de lignes, c'est fou ce qui est
possible de faire en VBA, il faut vraiment que je m'y mette.

Merci, et je te tiens au courant.

Manu

"FFO" a écrit dans le message de news:

Salut à toi

Utilises ces lignes de code :

Sheets("decembre").Activate
i = 7
Fichier = "Toto " & Sheets("données").Range("B1") + 1 & ".xls"
Do While i < Range("A65535").End(xlUp).Row + 1
Ligne = 0
On Error Resume Next
Ligne >> Workbooks(Fichier).Sheets("données").Columns("A:A").Find(What:=Range("A"
&
i), After:=Workbooks(Fichier).Sheets("données").Range("A6"),
LookIn:=xlValues, Lookat:=xlWhole).Row
If Ligne > 0 Then
Workbooks(Fichier).Sheets("données").Range("E" & Ligne) = Range("D" & i)
End If
i = i + 1
Loop

ces 3 lignes doivent être mises bout à bout sur une seule :

Ligne >> Workbooks(Fichier).Sheets("données").Columns("A:A").Find(What:=Range("A"
&
i), After:=Workbooks(Fichier).Sheets("données").Range("A6"),
LookIn:=xlValues, Lookat:=xlWhole).Row


ton fichier de destination "Toto et année suivante .xls" doit être ouvert

l'onglet de destination doit être nommé "données"

Mets ce code dans le fichier source

Exécutes le à partir de l'onglet "decembre"

Va constater le résultat colonne E Fichier de destination onglet
"données"

Donnes moi des nouvelles !!!!!!







Avatar
Manu
Tout de meme, une petite bricole

Est t'il possible de laisser ton code tel quel si le fichier N+1 est ouvert,
mais si ce n'est pas le cas qu'il ouvre au prealable le fichier N+1 pour
effectuer ton code.

Merci

"Manu" a écrit dans le message de news:

Super, j'ai fais divers tests et pour l'instant tout fonctionne, merci
encore FFo ainsi qu'à daniel.

Manu

"Manu" a écrit dans le message de news:
ez$
Ca à l'air de fonctionner FFO, je vais desormais l'installer dans le
fichier d'origine, et je te tiens au courant.

Je m'attendais pour faire ca à des tonnes de lignes, c'est fou ce qui est
possible de faire en VBA, il faut vraiment que je m'y mette.

Merci, et je te tiens au courant.

Manu

"FFO" a écrit dans le message de news:

Salut à toi

Utilises ces lignes de code :

Sheets("decembre").Activate
i = 7
Fichier = "Toto " & Sheets("données").Range("B1") + 1 & ".xls"
Do While i < Range("A65535").End(xlUp).Row + 1
Ligne = 0
On Error Resume Next
Ligne >>> Workbooks(Fichier).Sheets("données").Columns("A:A").Find(What:=Range("A"
&
i), After:=Workbooks(Fichier).Sheets("données").Range("A6"),
LookIn:=xlValues, Lookat:=xlWhole).Row
If Ligne > 0 Then
Workbooks(Fichier).Sheets("données").Range("E" & Ligne) = Range("D" & i)
End If
i = i + 1
Loop

ces 3 lignes doivent être mises bout à bout sur une seule :

Ligne >>> Workbooks(Fichier).Sheets("données").Columns("A:A").Find(What:=Range("A"
&
i), After:=Workbooks(Fichier).Sheets("données").Range("A6"),
LookIn:=xlValues, Lookat:=xlWhole).Row


ton fichier de destination "Toto et année suivante .xls" doit être
ouvert

l'onglet de destination doit être nommé "données"

Mets ce code dans le fichier source

Exécutes le à partir de l'onglet "decembre"

Va constater le résultat colonne E Fichier de destination onglet
"données"

Donnes moi des nouvelles !!!!!!











Avatar
FFO
Rebonjour à toi

Si ton fichier n'est pas ouvert rajoutes ces quelques lignes :

Classeur = ThisWorkbook.Name
Chemin = ThisWorkbook.Path & "" & Fichier
On Error Resume Next
Workbooks.Open (Chemin)
Workbooks(Classeur).Activate

J'ai supposé que le classeur à ouvrir est dans le même répertoire que celui
du code

Sinon adaptes :

Chemin = ThisWorkbook.Path & "" & Fichier

ainsi :

Chemin = "C:Chemin" & Fichier
du chemin de du répertoire du fichier à ouvrir

Ce qui donne le code global :

Fichier = "Toto " & Sheets("données").Range("B1") + 1 & ".xls"
Classeur = ThisWorkbook.Name
Chemin = ThisWorkbook.Path & "" & Fichier
On Error Resume Next
Workbooks.Open (Chemin)
Workbooks(Classeur).Activate
Sheets("decembre").Activate
i = 7
Do While i < Range("A65535").End(xlUp).Row + 1
Ligne = 0
On Error Resume Next
Ligne =
Workbooks(Fichier).Sheets("données").Columns("A:A").Find(What:=Range("A" &
i), After:=Workbooks(Fichier).Sheets("données").Range("A6"),
LookIn:=xlValues, Lookat:=xlWhole).Row
If Ligne > 0 Then
Workbooks(Fichier).Sheets("données").Range("E" & Ligne) = Range("D" & i)
End If
i = i + 1
Loop

Je pense que celà devrait convenir

Dit moi !!!!!!
Avatar
Manu
En faite le fichier
toto 2009.xls est rangé dans ce chemin C:2009
toto 2010.xls est rangé dans C:2010
etc.....

Il faut donc qu'il ouvre le fichier d'un dossier d'une année en +

dj'essaie avec des truc comme ca, mais je n'y arrive pas :
Sheets("données").Select
Annéesuivante = Range("B1") + 1
NomFic = "toto" & Annéesuivante & ".xls"
Chemin = "C:" & Annéesuivante & ""

alors comment dois je adapter ta ligne : Chemin = ThisWorkbook.Path & "" &
Fichier

Merci

"FFO" a écrit dans le message de news:

Rebonjour à toi

Si ton fichier n'est pas ouvert rajoutes ces quelques lignes :

Classeur = ThisWorkbook.Name
Chemin = ThisWorkbook.Path & "" & Fichier
On Error Resume Next
Workbooks.Open (Chemin)
Workbooks(Classeur).Activate

J'ai supposé que le classeur à ouvrir est dans le même répertoire que
celui
du code

Sinon adaptes :

Chemin = ThisWorkbook.Path & "" & Fichier

ainsi :

Chemin = "C:Chemin" & Fichier
du chemin de du répertoire du fichier à ouvrir

Ce qui donne le code global :

Fichier = "Toto " & Sheets("données").Range("B1") + 1 & ".xls"
Classeur = ThisWorkbook.Name
Chemin = ThisWorkbook.Path & "" & Fichier
On Error Resume Next
Workbooks.Open (Chemin)
Workbooks(Classeur).Activate
Sheets("decembre").Activate
i = 7
Do While i < Range("A65535").End(xlUp).Row + 1
Ligne = 0
On Error Resume Next
Ligne > Workbooks(Fichier).Sheets("données").Columns("A:A").Find(What:=Range("A" &
i), After:=Workbooks(Fichier).Sheets("données").Range("A6"),
LookIn:=xlValues, Lookat:=xlWhole).Row
If Ligne > 0 Then
Workbooks(Fichier).Sheets("données").Range("E" & Ligne) = Range("D" & i)
End If
i = i + 1
Loop

Je pense que celà devrait convenir

Dit moi !!!!!!



Avatar
FFO
Rebonjour à toi

Mets comme ceci :

Fichier = "Toto " & Sheets("données").Range("B1") + 1 & ".xls"
Classeur = ThisWorkbook.Name
Chemin = "C:" & Sheets("données").Range("B1") + 1 & "" & Fichier
On Error Resume Next
Workbooks.Open (Chemin)
Workbooks(Classeur).Activate
Sheets("decembre").Activate
i = 7
Do While i < Range("A65535").End(xlUp).Row + 1
Ligne = 0
On Error Resume Next
Ligne =
Workbooks(Fichier).Sheets("données").Columns("A:A").Find(What:=Range("A" &
i), After:=Workbooks(Fichier).Sheets("données").Range("A6"),
LookIn:=xlValues, Lookat:=xlWhole).Row
If Ligne > 0 Then
Workbooks(Fichier).Sheets("données").Range("E" & Ligne) = Range("D" & i)
End If
i = i + 1
Loop

Celà devrait convenir

Dis moi !!!!
1 2