activer une sheets dont le nom est inscrit dans une cellule

S

Stan

Guest
Bonjour,

je suis novice en la matière et g beau chercher, je ne vois pas...


J'ai créé une feuille de calcul principale où l'on est invité à rentrer des données, notamment un article comptable (exemple, les articles 2031,2188,...).

parallèlement, j'ai créé une feuille par article comptable. je les ai nommé tour à tour "2031", puis "2188" etc...


Je souhaiterais lancer une macro, à partir de ma feuille principale, qui puisse activer la feuille de calcul correspondante à l'article indiqué (suis-je clair ?)

exemple : j'ai rentré 2031 dans la range("B15") de ma feuille principale, je lance ma macro... et j'active la feuille nommée 2031.

Voila, j'ai essayé un truc du style

toto = range("B15")

sheets(toto).activate

mais aucun résultat....

C'est peut-être tout simple... mais je ne vois pas

Merci de votre aide
 
T

ThierryR

Guest
Bonjour Stan,

Il faudrait créer un lien hypertexte activant ta feuille
Voir exemple joint

ThierryR
 

Pièces jointes

  • Classeur.zip
    1.6 KB · Affichages: 30
  • Classeur.zip
    1.6 KB · Affichages: 27
  • Classeur.zip
    1.6 KB · Affichages: 25
S

Stan

Guest
Merci pour ta reponse Thierry,

le lien hypertexte pourrait être une bonne alternative

Mais je dois être plus précis :

mon objectif est de pouvoir activer la feuille de calcul concernée en lançant une macro, car par la suite, je désire faire (de manière automatique via macro) des copier coller des éléments variables contenu dans ma feuille principale vers la feuille 2031, 2188 ou autre...


il faut donc que je trouve le moyen de faire reconnaitre le contenu d'une cellule comme nom de feuille
 
@

@+Thierry

Guest
Bonjour Stan, Thierry, Le Forum

On peut très bien faire ceci en utilisant ta base de code Stan, je pense que si çà ne fonctionnait pas car tu nommes tes feuilles avec des années et c'est probablement au niveau de l'absence de déclaration de variable que çà ne passe pas.

En effet si "Toto" n'est pas déclaré il sera variant et se référera à une valeur numérique si la cellule de référence contient "2031" mais par contre l'instruction Sheets(Toto).Activate attend une chaine de caractères.

Voici une exemple qui devrait mieux fonctionner :

Sub SheetSelection()
Dim TheSheet As String

TheSheet = ActiveCell.Value

On Error GoTo TheEnd
Sheets(TheSheet).Activate

Exit Sub
TheEnd:
MsgBox "Feuille : " & TheSheet & " Non existante"
End Sub

D'où toute l'importance de déclarer correctement les variables.

Sinon je ne peux pas télécharger l'exemple de mon homonyme pour les hyperliens, mais on peux facilement les générer en VBA si nécessaire :

Cet exemple génera un Hyperlink inter-classeur, pour peut que la cellule active contienne bien une string étant un nom de feuille.

Sub CreateHyperlink()
With ActiveSheet
.Hyperlinks.Add Anchor:=ActiveCell, Address:="", _
SubAddress:="'" & ActiveCell.Text & "'!A1"
End With
End Sub


Bon appétit
@+Thierry
 
S

Stan

Guest
Vraiment génial, merci beaucoup


il est vrai que le peu de programmes que j'ai fait jusque là, j'avais laissé tomber la déclaration des variables... dont je ne voyais que très peu l'utilité.


Effectivement, ta remarque était bonne

encore merci pour ton aide ;o)
 

Discussions similaires

Réponses
10
Affichages
579

Statistiques des forums

Discussions
312 765
Messages
2 091 898
Membres
105 092
dernier inscrit
jeremxl