Probleme macro recherche

relomydie -  
 relomydie -
Bonjour,

j'ai un souci avec la macro suivante:

Private Sub CommandButton5_Click()
arg1 = Cells(17, 1)
If arg1 > 0 Then
Worksheets("Feuil3").Select
Range(arg1).Select
End If
End Sub

et le message "la méthode range de l'objet worksheets a échoué", pourquoi?

Je veux simplement qu'il me trouve une cellule dans une autre feuille.

Merci de votre aide

7 réponses

Bidouilleu_R Messages postés 1209 Statut Membre 295
 
tu confonds objet et variable

qu'y-t-il dans arg1? ou quel est le contenu de cell(17,1)?

veux-tu te déplacer à l'adresse indiquée dans "arg1" ou aller à cell(17,1) sur la feuille3?

tu devrais écrire qq chose comme ça

set arg1=range("A17") ' objet contenant toutes les infos de la cellule A17

If arg1.value > 0 Then
Worksheets("Feuil3").Select
Range(arg1.address).Select
End If

En espérant que cela t'aidera
0
relomydie
 
alors j'ai essayé mais le message suivant apparaît "la methode select de la classe range a échoué".

En fait ce que je souhaite faire c'est avoir une macro qui me cherche la cellule A17 de la feuille fiche chantier dans la feuille 3 et qu'il se positionne dessus.
0
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
bon j'avais pas bien compris.
' arg1 est une variable

Sub test()

arg1 = Range("A17").Value ' Valeur de A17 mis dans arg1

If arg1 > 0 Then

Sheets("Feuil3").Select ' si la feuille s'appelle bien "Feuil3" dans le même classeur
Range("a17").Select ' on va à la cellule A17
End If

ne confond pas non plus Sheets : la feuille du classeur
et workbook le classeur.

j'ai testé ça fonctionne.
0
relomydie
 
J'ai de nouveau le premier message:
la méthode select de la classe range a échoué.

Je ne comprends pas pourquoi?

Vois-tu une erreur de frappe?

Private Sub CommandButton5_Click()
arg1 = Range("a17")
If arg1 > 0 Then
Sheets("Feuil3").Select
Range("a17").Select
End If
End Sub

Merci
0
Bidouilleu_R Messages postés 1209 Statut Membre 295 > relomydie
 
" Vois-tu une erreur de frappe? " non mais un oubli peu-être
sur quelle feuille commences-tu? ou est ton bouton?
En supposant sur la feuille1
la methode select échoue si l'enfant ou le parent n'est pas accessible.
la cellule dépend de la feuille.
sépare feuille et cellule et tu sauras ce qui ne va pas.
un exemple ci dessous.


Private Sub CommandButton5_Click()

sheets("Feuil1").select
arg1 = Range("a17")
If arg1 > 0 Then
Sheets("Feuil3").Select
Range("a17").Select
End If
End Sub
0
relomydie > Bidouilleu_R Messages postés 1209 Statut Membre
 
"sur quelle feuille commences-tu?" "ou es ton bouton"
Je commence sur la feuille fiche chantier et le bouton est sur cette feuille.

Je souhaite que la macro recherche la valeur de la cellule A17 de la feuille fiche chantier et la trouve et se positionne dans la feuille 3.

MAis en rajoutant sheets("fiche chantier").select le message apparaît toujours.


Par exemple, la cellule A17 de la feuille fiche chantier est: A170763depl (cette valeur est une concaténation de deux cellules voisines)

Je veux que la macro me trouve cette valeur dans la feuille 3 et se positionne dessus.

Je ne sais pas si c'est plus clair?
0
relomydie
 
je pense que tu as laché prise, mais faut pas se prendre la tete.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
non j'avais un rdv hier soir
je regarde et je te dis.
0
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
bon j'ai trouvé mes excuses.

dans command buton 5 tu mets
call recherche1 ' par exemple
end sub

puis alt f11

insertion module
et tu mets ça et c'est ok

Sub recherche1()
arg1 = Range("A17").value
Sheets("feuil3").Select
Range(arg1).Select
End Sub
si tu as besoin n'hésite pas
0
relomydie
 
Merci, mais je ne comprends toujours pas pourquoi il me mets ce message:

"la méthode range de l'objet worksheets a échoué"
0
relomydie
 
Sub recherche1()
arg1 = Range("a17").Value
Sheets("feuil3").Select
Range(arg1).Select ----> c'est à ce niveau qui surligne l'erreur
End Sub
0
relomydie
 
Ok donc pour la valeur 3, je ne comprends pas trop.
Que faudrait il à la place? car ce qu'il signifie reste un mystere....

Car en tapant cette macro j'obtiens le message suivant:

"la méthode select de la classe range a échoué".

Je dois terminer ce programme pour le boulot avant ce soir et tout allait bien jusqu'à cette macro.

Penses-tu qu'il y a un moyen plus simple en faisant une macro, de faire une recheche de cellule d'une feuille dans une autre?

Merci beaucoup de prendre de ton temps pour m'aider
0
Bidouilleu_R Messages postés 1209 Statut Membre 295 > relomydie
 
D'après les informations que tu donnes
La cellule A17 contient A170763depl
la fonction left récupère dans arg1 les 3 premiers charactère soit A17
sheets("Feuil3").select ' selectionne la feuille
la méthode range(arg1).select correspond à range("A17") et celle-ci fonctionne très bien chez moi
je ne vois pas où est le problème
Essaie d'executer le code en pas à pas F8 et regarde le contenu de arg1
0
Bidouilleu_R Messages postés 1209 Statut Membre 295 > relomydie
 
En fait pour explication
dans la cellule A17 tu fais une concaténation et A17 contient A17xxxxx
pour être sûr de récupérer cette adresse il te faudrait un espace par exemple : A17 xxxxx
ou une autre information mais cela c'est toi qui doit le dire

la méthode range qui échoue, dans commandbutton là je n'ai pas d'idées.
j'utilise ces boutons pour lancer un module VBA
0
Bidouilleu_R Messages postés 1209 Statut Membre 295
 
voici ce que tu écris
' Par exemple, la cellule A17 de la feuille fiche chantier est: A170763depl

'je suppose donc que A17 de la feuille chantier contient : A170763depl

si arg1 prend la valeur "A170763depl" il ne trouvera pas d'adresse correspondante.
j'ai donc changé comme ci-après mais le code pas "propre en ce sens
que la valeur 3 est arbitraire dans : arg1 = Left(Range("a17").Value, 3)
il faudrait pouvoir obtenir un argument de recherche supplémentaire
à moins que cela te convienne.

Sub recherche1()
arg1 = Left(Range("a17").Value, 3)
Sheets("feuil3").Select
Range(arg1).Select '----> c'est à ce niveau qui surligne l'erreur
End Sub

A+ Roger
0