Autres Chercher une cellule dans une autre feuille

alain.pierrephie

XLDnaute Junior
Bonjour à tout le forum
Je cale sur un truc qui me semblait simple mais voilà des heures que je tourne en rond, si qqun pouvait m'aider ça serait super.
J'explique mon problème:
Je suis dans l'onglet feuille 1 en A2 qui me marque par exemple "5" comme le cas dans ma pièce jointe
Ce que j'aimerai c'est que si je demande par le biais d'une macro d'aller chercher ce chiffre, mon curseur se place dans la feuille 2 et se retrouve automatiquement sur la cellule "B6 " qui correspond au critère "5" si par exemple je voulais modifier quelque chose dans cette cellule.
Bien sûr ceci n'est qu'un exemple car ma colonne en feuille 2 peut contenir plusieurs centaines d'animaux et j'aimerai que cela se fasse instantanément grâce a une macro.
Merci à ceux qui pourront m'aider
Alain

nb: je suis sur excel 2007
 

Pièces jointes

  • Va chercher la cellule correspondante.xlsm
    9.9 KB · Affichages: 5

Dranreb

XLDnaute Barbatruc
Je n'aime guère qu'on l'appelle le CodeName car ce n'est pas ça.
Le CodeName c'est une propriété String en lecture seule qui reproduit le nom de l'objet Worksheet qui représente la feuille dans la rubrique Microsoft Excel Objet. Or moi je parle de l'objet Worksheet qui porte ce nom et qu'on peut donc désigner par lui.
Ce qui correspondrait un peu mieux c'est la propriété Name du VBComponent correspondant.
 
Dernière édition:

_Thierry

XLDnaute Barbatruc
Re Dranreb

Euh oui certe, mais je ne sais pas comment l'appeller alors ?
"Le nom de code des feuilles que l'on voit pas VBE dans la liste des objets du classeur" (ça fait un peu long LoL !

Pour le lire on l'appelle bien comme ça non ?
VB:
Sub CodeName()

MsgBox "Le Code Name : " & ActiveSheet.CodeName & vbCrLf & _
        "Le Name : " & ActiveSheet.Name & vbCrLf & _
        "Nous allons synchroniser les deux !"

If ActiveSheet.CodeName <> ActiveSheet.Name Then
    ActiveSheet.Name = ActiveSheet.CodeName
End If

End Sub

Mais certe on ne peut pas faire l'inverse, c'est bien en lecture seule, mais donc dacodac dorénavant j'essaierai de penser l'appeller "la propriété Name du VBComponent" au lieu de CodeName, promis ;)

Bon dimanche
@+Thierry
 

alain.pierrephie

XLDnaute Junior
Re Dranreb

Euh oui certe, mais je ne sais pas comment l'appeller alors ?
"Le nom de code des feuilles que l'on voit pas VBE dans la liste des objets du classeur" (ça fait un peu long LoL !

Pour le lire on l'appelle bien comme ça non ?
VB:
Sub CodeName()

MsgBox "Le Code Name : " & ActiveSheet.CodeName & vbCrLf & _
        "Le Name : " & ActiveSheet.Name & vbCrLf & _
        "Nous allons synchroniser les deux !"

If ActiveSheet.CodeName <> ActiveSheet.Name Then
    ActiveSheet.Name = ActiveSheet.CodeName
End If

End Sub

Mais certe on ne peut pas faire l'inverse, c'est bien en lecture seule, mais donc dacodac dorénavant j'essaierai de penser l'appeller "la propriété Name du VBComponent" au lieu de CodeName, promis ;)

Bon dimanche
@+Thierry
Super ça marche au poil c'est exactement ce que je voulais, les gars vous êtes topissimes.
Merci 1000 fois à DRANREB et a toi THIERY pour votre aide précieuse sans vous je n'y serai jamais arrivé.
Je vous souhaite un excellent dimanche et sûrement à une prochaine sur ce forum
Pas de bise ni de serrage de main pour cause de Covid mais croyez moi, le coeur y est.
Encore merci
Alain
 

Dranreb

XLDnaute Barbatruc
oui certe, mais je ne sais pas comment l'appeller alors ?
Au plus court: le nom du Worksheet.
Parce que ce n'est pas un nom de code des feuilles. Les feuilles n'ont pas de nom de code. D'ailleurs ce ne sont pas des objets: ce sont des entités de l'application hôte qui, dans VBA, sont représentées par des objets.
Pour ceux qui ont une propriété CodeName en particulier, ce que VBE montre ce n'est donc pas la liste des objets du classeur, c'est celle des objets du projet VBA provenant d'Excel et servant à représenter ses entités.
 

Discussions similaires

Haut Bas