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 :

[VBA-E] Variables globales sur tout un projet


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de a.dequidt
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut [VBA-E] Variables globales sur tout un projet
    Bonjour à tous,

    J'ai enfin fini pour projet et je vous remercie tous pour avoir été si patient avec moi lors de mon apprentissage de VBA, car maintenant, je peux aider les autres à mon tour La classe non?

    Malgré tout ça, comme je suis encore un peu débutante, mon projet est très foulli, pour utiliser des données un peu partout j'ai mis mes variables dans des cellules.
    J'aimerai utiliser les fameuses variables globales.
    J'ai déja essayer, je vous montre mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Option Explicit
    Dim fichier_logiciel As String
    Dim menu_logiciel As Integer
    Dim chemin_logiciel As String
     
    Private Sub Workbook_Open()
     
        Sheets(1).Select
        Range("A1").Select
        menu_logiciel = Application.CommandBars("Worksheet Menu Bar").Controls.Count
    Ce code je l'ai mis dans "ThisWorkBook" et dans un module, j'utilise fichier_logiciel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Option Explicit
     
    Sub miseajour_marque()
        Dim i, j As Integer
        Dim nomfichier, lenom, Formule As String
     
        Worksheets(1).Unprotect
        Sheets(1).Select
     
     
        Windows("Tarifs.xls").Activate
        onglet_tarif = ActiveWorkbook.Sheets.Count - 2
        Windows(fichier_logiciel).Activate
    Et la! PAF! AIE, ça fait mal ...

    Erreur: fichier_logiciel n'est pas définie,

  2. #2
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    Pour utiliser une variable globle à tout le projet, il faut que tu mettes ta variable dans un module comme ceci :

    Public fichier_logiciel as string

    Puis tu peux l'utiliser partout.

    Ton problème vient du fait que ta variable est définit sur un formulaire et elle n'est que visible par ton formulaire. A la sortie de celui-ci, elle n'existe plus.

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 678
    Par défaut
    bonjour,
    d'une manière générale, j'utilise un module pour mettre toutes les variables utilisées. Pense à bien les commentées, si leur nom n'est pas assez explicite
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  4. #4
    Membre confirmé Avatar de a.dequidt
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Option Explicit
    Public fichier_logiciel As String
    Public menu_logiciel As Integer
    Public chemin_logiciel As String
    Public onglet_tarif As Integer
    Public nombre_tableau As Integer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Windows("Tarifs.xls").Activate
        Sheets(marque).Select
        With Range("A2:A" & Range("A65535").End(xlUp).Row)
            Set c = .Find(reference, LookIn:=xlValues)
            If Not c Is Nothing Then
                Workbooks(fichier_logiciel).Cells(l, 2).Value = Cells(c.Row, 1).Value
    Et la fichier_logiciel = "" !!!!

  5. #5
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 678
    Par défaut
    c'est que la variable nn'a pas été initialisée... :p
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  6. #6
    Membre confirmé Avatar de a.dequidt
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Workbook_Open()
     
        Sheets(1).Select
        Range("A1").Select
        menu_logiciel = Application.CommandBars("Worksheet Menu Bar").Controls.Count
     
        fichier_logiciel = ActiveWorkbook.Name
    pourtant si

  7. #7
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 678
    Par défaut
    ton workbook_open tu l'as mis dans quel module ou feuille ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Citation Envoyé par jpcheck Voir le message
    ton workbook_open tu l'as mis dans quel module ou feuille ?
    Il s'agit d'une procédure qui se lance à l'ouverture du classeur, cela n'a pas sa place dans un module ou dans une feuille.

    a.dequit Essaye de remplacer ActiveWorkook par ThisWorkbook pour voir (c'est juste une idée).
    Es-tu sûr de ne pas réinitialiser ta variable autre part ?


    Starec

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

Discussions similaires

  1. Variables Global pour tout le projet
    Par bobo10 dans le forum VB.NET
    Réponses: 2
    Dernier message: 28/01/2010, 09h17
  2. Réponses: 5
    Dernier message: 03/10/2007, 18h18
  3. [VBA-W] Insérer texte sur toutes mes pages word
    Par STEPH69000 dans le forum VBA Word
    Réponses: 1
    Dernier message: 02/01/2007, 11h54
  4. [VBA-E]Variable globale?
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/04/2006, 13h18
  5. utilisation des variables global dans tout le projet
    Par EYENGA Joël dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/01/2006, 10h55

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