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

VBA - Variable nom de feuille selon contenu cellule

Fredox

XLDnaute Occasionnel
Bonjour,

Je cherche à créer une variable qui serait un nom de feuille selon le text contenu dans une cellule

J'ai fais cela, cela ne fonctionne pas:

VB:
Dim EXEMPLE As String
Dim sh1 As Worksheet
Set sh1 = Worksheets(1).Range("B1")

Possible d'avoir un coup de main ?

Merci
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Fredox,

Vous déclarez sh1 comme étant de type Worksheet et vous lui affectez un objet qui n'est pas de type Worksheet mais de type Range.
Essayez:
VB:
Dim sh1 As Worksheet, plage As Range
Set sh1 = Worksheets(1)
Set plage = sh1.Range("b1")

'ou directement

Dim plage As Range
Set plage = Worksheets(1).Range("b1")
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Je cherche à créer une variable qui serait un nom de feuille …
donc : As String
…selon le text contenu dans une cellule
On ne sait pas comment ce 'text' doit déterminer la feuille Excel dont vous voulez récupérer le nom. Très nébuleux tout ça …
Deux idées peuvent émerger de ce que vous avez essayé.
La première n'a aucun rapport avec ça :
Pour initialiser une variable Worksheet en sorte qu'elle représente une feuille Excel du classeur actif dont le nom est spécifié en cellule B1 de la feuille représentée soit par Me soit par ActveSheet selon le contexte :
VB:
Dim sh1 As Worksheet
Set sh1 = Worksheets(Range("B1").Value)
Pour initialiser une variable String au nom d'une feuille Excel du classeur actif dont le numéro d'ordre dans les onglets est spécifié en cellule B1 de la feuille non précisée et donc assumée :
VB:
Dim sh1 As String
sh1 = Worksheets(Range("B1").Value).Name
 
Dernière édition:

Fredox

XLDnaute Occasionnel
Bonjour mapomme et Danreb,

Merci pour vos réponses et explications.
Je retiens la solution de Danreb qui répond parfaitement à mon besoin, et plus simple.

Merci beaucoup.
 

Discussions similaires

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