Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonction Array mais variable

6 réponses
Avatar
Michel MTO
Bonjour à toutes et à tous,

Je fais encore appel au forum, pour trouver une solution, sur une fonction
array vba, je m'explique :

j'utilise ce code :

an = Array("Janvier 2009", "Février 2009", "Mars 2009", "Avril 2009",
"Mai 2009", _
"Juin 2009", "Juillet 2009", "Août 2009", "Septembre 2009", "Octobre
2009", _
"Novembre 2009", "Décembre 2009")
For m = 0 To 11
c = an(m)
If Worksheets(c).range....."condition" then "résultat"
Next m

Je cherche à remplacer
("Janvier 2009", "Février 2009", "Mars 2009", "Avril 2009", "Mai 2009", _
"Juin 2009", "Juillet 2009", "Août 2009", "Septembre 2009", "Octobre
2009", _
"Novembre 2009", "Décembre 2009")
par des variables, il faudrait que je puisse récupérer le mois en toute
lettre (comme çi dessus) et l'année sur 4 chiffres (comme çi dessus), avec
un espace entre le mois et l'année.

Donc le code deviendrait quelquechose comme :
an = Array(mois1, mois2, mois3, mois4, mois5, mois6, mois7, mois8,
mois9, mois10, mois11, mois12)
For m = 0 To 11
c = an(m)
If Worksheets(c).range....."condition" then "résultat"
Next m

Est ce possible ? cela m'éviterait de modi fier mon code à chaque changement
d'année.

Merci pour votre aide

Michel MTO

6 réponses

Avatar
FFO
Salut à toi

Tu pourrais mettre :

Année = Format(Date, "yyyy")
an = Array("Janvier " & Année, "Février " & Année, "Mars " & Année, "Avril "
& Année, "Mai " & Année, _
"Juin " & Année, "Juillet " & Année, "Août " & Année, "Septembre " & Année,
"Octobre " & Année, _
"Novembre " & Année, "Décembre " & Année)
For m = 0 To 11
c = an(m)
If Worksheets(c).range....."condition" then "résultat"
Next m

Celà devrait faire
Dis moi !!!!!
Avatar
Fredo P.
Bonjour
Pour une utilisation sur l'année en cours
Sub yaca()
an = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet",
_
"Août", "Septembre", "Octobre", "Novembre", "Décembre")
For m = 0 To 11
c = an(m) & " " & Year(Date)
' If Worksheets(c).range....."condition" then "résultat"

Next m
End Sub
Avatar
Fredo P.
Eh L'Jacky tu vas plus vite que ton ombre, tu postes pour demain? ou c'est
pour partir en vacance un jour plus tôt?
"Jacky" a écrit dans le message de news:
%23CIz5nt$
Bonjour,

