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

Recherche entre 2 documents excel. (Débutant)

1 réponse
Avatar
Tartare
Bonjour,
voila mon problème:
-sur un document excel, je dois prendre le contenu d'une cellule et le
rechercher sur un autre document excel.
Le problème est que en utilisant l'enregistreur de macro, celui -ci ne prend
pas la cellule (par ex. a1) mais le contenu de la cellule (dans ce cas
1210412363) . Vu que ce contenu est variable, la macro ne marche pas.
Ci dessous la macro d'origine, si quelqu'un peut la modifier ou me donner
une autre ligne de commande plus efficace, merci.


Sub test()
'
' test Macro
' Macro enregistrée le 21/03/2006 par Jul
'

'
Windows("cases_yesterday-Job-Bbbb-1265-Cycle_1-20060317.xls"). _
Activate
Range("A2").Select
Selection.Copy
Application.WindowState = xlMinimized
Application.WindowState = xlMinimized
Cells.Find(What:="1210412363", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range("A3").Select
Application.CutCopyMode = False
Selection.Copy
Windows("FRANCE.xls").Activate
Range("C918").Select
Cells.Find(What:="1210470778", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End Sub

1 réponse

Avatar
Gilles MOUGNOZ
"Tartare" a écrit :
Bonjour,
voila mon problème:
-sur un document excel, je dois prendre le contenu d'une cellule et le
rechercher sur un autre document excel.
Le problème est que en utilisant l'enregistreur de macro, celui -ci ne
prend
pas la cellule (par ex. a1) mais le contenu de la cellule (dans ce cas
1210412363) . Vu que ce contenu est variable, la macro ne marche pas.
Ci dessous la macro d'origine, si quelqu'un peut la modifier ou me donner
une autre ligne de commande plus efficace, merci.

Sub test()
' test Macro
' Macro enregistrée le 21/03/2006 par Jul
Windows("cases_yesterday-Job-Bbbb-1265-Cycle_1-20060317.xls"). _
Activate
Range("A2").Select
Selection.Copy
Application.WindowState = xlMinimized
Application.WindowState = xlMinimized
Cells.Find(What:="1210412363", After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
Range("A3").Select
Application.CutCopyMode = False
Selection.Copy
Windows("FRANCE.xls").Activate
Range("C918").Select
Cells.Find(What:="1210470778", After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
End Sub



Bonjour, Tartare

Effectivement, tu es débutant et cela se voit. Ce n'est pas une critique, on
l'a tous été !
Tout d'abord, ton code n'est pas du VB mais du VBA. Le groupe de discussion
appropié est donc "microsoft.publi.fr.excel".
Ensuite, ta macro effectue plusieurs actions:
1) tu te places sur un document 1 contenant l'élément à chercher,
2) tu copies le contenu de la cellule A2,
3) tu te places sur un document 2 où tu fais une première recherche (en
réduisant deux fenêtres, on ne connait donc pas le nom du document 2),
4) tu lances la recherche,
5) tu copies le contenu de la cellule A3,
6) tu te places sur un document 3 (?),
7) tu descends jusqu'à la cellule C918,
8) et tu lances une deuxième recherche.
C'est un peu brouillon mais bon...
En supposant que l'élément recherché est le contenu de A3 du document 1 et
que tu recherches dans le document 3 à partir de la cellule C918, cela
pourrait donner ceci:

Sub test2()
' test2 Macro
' Macro créée le 21/03/2006 par Gilles
Dim ValeurRecherchee As String
' déclaration d'une variable qui va contenir la valeur recherchée
Windows("cases_yesterday-Job-Bbbb-1265-Cycle_1-20060317.xls"). _
Activate
' activation du classeur contenant la donnée
DonneeRecherchee = CStr(Range("A3"))
' stockage de la valeur de A3 dans la variable
Windows("FRANCE.xls").Activate
' activation du classeur de recherche
Range("C918").Select
' activation de la cellule de début de recherche
Cells.Find(What:=DonneeRecherchee, After:¬tiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse, SearchFormat:úlse).Activate
' lancement de la recherche
End Sub

Tu peux bien sûr remplacer à l'envie
"cases_yesterday-Job-Bbbb-1265-Cycle_1-20060317.xls", "A3", "FRANCE.xls" et
"C918" par les valeurs appropriées si jamais je n'avais compris
correctement.

Bonne continuation