Porté d'une variable
Bonjour,
SVP, j'ai un probleme avec les variables.
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
Bonsoir,
Une macro commence par Sub NomMacro() et se termine par End Sub
De plus la portée d'une variable est souvent étroitement dépendante des modules du classeur... Inutile d'espérer un réponse argumentée avec 3 lignes de code extraites d'on ne sait ou !
Cependant, pour le peu qu'on en voit, LigP est la variable de contrôle de ta boucle For... on peut donc normalement voir sa valeur s'incrémenter jusqu'à Next
En dehors de cette boucle on peut raisonnablement penser que sa valeur est 0 avant le For (mais ce n'est pas obligatoire : ça dépend de la macro...) ; après le Next sa valeur est égale à DerLig sauf si elle est réutilisée dans le code...
A+
Et j'ai encore répondu à coté de la question, mais ce n'est pas étonnant : avec une bribe de code on à forcément une vue partielle...
Il semble donc plutôt que c'est DebJanvier qui t'intéresse....
Tu peux donc la rendre visible de partout en déclarant :
Dim DebJanvier avant toute macro dans un module Standart (Module1).
...Mais cette construction ne me semble pas fameuse. (pour ne pas dire franchement mauvaise !)
A+
Bonjour,
oui t'as raison voila tout le code:
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
mois = Format(DateSerial(1, Val(iIndexMois), 1), "mmmm")
'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
MsgBox (DebJanvier & " " & DebFevrier)
End Withce que je veux c que la valeur des DebMois soit garder, car j'en ai besoin pour mon traitement apres.

