ribery91720
Messages postés17Date d'inscriptiondimanche 6 janvier 2008StatutMembreDernière intervention27 mars 2009
-
17 juin 2008 à 09:21
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
18 juin 2008 à 09:09
Bonjour à tous
J'ai fabriqué une macro commande de date sous excel mais j'ai un petit problème
Voici ma macro :
Sub ChangeDate()
ligne = 2
colonne = 2
Do While Not (IsEmpty(Cells(ligne, colonne)))
If Cells(ligne, colonne).Value > 200000 Then
Difference = 1900
Else
Difference = 2000
End If
annee = Difference + Int(Cells(ligne, colonne).Value / 10000)
mois = Int((Cells(ligne, colonne).Value - (annee - Difference) * 10000) / 100)
Jour = Cells(ligne, colonne).Value - (annee - Difference) * 10000 - 100 * mois
If mois < 10 Then mois = "0" & mois
If Jour < 10 Then Jour = "0" & Jour
NouvelleDate = Jour & "/" & mois & "/" & annee
MsgBox NouvelleDate
Cells(ligne, colonne).Value = CDate(NouvelleDate)
ligne = ligne + 1
Loop
End Sub
Celle ci me permet de convertir un chiffre en date. Par exemple 60201 deviendra 01/02/2006
208 deviendra 08/02/2000
1123 deviendra 23/11/2000 ect.
Mais j'ai un petit problème, elle marche bien pour la colonne 2 mais lorsque je change la colonne ça ne marche pas. Même si je change aussi la colonne dans la macro.
Je ne comprends pas pourquoi
Lors du débogage ça me surligne en jaune cette ligne :
Cells(ligne, colonne).Value = CDate(NouvelleDate)
Et lorsque je passe sur CDate ça m'écrit incompatibilité de type
Auriez vous une idée s'il vous plait je ne trouve pas
Merci à tous
ribery91720
Messages postés17Date d'inscriptiondimanche 6 janvier 2008StatutMembreDernière intervention27 mars 2009 17 juin 2008 à 10:24
ba ça prend la date de la colonne de mon fichier excel
en l'occurence dans ma cellule j'ai 50100 donc 00/01/2005
ça marche dans la box mais ne l'affiche pas
peut étre le 00??
Si oui comment y remedier??
ribery91720
Messages postés17Date d'inscriptiondimanche 6 janvier 2008StatutMembreDernière intervention27 mars 2009 17 juin 2008 à 10:37
Ok alors comment faire pour enlever le 00 et afficher le mois et l'année lorsqu'il y a 00 dans le jour??
Et sinon comment afficher le 00 avec un autre moyen que CDate??
Merci
ribery91720
Messages postés17Date d'inscriptiondimanche 6 janvier 2008StatutMembreDernière intervention27 mars 2009 17 juin 2008 à 11:44
Ok merci c'est cool ça marche ....quasiment lol
Pour certaines cellules pas toutes ça me met des ####### partout par exemple lorsqu'il y a 102 dans la case
Comment puis je résoudre ce problème
J'ai modifié ma macro pour ne pas afficher es jours et/ou les mois si ceux ci sont égaux a 0 Je ne sais pas si c'est bon.
Sub ChangeDate2()
Ligne = 2
Colonne = 8
Do While Not (IsEmpty(Cells(Ligne, Colonne)))
If Cells(Ligne, Colonne).Value > 200000 Then
Difference = 1900
Else
Difference = 2000
End If
Annee = Difference + Int(Cells(Ligne, Colonne).Value / 10000)
Mois = Int((Cells(Ligne, Colonne).Value - (Annee - Difference) * 10000) / 100)
Jour = Cells(Ligne, Colonne).Value - (Annee - Difference) * 10000 - 100 * Mois
'If Mois < 10 Then Mois = "0" & Mois
'If Jour < 10 Then Jour = "0" & Jour
If Jour = "0" Then
If Mois = "0" Then
NouvelleDate = Annee
Else
NouvelleDate = Mois & "/" & Annee
End If
Else
NouvelleDate = Jour & "/" & Mois & "/" & Annee
End If
'MsgBox NouvelleDate
Cells(Ligne, Colonne).Value = NouvelleDate
Ligne = Ligne + 1
Loop
End Sub
ribery91720
Messages postés17Date d'inscriptiondimanche 6 janvier 2008StatutMembreDernière intervention27 mars 2009 17 juin 2008 à 15:40
Problème résolu
Je vous remerci pour ceux qui m'ont aidé aussi rapidement
Je posterias un nouveau message si j'ai un autre problème car il va y en avoir je suis en stage BTS et je fais du VBA sous excel alors que je n'ai jamais fait ça
alors je me forme
merci