feuille

  • Initiateur de la discussion Alex
  • Date de début
A

Alex

Guest
Bonjour à tous une petite question :

J'ai une macro qui s'effectue pour les feuilles suivante :
For Each feuilles In Worksheets(Array("janvier 2004", "février 2004", "mars 2004", "avril 2004", "mai 2004", "juin 2004", "juillet 2004", "août 2004", "septembre 2004", "octobre 2004", "novembre 2004", "décembre 2004"))
Est -il possible de la faire executer en fonction de la date je voudrait par exemple l'executer pour le mois de fevrier 2005 a janvier 2006 c possible??

Merci d'avance
 
Y

Yeahou

Guest
Bonjour

c'est possible en passant par la propriété datevalue et en l'appliquant à ton nom de feuille
voir ce fil pour exemple, il s'agit d'un tri par date en fonction des noms de feuilles. Tu peux appliquer le même principe, cela devrait te guider.
http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=96058&t=96014

Cordialement, A+
 
Y

Yeahou

Guest
Bonjour

voici un exemple de code qui t'enverra des messages sur les noms des feuilles comprises entre date_deb et date_fin. Tu peux envoyer ton code à la place des messages.

Cordialement, A+

Sub essai()
date_deb = Application.InputBox(Prompt:="Entrez la date de début (jj/mm/aa)", Type:=2)
date_fin = Application.InputBox(Prompt:="Entrez la date de fin(jj/mm/aa)", Type:=2)
For Each feuilles In Worksheets(Array("janvier 2004", "février 2004", "mars 2004", "avril 2004", "mai 2004", "juin 2004", "juillet 2004", "août 2004", "septembre 2004", "octobre 2004", "novembre 2004", "décembre 2004"))
If DateValue(feuilles.Name) >= DateValue(date_deb) And DateValue(feuilles.Name) <= DateValue(date_fin) Then MsgBox feuilles.Name
Next feuilles
End Sub
 
A

Alex

Guest
Merci

mais j'ai essayé est ca n'a pas l'air de marcher :
j'ai fais :

Sub datt()

For Each feuilles In Worksheets
If DateValue(feuilles.name) >= DateValue(1 / 2 / 2005) And DateValue(feuilles.name) <= DateValue(31 / 1 / 2006) Then MsgBox feuilles.name
Next feuilles

End Sub

il y a une incompatibilité de type ca doit venir du DateValue(feuilles.name) je comprend pas !

merci d'avance
 
Y

Yeahou

Guest
Bonjour Alex, le forum

ce code fonctionnera, je te joint mon fichier de test

A+

Sub datt()

For Each feuilles In Worksheets
If Not (IsDate(feuilles.Name)) Then
MsgBox feuilles.Name & " impossible à traiter"
Else
If DateValue(feuilles.Name) >= DateValue("01/02/2005") And DateValue(feuilles.Name) <= DateValue("31/01/2006") Then
MsgBox feuilles.Name & " détectée et traitée"
Else
MsgBox feuilles.Name & " détectée et non traitée"
End If
End If
Next feuilles

End Sub
 

Pièces jointes

  • alex.zip
    10 KB · Affichages: 12
  • alex.zip
    10 KB · Affichages: 16
  • alex.zip
    10 KB · Affichages: 14

Discussions similaires

Statistiques des forums

Discussions
312 699
Messages
2 091 109
Membres
104 763
dernier inscrit
SAMI FADLI