Ou encore (avec l'année en cours sans changer le code)
'---------------
Sub jj()
Dim m(12)
For i = 1 To 12
m(i) = Application.Proper(Format(DateSerial(Year(Date), i, Day(Date)),
"mmmm yyyy"))
MsgBox m(i)
Next
End Sub
'----------------

--
Salutations
JJ


"Michel MTO" a écrit dans le message de news:
4a52f7ba$0$292$
Bonjour à toutes et à tous,

Je fais encore appel au forum, pour trouver une solution, sur une
fonction
array vba, je m'explique :

j'utilise ce code :

an = Array("Janvier 2009", "Février 2009", "Mars 2009", "Avril 2009",
"Mai 2009", _
"Juin 2009", "Juillet 2009", "Août 2009", "Septembre 2009", "Octobre
2009", _
"Novembre 2009", "Décembre 2009")
For m = 0 To 11
c = an(m)
If Worksheets(c).range....."condition" then "résultat"
Next m

Je cherche à remplacer
("Janvier 2009", "Février 2009", "Mars 2009", "Avril 2009", "Mai 2009", _
"Juin 2009", "Juillet 2009", "Août 2009", "Septembre 2009", "Octobre
2009", _
"Novembre 2009", "Décembre 2009")
par des variables, il faudrait que je puisse récupérer le mois en toute
lettre (comme çi dessus) et l'année sur 4 chiffres (comme çi dessus),
avec
un espace entre le mois et l'année.

Donc le code deviendrait quelquechose comme :
an = Array(mois1, mois2, mois3, mois4, mois5, mois6, mois7, mois8,
mois9, mois10, mois11, mois12)
For m = 0 To 11
c = an(m)
If Worksheets(c).range....."condition" then "résultat"
Next m

Est ce possible ? cela m'éviterait de modi fier mon code à chaque
changement
d'année.

Merci pour votre aide

Michel MTO








Avatar
Jacky
Mais non, mais non, je n'ai plus droit aux vacances
C'est que j'ai bricolé sur un classeur qui lui, "travail"(encore) avec des
dates et bien sur j'ai oublié de mettre à jour avant de poster.

--
Salutations
JJ


"Fredo P." a écrit dans le message
de news: OIoJSyt$
Eh L'Jacky tu vas plus vite que ton ombre, tu postes pour demain? ou c'est
pour partir en vacance un jour plus tôt?
"Jacky" a écrit dans le message de news:
%23CIz5nt$
Bonjour,

Ou encore (avec l'année en cours sans changer le code)
'---------------
Sub jj()
Dim m(12)
For i = 1 To 12
m(i) = Application.Proper(Format(DateSerial(Year(Date), i, Day(Date)),
"mmmm yyyy"))
MsgBox m(i)
Next
End Sub
'----------------

--
Salutations
JJ


"Michel MTO" a écrit dans le message de news:
4a52f7ba$0$292$
Bonjour à toutes et à tous,

Je fais encore appel au forum, pour trouver une solution, sur une
fonction
array vba, je m'explique :

j'utilise ce code :

an = Array("Janvier 2009", "Février 2009", "Mars 2009", "Avril 2009",
"Mai 2009", _
"Juin 2009", "Juillet 2009", "Août 2009", "Septembre 2009", "Octobre
2009", _
"Novembre 2009", "Décembre 2009")
For m = 0 To 11
c = an(m)
If Worksheets(c).range....."condition" then "résultat"
Next m

Je cherche à remplacer
("Janvier 2009", "Février 2009", "Mars 2009", "Avril 2009", "Mai 2009",
_
"Juin 2009", "Juillet 2009", "Août 2009", "Septembre 2009", "Octobre
2009", _
"Novembre 2009", "Décembre 2009")
par des variables, il faudrait que je puisse récupérer le mois en toute
lettre (comme çi dessus) et l'année sur 4 chiffres (comme çi dessus),
avec
un espace entre le mois et l'année.

Donc le code deviendrait quelquechose comme :
an = Array(mois1, mois2, mois3, mois4, mois5, mois6, mois7, mois8,
mois9, mois10, mois11, mois12)
For m = 0 To 11
c = an(m)
If Worksheets(c).range....."condition" then "résultat"
Next m

Est ce possible ? cela m'éviterait de modi fier mon code à chaque
changement
d'année.

Merci pour votre aide

Michel MTO












Avatar
Michel MTO
Merci à tous pour la rapidité de vos réponses, même très très rapide cf
Fredo. ;-))

Je vais regarder toutes les solutions proposées et je reviens vers vous

Michel

"Jacky" a écrit dans le message de
news:%23tgtNNu$
Mais non, mais non, je n'ai plus droit aux vacances
C'est que j'ai bricolé sur un classeur qui lui, "travail"(encore) avec des
dates et bien sur j'ai oublié de mettre à jour avant de poster.

--
Salutations
JJ


"Fredo P." a écrit dans le


message
de news: OIoJSyt$
> Eh L'Jacky tu vas plus vite que ton ombre, tu postes pour demain? ou


