Gestion Date 00/01/1900 en VBA

choudoudou

XLDnaute Nouveau
Bonjour,

Dans la macro ci dessous, j'ai un souci dans la gestion de la date #00/01/1900#

Je souhaiterais que dans le cas d'une date #00/01/1900# , le résultat vient mettre "1" dans le mois en cours

Par exemple, aujourd'hui, nous sommes le 08/08/2012 , on a "1" dans la colonne entre "01/08/2012" et "31/08/2012"

Je vous ai mis le fichier excel pour illustrer ma demande

merci d'avance pour aide



-----------------------------------------------

Sub suivi_charge_4()

Dim Lg As Long
Dim LgDer As Long
Dim ClDer As Long
Dim I As Long
Dim J As Long


Sheets("Feuil1").Select

LgDer = Range("A65536").End(xlUp).Row
fin = Range("A" & Cells.Rows.Count).End(xlUp).Row
ClDer = Range("IV1").End(xlToLeft).Column

Date_MAD_realisee = 10


For I = 4 To fin

For J = 13 To 53

If CDate(Cells(I, Date_MAD_realisee)) = "00/01/1900" Then

If CDate(Cells(I, Date)) >= CDate(Cells(1, J)) And CDate(Cells(I, Date)) <= CDate(Cells(2, J)) Then
Cells(I, J) = 1

End If

End If

Next J
Next I

End Sub
 

Pièces jointes

  • Macro.xls
    33 KB · Affichages: 40
  • Macro.xls
    33 KB · Affichages: 52
  • Macro.xls
    33 KB · Affichages: 47

Bebere

XLDnaute Barbatruc
Re : Gestion Date 00/01/1900 en VBA

bonjour Choudoudou
un 0 n'est pas ne date
si format cellule est date, laisse la cellule vide


Code:
Sub suivi_charge_4()

Dim Lg As Long
Dim LgDer As Long
Dim ClDer As Long
Dim I As Long
Dim J As Long


Sheets("Feuil1").Select

  LgDer = Range("A65536").End(xlUp).Row
  fin = Range("A" & Cells.Rows.Count).End(xlUp).Row
  ClDer = Range("IV1").End(xlToLeft).Column

  Date_MAD_realisee = 10
  

For I = 4 To fin
If Not IsDate(Cells(I, Date_MAD_realisee)) Then
    For J = 13 To ClDer
        If Month(Cells(3, J)) = Month(Date) Then
         Cells(I, J) = 1
        End If
    Next J
End If
Next I
  
End Sub
 

Modeste geedee

XLDnaute Barbatruc
Re : Gestion Date 00/01/1900 en VBA

Bonjour,

Dans la macro ci dessous, j'ai un souci dans la gestion de la date #00/01/1900#

en colonne J, utiliser le format :
jj/mm/aaaa;;;@

dans l'instruction
If CDate(Cells(I, Date)) >= CDate(Cells(1, J)) And CDate(Cells(I, Date)) <= CDate(Cells(2, J)) Then
le terme Date est est un mot clé et ne peut etre assimilé à un numero de colonne
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 867
dernier inscrit
XFPRO