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 :

Variable worksheet (feuille)


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 44
    Points : 31
    Points
    31
    Par défaut Variable worksheet (feuille)
    Bonjour,

    Je souhaite une macro avec la nom de la feuille en variable.

    Grace à la F.A.Q., j'arrive à un bout de code.

    déclaration variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim varFeuille As Worksheet
    Prog 01
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub CommandButton1_Click()
    'CHARGEMENT_PROGRAMME_01
    Set varFeuille = Sheets("PROG 01")
    Call CHARGEMENT_PROGRAMME
    Set varFeuille = Nothing
    End Sub

    PROGRAMME CHARGEMENT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub CHARGEMENT_PROGRAMME()
    Application.ScreenUpdating = False
        Sheets(varFeuille).Select
        Range("A3").Select
        Selection.Copy
     
        Sheets(FEUILLE01).Select
        Range("C4").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False 
    End Sub
    Le problème ça bloque à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(varFeuille).Select
    Cela m'affiche varFeuille=nothing.

    Je doit me tromper sur la déclaration de la variable:
    Dim varFeuille As Worksheet
    Set varFeuille= ???


    Pouvez-vous m'aider SVP.
    Merci d'avance

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    ta variable a une portée "procédure", c'est à dire que tu ne peux pas l'utiliser dans une autre procédure

    tu as deux solutions :

    - augmenter la portée de ta variable en la déclarant en haut du module (par exemple)
    - transmettre cette variable en tant qu'argument de la procédure qui en a besoin, en créant simplement un paramètre dédié dans ta procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Macro1
    Dim UneFeuille As WorkSheet
    Set UneFeuille = Thisworkbook.Worksheets("Feuil1")
    Macro2 UneFeuille
    End Sub
     
    Sub Macro2(MaFeuille as Worksheet)
        MsgBox MaFeuille.Name
    End Sub

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2016
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2016
    Messages : 44
    Points : 31
    Points
    31
    Par défaut
    Merci pour ta réponse très rapide.

    C'est parfait !!!

    merci beaucoup

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour, bonjour !

    Tout ceci est inutile quand la feuille de calculs fait partie du classeur contenant le code ‼

    Il suffit juste d'utiliser la variable objet la définissant déjà, à savoir son CodeName

    Voilà, voilà !

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Affectation de feuille à une variable worksheet
    Par eno97 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/10/2013, 12h05
  2. Calcul avec un nombre variable de feuilles
    Par Pantagruel92 dans le forum Excel
    Réponses: 8
    Dernier message: 11/01/2012, 15h58
  3. variable de feuille
    Par rougedragon dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/06/2011, 04h56
  4. Selection variable de feuilles
    Par RichSant dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/06/2010, 13h44
  5. Vba ne prends pas ma variable (worksheet)
    Par choub dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/06/2008, 17h57

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