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
'
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
"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.
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.