J'ai juste besoin d'activer une certaine feuille de calcul. J'ai une variable de type chaîne qui conserve le nom de la feuille de calcul.
La macro suivante vous aiderait-elle ?
Sub activateSheet(sheetname As String)
'activates sheet of specific name
Worksheets(sheetname).Activate
End Sub
En fait, vous voulez utiliser la fonction .Activate. Ou vous pouvez utiliser la fonction .Select comme suit :
Sub activateSheet(sheetname As String)
'selects sheet of specific name
Sheets(sheetname).Select
End Sub
Je vous recommande d'utiliser l'index de la feuille de travail au lieu de son nom. De cette manière, vous pouvez également boucler sur les feuilles de manière dynamique ;
for i=1 to thisworkbook.sheets.count
sheets(i).activate
'You can add more code
with activesheet
'Code...
end with
next i
Cela améliorera également les performances.
Une autre façon de lier (non dynamiquement) un texte pour activer une feuille de calcul sans macros consiste à faire de la chaîne sélectionnée un lien réel. Pour ce faire, il suffit de sélectionner la cellule qui contient le texte et d'appuyer sur CTRL+K, puis de sélectionner l'option/onglet 'Placer dans ce document' ; et de sélectionner l'onglet que vous souhaitez activer. Si vous cliquez sur le texte (qui est maintenant un lien), la feuille configurée deviendra active/sélectionnée.