c'est
> pour partir en vacance un jour plus tôt?
> "Jacky" a écrit dans le message de news:
> %23CIz5nt$
>> Bonjour,
>>
>> Ou encore (avec l'année en cours sans changer le code)
>> '---------------
>> Sub jj()
>> Dim m(12)
>> For i = 1 To 12
>> m(i) = Application.Proper(Format(DateSerial(Year(Date), i, Day(Date)),
>> "mmmm yyyy"))
>> MsgBox m(i)
>> Next
>> End Sub
>> '----------------
>>
>> --
>> Salutations
>> JJ
>>
>>
>> "Michel MTO" a écrit dans le message de news:
>> 4a52f7ba$0$292$
>>> Bonjour à toutes et à tous,
>>>
>>> Je fais encore appel au forum, pour trouver une solution, sur une
>>> fonction
>>> array vba, je m'explique :
>>>
>>> j'utilise ce code :
>>>
>>> an = Array("Janvier 2009", "Février 2009", "Mars 2009", "Avril


2009",
>>> "Mai 2009", _
>>> "Juin 2009", "Juillet 2009", "Août 2009", "Septembre 2009",


"Octobre
>>> 2009", _
>>> "Novembre 2009", "Décembre 2009")
>>> For m = 0 To 11
>>> c = an(m)
>>> If Worksheets(c).range....."condition" then "résultat"
>>> Next m
>>>
>>> Je cherche à remplacer
>>> ("Janvier 2009", "Février 2009", "Mars 2009", "Avril 2009", "Mai


2009",
>>> _
>>> "Juin 2009", "Juillet 2009", "Août 2009", "Septembre 2009",


"Octobre
>>> 2009", _
>>> "Novembre 2009", "Décembre 2009")
>>> par des variables, il faudrait que je puisse récupérer le mois en


toute
>>> lettre (comme çi dessus) et l'année sur 4 chiffres (comme çi dessus),
>>> avec
>>> un espace entre le mois et l'année.
>>>
>>> Donc le code deviendrait quelquechose comme :
>>> an = Array(mois1, mois2, mois3, mois4, mois5, mois6, mois7, mois8,
>>> mois9, mois10, mois11, mois12)
>>> For m = 0 To 11
>>> c = an(m)
>>> If Worksheets(c).range....."condition" then "résultat"
>>> Next m
>>>
>>> Est ce possible ? cela m'éviterait de modi fier mon code à chaque
>>> changement
>>> d'année.
>>>
>>> Merci pour votre aide
>>>
>>> Michel MTO
>>>
>>>
>>
>>
>
>




Avatar
Jacky
Bonjour,

Ou encore (avec l'année en cours sans changer le code)
'---------------
Sub jj()
Dim m(12)
For i = 1 To 12
m(i) = Application.Proper(Format(DateSerial(Year(Date), i, Day(Date)), "mmmm
yyyy"))
MsgBox m(i)
Next
End Sub
'----------------

--
Salutations
JJ


"Michel MTO" a écrit dans le message de news:
4a52f7ba$0$292$
Bonjour à toutes et à tous,

Je fais encore appel au forum, pour trouver une solution, sur une fonction
array vba, je m'explique :

j'utilise ce code :

an = Array("Janvier 2009", "Février 2009", "Mars 2009", "Avril 2009",
"Mai 2009", _
"Juin 2009", "Juillet 2009", "Août 2009", "Septembre 2009", "Octobre
2009", _
"Novembre 2009", "Décembre 2009")
For m = 0 To 11
c = an(m)
If Worksheets(c).range....."condition" then "résultat"
Next m

Je cherche à remplacer
("Janvier 2009", "Février 2009", "Mars 2009", "Avril 2009", "Mai 2009", _
"Juin 2009", "Juillet 2009", "Août 2009", "Septembre 2009", "Octobre
2009", _
"Novembre 2009", "Décembre 2009")
par des variables, il faudrait que je puisse récupérer le mois en toute
lettre (comme çi dessus) et l'année sur 4 chiffres (comme çi dessus), avec
un espace entre le mois et l'année.

Donc le code deviendrait quelquechose comme :
an = Array(mois1, mois2, mois3, mois4, mois5, mois6, mois7, mois8,
mois9, mois10, mois11, mois12)
For m = 0 To 11
c = an(m)
If Worksheets(c).range....."condition" then "résultat"
Next m

Est ce possible ? cela m'éviterait de modi fier mon code à chaque
changement
d'année.

Merci pour votre aide

Michel MTO