IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Appeler un "sheet" de manière implicite


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Appeler un "sheet" de manière implicite
    Bonjour à tous,

    Ma question est sûrement très stupide ... Mais je me lance quand même

    J'ai trois feuilles. Je veux pouvoir les appeler selon le résultat d'une cellule dans une quatrième feuille.

    J'étais parti comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim name as String 
     
    If Range("cellule_maitre")=valeur1 Then
       name= "nom_du_sheet1"
    Else if Range("cellule_maitre")=valeur2 Then
       name= "nom_du_sheet2"
    Else if Range("cellule_maitre")=valeur3 Then
       name= "nom_du_sheet3"
    End if
    Et après, idéalement, j'ai envie de travailler avec le sheet intitulé "nom_du_sheet1". Mais, vba a pas l'air d'aimer sheets(name) ou sheets("name").

    Tout aide serait la bienvenue ! J'ai aucune idée de comment procéder ...

    Un grand merci d'avance ...

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonsoir
    Essaies d'éviter de nommer tes variables par des appellations réservée par vba
    Une proposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub TEST()
    Dim sh As Worksheet
    Dim ShName As String
     
    Select Case Range("cellule_maitre").Value
        Case valeur1: ShName = "nom_du_sheet1"
        Case valeur2: ShName = "nom_du_sheet2"
        Case Valeur3: ShName = "nom_du_sheet3"
    End Select
    On Error Resume Next
    Set sh = ThisWorkbook.Sheets(ShName)
    On Error GoTo 0
    If Not sh Is Nothing Then
        sh.Range("A1") = "toto"
        'suite avec ta feuille dans la variable objet Sh
        Set sh = Nothing
    End If
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo