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 :

Modification Variable dans VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut Modification Variable dans VBA
    Bonjour,

    Je voudrais savoir comment pouvoir mettre une variable à 1 ou 0 (comme un bit). Cette variable commune à tout le projet serait modifiable dans différents module ou feuille soit en consultation, soit en modification.

    Actuellement je stocke une variable dans une cellule que je lis et modifie, mais je ne trouve ça pas très pratique.

    Y a-t-il une solution plus facile ?

    Exemple :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Impression_mise_au_rebut()
     
        Sheets("Menu").Unprotect Password:="Lav_Feuil04"
        Sheets("Menu").Range("Q32") = "1"
        Sheets("Menu").Protect Password:="Lav_Feuil04"
        UserForm3.Show
     
    End Sub

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Impression_rea()
     
        If Sheets("Menu").Range("Q32") = "1" Then
            Sheets("Menu").Unprotect Password:="Lav_Feuil04"
            Sheets("Menu").Range("Q32") = ""
            Sheets("Menu").Protect Password:="Lav_Feuil04"
        End If
     
        UserForm3.Show
     
    End Sub

    Merci

  2. #2
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 574
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 574
    Par défaut
    bonjour,

    Nom : Test.gif
Affichages : 305
Taille : 259,6 Ko

  3. #3
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    A priori c'est peut-être l'instruction "Static" qui te serait utile.

    Perso j'utilise pas donc à toi de vérifier
    utilise pour avoir plus d'info
    tu nous tiens au courant

    A bientôt

  4. #4
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 574
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 574
    Par défaut
    en fait il stock dans la cellule Q32 donc une variable public.

  5. #5
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Le tuto suivant explique que c'est bien Static qu'il faut utiliser


    https://mhubiche.developpez.com/Access/variables/#LIII

  6. #6
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 574
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 574
    Par défaut
    je voudrais savoir comment pouvoir mettre une variable à 1 ou 0 (comme un bit). Cette variable commune à tout le projet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    sub Impression_mise_au_rebut()
        Sheets("Menu").Range("Q32") = "1"
    End Sub
     
     
    Sub Impression_rea()
         If Sheets("Menu").Range("Q32") = "1" Then
    End Sub
    si tu penses qu'il s'agit d'une variable Static c'est pas un problème pour moi!

  7. #7
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    @ Thumb down

    On n'a pas assez d'info c'est pourquoi je préconise Static à Public

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    On n'a pas assez d'info c'est pourquoi je préconise Static à Public
    Cette variable commune à tout le projet serait modifiable dans différents module ou feuille soit en consultation, soit en modification.
    exclut suffisamment clairement le choix d'une portée "static".

  9. #9
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 574
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 574
    Par défaut
    Bonjour,
    il me semble que la demande est très claire au contraire le demandeur veut avoir accès dans tout sons projet

    unparia

  10. #10
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour à tous,

    Je maintiens Que l'on ne sait pas si dans le projet les macros s'enchaine les unes dans les autres ( par Call par exemple bien que je ne pense pas que ce soit le cas)

    ou l'appel de macro (par boutons par exemple)

    C'est pourquoi j'ai pensé à Static qui garde l'info tant que le classeur est ouvert alors que Public garde tant que le "End Sub" de la première macro n'est pas exécuté (notion de pile d'appel. Plus rien dans la pile plus rien dans la variable je viens de tester)

    Cependant le véritable problème c'est que dès l'ouverture du classeur les variables sont initialisées peu importe leurs déclarations. On commence à 0 ou "" (vide).

    Je ne connais pas de variable qui réagirait comme une constante (garder l'info pour la fois d'après)

    Donc soit on garde l'info quelque part dans le classeur (le plus simple) soit dans un fichier texte joint (.txt, .ini ...)

    Personnellement j'utiliserai une variable de type static et une macro événementielle pour sauvegarder en fin de travail

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     
    End Sub

  11. #11
    Rédacteur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2013
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

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

    Informations forums :
    Inscription : Août 2013
    Messages : 1 032
    Par défaut
    Bonjour.
    A mon avis le plus simple est de procéder comme indiqué par l'auteur de cette discussion, en enregistrant l'information dans une cellule d'une feuille (masquée) du classeur.
    Je pense aussi à deux autres approches, plus compliquées (en VBA) : enregistrer dans les propriétés du classeur ; enregistrer dans les propriétés de l'utilisateur.
    Voir dans ma signature le tome 6, chapitre 8 (de mémoire).
    Cordialement.

  12. #12
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Septembre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2019
    Messages : 12
    Par défaut
    Bonjour,

    Seul l'auteur de cette discussion peu nous dire si les solutions proposées lui on été favorables

Discussions similaires

  1. [Toutes versions] Insertion formule avec variable dans VBA
    Par Suomiland dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 24/06/2015, 07h30
  2. requete avec variable dans VBA
    Par Mathieu.Nanoux dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 07/09/2007, 13h41
  3. [VBA]Passer une variable dans une formule Excel
    Par David1974 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/01/2006, 16h52
  4. [VBA-E] Intégrer une variable dans la source d'un graphe
    Par girardeau dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/11/2005, 11h12
  5. Réponses: 3
    Dernier message: 01/09/2005, 11h56

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