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

IHM Discussion :

expliquer variable une fois pour tout le code


Sujet :

IHM

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 90
    Par défaut expliquer variable une fois pour tout le code
    Bonjour,

    J'ai écrit ce code dans un formulaire :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Private Sub Commande56_Click()
     
    Dim Chemin As String, disque As String
     
    disque = InputBox("lettre du disque", "Disque d'enregistrement")
    Chemin = InputBox("nom du dossier dans C:", "Dossier d'enregistrement")
     
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "monfichier", disque & ":\" & Chemin & "\monfichier.xls", True
     
    Dim xlApp1 As Object
    Set xlApp1 = GetObject(, "Excel.Application")
    xlApp1.workbooks.Open disque & ":\" & Chemin & "\monfichier.xls"
     
    End Sub
     
    Private Sub Commande57_Click()
     
    Dim Chemin As String, disque As String, année As String
     
    année = InputBox("Quelle est l'année de travail ?")
    disque = InputBox("lettre du disque", "Disque d'enregistrement")
    Chemin = InputBox("Chemin du dossier dans lequel sont enregistrés les fichiers .xls", "Dossier d'import des données dans Access")
     
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "feuille A", disque & ":\" & Chemin & "\ric" & année & "_A.xls", True
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "feuille B", disque & ":\" & Chemin & "\lb" & année & "_B.xls", True
     
    End Sub
    Donc à chaque clic sur le bouton de commande je précise Chemin et disque qui sont les mêmes.
    Est-il possible par un seul bouton de commande dans le formulaire de définir une fois pour toute par un Inputbox les variables Chemin et disque ?

    J'espère que moi être claire....

    D'avance merci !

    Mumu64

  2. #2
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    il faut déclarer tes variables au niveau du module de code (Section Déclations) au lieu de les déclarer dans les procédures.
    Dans l'éditeur VB sélectioner (Général) dans la liste déroulante de gauche puis (Déclarations) dans celle de droite.
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Option Compare Database
    Option Explicit
    
    Dim Chemin As String, disque As String
    ____________________________________________________________
    
    Private Sub Commande56_Click()
    ' . . .
    End Sub
    ____________________________________________________________
    
    Private Sub Commande57_Click()
    ' . . .
    End Sub
    A+

  3. #3
    Membre confirmé
    Femme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 90
    Par défaut
    Salut LedZeppII,

    Je te remercie pour cette astuce !
    Mais je pense que j'ai mal formulé ma question.
    Je voudrais savoir si je peux mettre qu'un seul Input box pour mes deux "private Sub" ?

    Merci !

  4. #4
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    tu peux créer une Sub appelée par tes deux Sub de boutons
    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
    19
    20
    21
    22
    23
    Option Compare Database
    Option Explicit
     
    Dim Chemin As String, disque As String
    ' ---------------------------------------------------------------------
    Sub DemanderDisqueEtChemin(strOper As String)
    disque = InputBox("lettre du disque", "Disque " & strOper, disque)
    If disque <> "" Then
       Chemin = InputBox("nom du dossier dans " & disque & ":", "Dossier " & strOper, Chemin)
    End If
    End Sub
    ' ---------------------------------------------------------------------
    Private Sub Commande56_Click()
    Call DemanderDisqueEtChemin("exportation")
    ' . . .
    End Sub
    ' ---------------------------------------------------------------------
    Private Sub Commande57_Click()
    Dim année As String
    année = InputBox("Quelle est l'année de travail ?")
    Call DemanderDisqueEtChemin("importation")
    ' . . .
    End Sub
    J'utilise l'argument Default de InputBox pour proposer les valeurs déjà saisies.

    A+

  5. #5
    Membre confirmé
    Femme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 90
    Par défaut
    re,

    Je m'attendais à un autre résultat mais c'est génial de pouvoir le faire comme ça.
    C'est mieux que ce que je voulais faire !!

    MERCI beaucoup pour cette solution !

    @ +

    Mumu64.

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

Discussions similaires

  1. Modifier le PATH une fois pour toute
    Par elitost dans le forum Linux
    Réponses: 8
    Dernier message: 06/09/2009, 13h21
  2. Fonction aléatoire, une fois pour toute ...
    Par Nothingness0x dans le forum Débuter
    Réponses: 19
    Dernier message: 18/11/2008, 22h07
  3. Chargement de mes collections une fois pour toutes
    Par lbrun79 dans le forum Langage
    Réponses: 2
    Dernier message: 14/11/2007, 13h17
  4. Réponses: 4
    Dernier message: 06/04/2007, 13h48
  5. declarer une variable une fois pour toute
    Par rober dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 07/11/2006, 18h35

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