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 :

Pb de portée de variable


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 61
    Points : 63
    Points
    63
    Par défaut Pb de portée de variable
    Bonjour à tous,

    Voila je suis un débutant en VBA étant plus habitué à Delphi...

    J'ai en effet un Pb que je n'arrive pas à resoudre après avoir initialiser une variable de type Record dans un Sub, je tente d'écrire celle ci dans un fichier séquenciel mais les champs sont désesperement vide, je ne comprend pas pourquoi !!!

    Voici le code du module complet:
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    ' -----------------------------------
    ' Variables globales de l'application
    ' -----------------------------------
    ' Type de donnée nécéssaire à l'application
    ' ---------------------------------------------
    Public Type TParamsAppli
            LoadFilePath As String
            ArchivesFilePath As String
            BeginDate As Date
            EndDate As Date
    End Type
     
    Public ParamsAppli As TParamsAppli
     
    Public Const FileCFG = "Main.CFG"
     
    ' Procedure d'Initialisation
    Private Sub SetDefaultParams()
       With ParamsAppli
            LoadFilePath = "C:\LaurentT7 LASER\"
            ArchivesFilePath = "C:\LaurentT7 LASER\Backup T7"
            BeginDate = Date
            EndDate = Date
       End With
       SaveParams
    End Sub
     
    'Chargement des paramètres au démarrage de l'application
    Public Sub LoadParams()
        On Error GoTo ErrorHandler
        With ParamsAppli
          Open MainPath + FileCFG For Input As #1
            While Not EOF(1)
              Line Input #1, LoadFilePath
              Line Input #1, ArchivesFilePath
              Line Input #1, BeginDate
              Line Input #1, EndDate
            Wend
          Close #1
        End With
        Exit Sub
    ErrorHandler: SetDefaultParams
    End Sub
     
    'Sauvegarde des paramètres au démarrage de l'application
    Public Sub SaveParams()
       On Error GoTo ErrorHandler
       Open MainPath + FileCFG For Output Shared As #1
       With ParamsAppli
             Print #1, LoadFilePath          '  -->  là est le Pb....
             Print #1, ArchivesFilePath     '  -->  les champs sont vides !!
             Print #1, BeginDate
             Print #1, EndDate
          Close #1
        End With
        Exit Sub
    ErrorHandler: MsgBox ("Problème avec le fichier de configuration")
    End Sub
    En attendant réponse de votre part
    Merci d'avance

    Amicalement Laurent
    C++ BUILDER & DELPHI

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bosoir,

    Pour lire ou écrire les champs de ta variable tu dois les préfixer d'un point (.)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      With ParamsAppli
            .LoadFilePath = "C:\LaurentT7 LASER\"
            .ArchivesFilePath = "C:\LaurentT7 LASER\Backup T7"
            .BeginDate = Date
            .EndDate = Date
       End With
    Ajoute Option Explicit en tete de ton module, ca évite ce genre de bourde.

    Cordialement,

    Tirex28/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 61
    Points : 63
    Points
    63
    Par défaut
    Impeccable ça marche !!

    Merci à toi Tirex28
    Amicalement Laurent
    C++ BUILDER & DELPHI

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

Discussions similaires

  1. [FLASH MX] Portée des variables ???
    Par mic79 dans le forum Flash
    Réponses: 2
    Dernier message: 08/02/2005, 10h21
  2. Portée des variables vbscript vers ASP
    Par Immobilis dans le forum ASP
    Réponses: 3
    Dernier message: 03/11/2004, 10h14
  3. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34
  4. [Portée] portée des variables
    Par parksto dans le forum Langage
    Réponses: 7
    Dernier message: 09/05/2004, 21h05
  5. [FLASH MX 2004][XML]portée de variable
    Par marco_ dans le forum Flash
    Réponses: 8
    Dernier message: 29/04/2004, 15h47

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