Problème manipulation feuille en VBA automation ...
2 réponses
Laurent
Bonjour !
J'effectue depuis access l'ouverture d'excel et d'une feuille de données.
Je dois effectuer une recherche dans une colonne de la feuille afin d'en
retrouver une valeur précise. J'ai pour le moment fait une "bête" boucle
mais il y a probablement mieux ... non ? ;-)
Dès que la cellule est trouvée, j'aimerai en connaitre les références (n°
ligne), par quel code ?
En fait, j'aimerai activer ceci car je n'exclut pas de faire la recherche
autrement que par un bouclage, je n'ai donc plus l'indice de ligne ...
Finalement, existe-t-il une fonction simple qui permette de connaitre la
longueur d'une feuille excel ?
Pour fixer les idées, mon code access commence par ceci ...
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Chaine = "C:\aviation\data\prodlist\" & [xrecherche excel].Form![nom
fichier]
Set xlBook = xlApp.Workbooks.Open(Chaine)
Set ActiveBook = xlApp.Application.ActiveWorkbook
Compt = 1
ColRegistre = [xrecherche excel].Form![Registre] 'affecte la référence
de colonne pour la recherche
'SysCmd acSysCmdInitMeter, "Traitement en cours ", I
Registre = Me!Registre 'affecte la valeur à rechercher dans la feuille
Do Until Compt = i
If ActiveBook.Worksheets(1).Cells(Compt, ColRegistre) = Registre
Then
ActiveBook.Worksheets(1).Cells(Compt, ColRegistre).Select
...
Merci d'avance pour votre aide, vos indices car cela fait pas mal de temps
que je cherche en vain ...
Il existe des références web pour creuser ce domaine fort intéressant ?
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
Pierre Fauconnier
Bonjour
Tu peux utiliser la méthode Find sur une sélection
Dim Cellule As Range Set Cellule = Range("a:a").Find(what:="Martine", LookIn:=xlValues, lookat:=xlWhole) If Not Cellule Is Nothing Then MsgBox Cellule.Address
Cette méthode renvoie la cellule trouvée, si elle existe, et Nothing si Find n'a rien trouvé. Tu récupères alors la propriété Address de l'objet Cellule, que tu peux décliner en absolu, relatif ou mixte Cellule.address(0,0) = A1 Cellule.address(1,0) = A$1 Cellule.address(0,1) = $A1 Cellule.address = cellule.address(1,1) = $A$1
Pour récupérer la ligne Cellule.row La colonne Cellule.column
Pour trouver la dernière ligne utilisée de la colonne A, tu peux utiliser range("a65536").end(xlup).row
Ok?
-- Pierre Fauconnier () "Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe zen ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Laurent" a écrit dans le message de news: 42fb0d0e$0$17602$
Bonjour !
J'effectue depuis access l'ouverture d'excel et d'une feuille de données.
Je dois effectuer une recherche dans une colonne de la feuille afin d'en retrouver une valeur précise. J'ai pour le moment fait une "bête" boucle mais il y a probablement mieux ... non ? ;-)
Dès que la cellule est trouvée, j'aimerai en connaitre les références (n° ligne), par quel code ? En fait, j'aimerai activer ceci car je n'exclut pas de faire la recherche autrement que par un bouclage, je n'ai donc plus l'indice de ligne ...
Finalement, existe-t-il une fonction simple qui permette de connaitre la longueur d'une feuille excel ?
Pour fixer les idées, mon code access commence par ceci ...
Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True Chaine = "C:aviationdataprodlist" & [xrecherche excel].Form![nom fichier] Set xlBook = xlApp.Workbooks.Open(Chaine) Set ActiveBook = xlApp.Application.ActiveWorkbook
Compt = 1 ColRegistre = [xrecherche excel].Form![Registre] 'affecte la référence de colonne pour la recherche 'SysCmd acSysCmdInitMeter, "Traitement en cours ", I Registre = Me!Registre 'affecte la valeur à rechercher dans la feuille Do Until Compt = i If ActiveBook.Worksheets(1).Cells(Compt, ColRegistre) = Registre Then ActiveBook.Worksheets(1).Cells(Compt, ColRegistre).Select ...
Merci d'avance pour votre aide, vos indices car cela fait pas mal de temps que je cherche en vain ... Il existe des références web pour creuser ce domaine fort intéressant ?
Merci encore !
Bonjour
Tu peux utiliser la méthode Find sur une sélection
Dim Cellule As Range
Set Cellule = Range("a:a").Find(what:="Martine", LookIn:=xlValues,
lookat:=xlWhole)
If Not Cellule Is Nothing Then MsgBox Cellule.Address
Cette méthode renvoie la cellule trouvée, si elle existe, et Nothing si Find
n'a rien trouvé. Tu récupères alors la propriété Address de l'objet Cellule,
que tu peux décliner en absolu, relatif ou mixte
Cellule.address(0,0) = A1
Cellule.address(1,0) = A$1
Cellule.address(0,1) = $A1
Cellule.address = cellule.address(1,1) = $A$1
Pour récupérer la ligne
Cellule.row
La colonne
Cellule.column
Pour trouver la dernière ligne utilisée de la colonne A, tu peux utiliser
range("a65536").end(xlup).row
Ok?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam)
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Laurent" <sunion@skynet.be> a écrit dans le message de news:
42fb0d0e$0$17602$ba620e4c@news.skynet.be...
Bonjour !
J'effectue depuis access l'ouverture d'excel et d'une feuille de données.
Je dois effectuer une recherche dans une colonne de la feuille afin d'en
retrouver une valeur précise. J'ai pour le moment fait une "bête" boucle
mais il y a probablement mieux ... non ? ;-)
Dès que la cellule est trouvée, j'aimerai en connaitre les références (n°
ligne), par quel code ?
En fait, j'aimerai activer ceci car je n'exclut pas de faire la recherche
autrement que par un bouclage, je n'ai donc plus l'indice de ligne ...
Finalement, existe-t-il une fonction simple qui permette de connaitre la
longueur d'une feuille excel ?
Pour fixer les idées, mon code access commence par ceci ...
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Chaine = "C:aviationdataprodlist" & [xrecherche excel].Form![nom
fichier]
Set xlBook = xlApp.Workbooks.Open(Chaine)
Set ActiveBook = xlApp.Application.ActiveWorkbook
Compt = 1
ColRegistre = [xrecherche excel].Form![Registre] 'affecte la référence
de colonne pour la recherche
'SysCmd acSysCmdInitMeter, "Traitement en cours ", I
Registre = Me!Registre 'affecte la valeur à rechercher dans la feuille
Do Until Compt = i
If ActiveBook.Worksheets(1).Cells(Compt, ColRegistre) = Registre
Then
ActiveBook.Worksheets(1).Cells(Compt, ColRegistre).Select
...
Merci d'avance pour votre aide, vos indices car cela fait pas mal de
temps
que je cherche en vain ...
Il existe des références web pour creuser ce domaine fort intéressant ?
Tu peux utiliser la méthode Find sur une sélection
Dim Cellule As Range Set Cellule = Range("a:a").Find(what:="Martine", LookIn:=xlValues, lookat:=xlWhole) If Not Cellule Is Nothing Then MsgBox Cellule.Address
Cette méthode renvoie la cellule trouvée, si elle existe, et Nothing si Find n'a rien trouvé. Tu récupères alors la propriété Address de l'objet Cellule, que tu peux décliner en absolu, relatif ou mixte Cellule.address(0,0) = A1 Cellule.address(1,0) = A$1 Cellule.address(0,1) = $A1 Cellule.address = cellule.address(1,1) = $A$1
Pour récupérer la ligne Cellule.row La colonne Cellule.column
Pour trouver la dernière ligne utilisée de la colonne A, tu peux utiliser range("a65536").end(xlup).row
Ok?
-- Pierre Fauconnier () "Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe zen ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Laurent" a écrit dans le message de news: 42fb0d0e$0$17602$
Bonjour !
J'effectue depuis access l'ouverture d'excel et d'une feuille de données.
Je dois effectuer une recherche dans une colonne de la feuille afin d'en retrouver une valeur précise. J'ai pour le moment fait une "bête" boucle mais il y a probablement mieux ... non ? ;-)
Dès que la cellule est trouvée, j'aimerai en connaitre les références (n° ligne), par quel code ? En fait, j'aimerai activer ceci car je n'exclut pas de faire la recherche autrement que par un bouclage, je n'ai donc plus l'indice de ligne ...
Finalement, existe-t-il une fonction simple qui permette de connaitre la longueur d'une feuille excel ?
Pour fixer les idées, mon code access commence par ceci ...
Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True Chaine = "C:aviationdataprodlist" & [xrecherche excel].Form![nom fichier] Set xlBook = xlApp.Workbooks.Open(Chaine) Set ActiveBook = xlApp.Application.ActiveWorkbook
Compt = 1 ColRegistre = [xrecherche excel].Form![Registre] 'affecte la référence de colonne pour la recherche 'SysCmd acSysCmdInitMeter, "Traitement en cours ", I Registre = Me!Registre 'affecte la valeur à rechercher dans la feuille Do Until Compt = i If ActiveBook.Worksheets(1).Cells(Compt, ColRegistre) = Registre Then ActiveBook.Worksheets(1).Cells(Compt, ColRegistre).Select ...
Merci d'avance pour votre aide, vos indices car cela fait pas mal de temps que je cherche en vain ... Il existe des références web pour creuser ce domaine fort intéressant ?
Merci encore !
Laurent
Merci pour la rapide réponse ...
... que je m'empresse de méditer ! ;-)
"Pierre Fauconnier" a écrit dans le message de news:
Bonjour
Tu peux utiliser la méthode Find sur une sélection
Dim Cellule As Range Set Cellule = Range("a:a").Find(what:="Martine", LookIn:=xlValues, lookat:=xlWhole) If Not Cellule Is Nothing Then MsgBox Cellule.Address
Cette méthode renvoie la cellule trouvée, si elle existe, et Nothing si Find
n'a rien trouvé. Tu récupères alors la propriété Address de l'objet Cellule,
que tu peux décliner en absolu, relatif ou mixte Cellule.address(0,0) = A1 Cellule.address(1,0) = A$1 Cellule.address(0,1) = $A1 Cellule.address = cellule.address(1,1) = $A$1
Pour récupérer la ligne Cellule.row La colonne Cellule.column
Pour trouver la dernière ligne utilisée de la colonne A, tu peux utiliser range("a65536").end(xlup).row
Ok?
-- Pierre Fauconnier () "Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Laurent" a écrit dans le message de news: 42fb0d0e$0$17602$
Bonjour !
J'effectue depuis access l'ouverture d'excel et d'une feuille de données.
Je dois effectuer une recherche dans une colonne de la feuille afin d'en
retrouver une valeur précise. J'ai pour le moment fait une "bête" boucle mais il y a probablement mieux ... non ? ;-)
Dès que la cellule est trouvée, j'aimerai en connaitre les références (n°
ligne), par quel code ? En fait, j'aimerai activer ceci car je n'exclut pas de faire la recherche
autrement que par un bouclage, je n'ai donc plus l'indice de ligne ...
Finalement, existe-t-il une fonction simple qui permette de connaitre la
longueur d'une feuille excel ?
Pour fixer les idées, mon code access commence par ceci ...
Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True Chaine = "C:aviationdataprodlist" & [xrecherche excel].Form![nom fichier] Set xlBook = xlApp.Workbooks.Open(Chaine) Set ActiveBook = xlApp.Application.ActiveWorkbook
Compt = 1 ColRegistre = [xrecherche excel].Form![Registre] 'affecte la référence
de colonne pour la recherche 'SysCmd acSysCmdInitMeter, "Traitement en cours ", I Registre = Me!Registre 'affecte la valeur à rechercher dans la feuille
Do Until Compt = i If ActiveBook.Worksheets(1).Cells(Compt, ColRegistre) = Registre Then ActiveBook.Worksheets(1).Cells(Compt, ColRegistre).Select ...
Merci d'avance pour votre aide, vos indices car cela fait pas mal de temps que je cherche en vain ... Il existe des références web pour creuser ce domaine fort intéressant ?
Merci encore !
Merci pour la rapide réponse ...
... que je m'empresse de méditer ! ;-)
L@urent
"Pierre Fauconnier" <pierre.fauconnier@nospam.nospam> a écrit dans le
message de news: euEP0RlnFHA.3312@TK2MSFTNGP12.phx.gbl...
Bonjour
Tu peux utiliser la méthode Find sur une sélection
Dim Cellule As Range
Set Cellule = Range("a:a").Find(what:="Martine", LookIn:=xlValues,
lookat:=xlWhole)
If Not Cellule Is Nothing Then MsgBox Cellule.Address
Cette méthode renvoie la cellule trouvée, si elle existe, et Nothing si
Find
n'a rien trouvé. Tu récupères alors la propriété Address de l'objet
Cellule,
que tu peux décliner en absolu, relatif ou mixte
Cellule.address(0,0) = A1
Cellule.address(1,0) = A$1
Cellule.address(0,1) = $A1
Cellule.address = cellule.address(1,1) = $A$1
Pour récupérer la ligne
Cellule.row
La colonne
Cellule.column
Pour trouver la dernière ligne utilisée de la colonne A, tu peux utiliser
range("a65536").end(xlup).row
Ok?
--
Pierre Fauconnier (pierre.fauconnier@nospam.nospam)
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Laurent" <sunion@skynet.be> a écrit dans le message de news:
42fb0d0e$0$17602$ba620e4c@news.skynet.be...
Bonjour !
J'effectue depuis access l'ouverture d'excel et d'une feuille de
données.
Je dois effectuer une recherche dans une colonne de la feuille afin
d'en
retrouver une valeur précise. J'ai pour le moment fait une "bête" boucle
mais il y a probablement mieux ... non ? ;-)
Dès que la cellule est trouvée, j'aimerai en connaitre les références
(n°
ligne), par quel code ?
En fait, j'aimerai activer ceci car je n'exclut pas de faire la
recherche
autrement que par un bouclage, je n'ai donc plus l'indice de ligne ...
Finalement, existe-t-il une fonction simple qui permette de connaitre
la
longueur d'une feuille excel ?
Pour fixer les idées, mon code access commence par ceci ...
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Chaine = "C:aviationdataprodlist" & [xrecherche excel].Form![nom
fichier]
Set xlBook = xlApp.Workbooks.Open(Chaine)
Set ActiveBook = xlApp.Application.ActiveWorkbook
Compt = 1
ColRegistre = [xrecherche excel].Form![Registre] 'affecte la
référence
de colonne pour la recherche
'SysCmd acSysCmdInitMeter, "Traitement en cours ", I
Registre = Me!Registre 'affecte la valeur à rechercher dans la
feuille
Do Until Compt = i
If ActiveBook.Worksheets(1).Cells(Compt, ColRegistre) = Registre
Then
ActiveBook.Worksheets(1).Cells(Compt, ColRegistre).Select
...
Merci d'avance pour votre aide, vos indices car cela fait pas mal de
temps
que je cherche en vain ...
Il existe des références web pour creuser ce domaine fort intéressant ?
"Pierre Fauconnier" a écrit dans le message de news:
Bonjour
Tu peux utiliser la méthode Find sur une sélection
Dim Cellule As Range Set Cellule = Range("a:a").Find(what:="Martine", LookIn:=xlValues, lookat:=xlWhole) If Not Cellule Is Nothing Then MsgBox Cellule.Address
Cette méthode renvoie la cellule trouvée, si elle existe, et Nothing si Find
n'a rien trouvé. Tu récupères alors la propriété Address de l'objet Cellule,
que tu peux décliner en absolu, relatif ou mixte Cellule.address(0,0) = A1 Cellule.address(1,0) = A$1 Cellule.address(0,1) = $A1 Cellule.address = cellule.address(1,1) = $A$1
Pour récupérer la ligne Cellule.row La colonne Cellule.column
Pour trouver la dernière ligne utilisée de la colonne A, tu peux utiliser range("a65536").end(xlup).row
Ok?
-- Pierre Fauconnier () "Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen ) Remplacez nospam.nospam par pfi.be pour répondre. Merci
"Laurent" a écrit dans le message de news: 42fb0d0e$0$17602$
Bonjour !
J'effectue depuis access l'ouverture d'excel et d'une feuille de données.
Je dois effectuer une recherche dans une colonne de la feuille afin d'en
retrouver une valeur précise. J'ai pour le moment fait une "bête" boucle mais il y a probablement mieux ... non ? ;-)
Dès que la cellule est trouvée, j'aimerai en connaitre les références (n°
ligne), par quel code ? En fait, j'aimerai activer ceci car je n'exclut pas de faire la recherche
autrement que par un bouclage, je n'ai donc plus l'indice de ligne ...
Finalement, existe-t-il une fonction simple qui permette de connaitre la
longueur d'une feuille excel ?
Pour fixer les idées, mon code access commence par ceci ...
Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True Chaine = "C:aviationdataprodlist" & [xrecherche excel].Form![nom fichier] Set xlBook = xlApp.Workbooks.Open(Chaine) Set ActiveBook = xlApp.Application.ActiveWorkbook
Compt = 1 ColRegistre = [xrecherche excel].Form![Registre] 'affecte la référence
de colonne pour la recherche 'SysCmd acSysCmdInitMeter, "Traitement en cours ", I Registre = Me!Registre 'affecte la valeur à rechercher dans la feuille
Do Until Compt = i If ActiveBook.Worksheets(1).Cells(Compt, ColRegistre) = Registre Then ActiveBook.Worksheets(1).Cells(Compt, ColRegistre).Select ...
Merci d'avance pour votre aide, vos indices car cela fait pas mal de temps que je cherche en vain ... Il existe des références web pour creuser ce domaine fort intéressant ?