Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Sélectionner cellule d'après label

Calvus

XLDnaute Barbatruc
Bonsoir le Forum,

J'ai ce code :
VB:
Private Sub Label18_Click()
Dim valeur As String, cherche As String
valeur = Label18.Caption
cherche = Feuil10.Columns(11).Find(valeur)
Feuil10.Activate
cherche.Select
End Sub

Le code bloque à cherche.Select (le Feuil10.Activate a été ajouté après pour test)

Je ne sais pas comment demander à excel de retourner l'adresse.
En effet, MsgBox (cherche).Address ou MsgBox (cherche.Address) me renvoient : Qualificateur incorrect..

Merci
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Je n'ai pas testé et en plus je ne connais pas la fonction "Find", donc je réponds un peu au hasard (désolé)...

As-tu essayé de mettre ton "cherche" en Range plutôt qu'en String ?
Ou alors peut-être mettre cherche = Feuil10.Columns(11).Find(valeur).Address et Range(cherche).Select
 

laetitia90

XLDnaute Barbatruc
bonjour tous
VB:
Private Sub Label18_Click()
Dim a As Range
Set a = Feuil10.[k:k].Find(What:=Label18, LookIn:=xlValues, LookAt:=xlWhole)
If Not a Is Nothing Then MsgBox a.Address Else MsgBox "pas trouve"
End Sub
 

Calvus

XLDnaute Barbatruc
Bonjour à tous,

Merci de vos réponses
Alors, j'avais d'abord déclaré le "cherche" en range, et devant l'erreur 91 d'excel, je l'ai déclaré en string.
Première erreur.

Ce qu'il me manquait en fait, c'était le "Set" ! Merci Laeti

Le code est donc :
VB:
Private Sub Label18_Click()
Dim valeur As String, cherche As Range
valeur = Label18.Caption
Set cherche = Feuil10.Columns(11).Find(valeur)
Feuil10.Activate
cherche.Select
End Sub

Il est fonctionnel.
Pensez vous que je doive rajouter quelque chose ? comme LookIn:=xlValues, LookAt:=xlWhole ou n'est ce pas nécessaire.
A part la gestion d'erreur évidemment.

En tout cas, merci à tous et à bientôt.
 

Si...

XLDnaute Barbatruc
Salut,

J'avais annoncé que je continuerais à se (r) vir , n'est-ce pas Laeti !

Avec Find, tu auras une erreur quand l'emplacement sera inexistant, ou la donnée ne sera pas présente.
D’où, pour gérer ces cas,
VB:
Private Sub Label18_Click()
  On Error Resume Next                                                                                  ‘cas général pour ne pas se casser la tête
  Application.Goto Feuil10.[K:K].Find(Label18, LookAt:=xlWhole)       ‘j’y go pour éviter des résultats surprenants avec Select
End Sub

Nota la présence de la variable booléenne xlWhole (ou autres) peut s’avérer indispensable pour éviter des réponses inattendues selon le contexte.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…