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 :

portée d'une variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Par défaut portée d'une variable
    Bonjour,

    SVP, j'ai un probleme avec les variables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For LigP = 4 To DerLig
     
                    Select Case .Range("G" & LigP).Value
     
                        Case "Janvier"
                            DebJanvier = LigP
                            MsgBox (DebJanvier)
    DebJanvier me retourne la valeur de LigP entre le select et le end select.
    mais si je l'appele en dehors de select end select j'ai une valeur 0.
    comment je peux faire pour la rendre visible partout?

    Merci bcp

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    La variable LigP change de valeur sur l'instruction 'Next'.
    Il faudrait que tu montres à quel endroit du code tu en as besoin sans la trouver.

    PGZ

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Par défaut
    et coment je peux faire cela?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour,

    Peux tu nous montrer ton code complet.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Par défaut
    ok
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
     
    Sub planningOctobre(iIndexMois As Long)
    '-----------------------------------------------------------------------------------------
    '                                Déclarations
    '-----------------------------------------------------------------------------------------
    Dim Fso As Scripting.FileSystemObject
    Dim SourceFolder As Scripting.Folder
    Dim FileItem As Scripting.File
     
    Dim Nchaine As String, Ndebut As String, Nfin As String
    Dim Mchaine As String, Mdebut As String, f1mois As String
    Dim name As String, namechemin As String
    Dim Repertoire As String
    Dim fPnom As String, fPnom1 As String, f1nom As String
    Dim valListe As Double, valAbs As Double
    Dim valListe1 As Double, valAbs1 As Double
     
    Dim DerLig As Long, LigP As Long
    Dim DerLig1 As Long, Lig1 As Long
    'Dim DebJanvier As Long, DebFevrier As Long
    Dim LigBo As Long, DerCel As Long, DerCel1 As Long
    Dim listeRH As Worksheet
    '-----------------------------------------------------------------------------------------
    '                                 Traitements
    '-----------------------------------------------------------------------------------------
    Repertoire = Worksheets("Plannings Absences").Range("AP" & 518).Value
     
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set SourceFolder = Fso.GetFolder(Repertoire)
    Set listeRH = Sheets("Liste des ressources & Activité")
     
    'Boucle sur tous les fichiers du répertoire
        For Each FileItem In SourceFolder.Files
        name = FileItem.name
        namechemin = Repertoire & FileItem.name
     
            'fnom renvoie le nom extrait du nom de fichier
            Nchaine = FileItem.name
            Ndebut = InStr(1, Nchaine, " ", vbTextCompare) + 1
            Nfin = InStr(1, Nchaine, "_", vbTextCompare)
            f1nom = Mid(Nchaine, Ndebut, Nfin - Ndebut)
     
            'fmois renvoie le mois extrait du nom du fichier
            Mchaine = FileItem.name
            Mdebut = Right(Mchaine, 9)
            f1mois = Mid(Mdebut, 1, 2)
     
            'récupération de l'indice du mois
            If iIndexMois = "01" Then
                mois = "Janvier"
            End If
     
            If iIndexMois = "02" Then
                mois = "Février"
            End If
     
            If iIndexMois = "03" Then
                mois = "Mars"
            End If
     
            If iIndexMois = "04" Then
                mois = "Avril"
            End If
     
            If iIndexMois = "05" Then
                mois = "Janvier"
            End If
     
            If iIndexMois = "06" Then
                mois = "Juin"
            End If
     
            If iIndexMois = "07" Then
                mois = "Juillet"
            End If
     
            If iIndexMois = "08" Then
                mois = "Aout"
            End If
     
            If iIndexMois = "09" Then
                mois = "Septembre"
            End If
     
            If iIndexMois = "10" Then
                mois = "Octobre"
            End If
     
            If iIndexMois = "11" Then
                mois = "Novembre"
            End If
     
            If iIndexMois = "12" Then
                mois = "Décembre"
            End If
     
            'DerLig = Sheets("Plannings Absences").Range("A" & Rows.Count).End(xlUp).Row
            'MsgBox (DerLig)
     
            With Sheets("Plannings Absences")
     
                For LigP = 4 To DerLig
     
                Select Case .Range("G" & LigP).Value
     
                    Case "Janvier"
                        DebJanvier = LigP
     
                    Case "Février"
                        DebFevrier = LigP
     
                    Case "Mars"
                        DebMars = LigP
     
                    Case "Avril"
                        DebAvril = LigP
     
                    Case "Mai"
                        DebMai = LigP
     
                    Case "Juin"
                        DebJuin = LigP
     
                    Case "Juillet"
                        DebJuillet = LigP
     
                    Case "Aout"
                        DebAout = LigP
     
                    Case "Septembre"
                        DebSeptembre = LigP
     
                    Case "Octobre"
                        DebOctobre = LigP
     
                    Case "Novembre"
                        DebNovembre = LigP
     
                    Case "Décembre"
                        DebDecembre = LigP
     
                    Case Else
     
                End Select
            next LigP
        end with
    Next FileItem
    End Sub
    moi je veux reccupérer les valeurs des DebMois, car j'en aurai besoin apres dans mon traitement

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Plutôt dur à avaler, tout çà !...

    Regarde un peu iuci, déjà :

    tout celà


    I
    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
    f iIndexMois = "01" Then
                mois = "Janvier"
            End If
     
            If iIndexMois = "02" Then
                mois = "Février"
            End If
     
            If iIndexMois = "03" Then
                mois = "Mars"
            End If
     
            If iIndexMois = "04" Then
                mois = "Avril"
            End If
     
            If iIndexMois = "05" Then
                mois = "Janvier"
            End If
     
            If iIndexMois = "06" Then
                mois = "Juin"
            End If
     
            If iIndexMois = "07" Then
                mois = "Juillet"
            End If
     
            If iIndexMois = "08" Then
                mois = "Aout"
            End If
     
            If iIndexMois = "09" Then
                mois = "Septembre"
            End If
     
            If iIndexMois = "10" Then
                mois = "Octobre"
            End If
     
            If iIndexMois = "11" Then
                mois = "Novembre"
            End If
     
            If iIndexMois = "12" Then
                mois = "Décembre"
            End If
    se remplace par (tout simplement) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mois = Format(DateSerial(1, Val(iIndexMois), 1), "mmmm")
    au lieu de tous ses ifs à n'en plus finir ...
    Je continue à regarder ...

    EDIT :Et celà ??
    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
    Select Case .Range("G" & LigP).Value
     
                    Case "Janvier"
                        DebJanvier = LigP
     
                    Case "Février"
                        DebFevrier = LigP
     
                    Case "Mars"
                        DebMars = LigP
     
                    Case "Avril"
                        DebAvril = LigP
     
                    Case "Mai"
                        DebMai = LigP
     
                    Case "Juin"
                        DebJuin = LigP
     
                    Case "Juillet"
                        DebJuillet = LigP
     
                    Case "Aout"
                        DebAout = LigP
     
                    Case "Septembre"
                        DebSeptembre = LigP
     
                    Case "Octobre"
                        DebOctobre = LigP
     
                    Case "Novembre"
                        DebNovembre = LigP
     
                    Case "Décembre"
                        DebDecembre = LigP
     
                    Case Else
     
                End Select
    Je suis à peu près certains de ce que tu sauras, là aussi, te montrer plus astucieux que ce que tu as fait là ...

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    tu as quoi ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    For LigP = 4 To DerLig
    msgbox "ligp = " & LigP  & "derlg = " & derlig

Discussions similaires

  1. Quelle est la portée d'une variable dans une page ASP ?
    Par sauceaupistou dans le forum ASP
    Réponses: 3
    Dernier message: 19/03/2007, 18h16
  2. Porté d'une variable
    Par koolkris dans le forum Delphi
    Réponses: 3
    Dernier message: 08/03/2007, 20h29
  3. Portée d'une variable dans une boucle FOR ?
    Par Neo41 dans le forum C++
    Réponses: 20
    Dernier message: 17/11/2006, 11h14
  4. [XSLT] pb portée d'une variable
    Par NPortmann dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 23/05/2006, 15h53
  5. Portée d'une variable globale
    Par Giill dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 27/12/2005, 10h13

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