[AIDE] Problème Macro Commande De Date

Résolu
ribery91720 Messages postés 17 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 27 mars 2009 - 17 juin 2008 à 09:21
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Derniè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

13 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 17
17 juin 2008 à 15:18
salut,

c'est peut-être parce que la valeur est plus grande que la taille de la cellule.
Essaie avec un AutoFit de ta colonne

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
3
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 juin 2008 à 09:35
Salut,
Que vaut NouvelleDate lors de l'erreur?

@+: Ju£i€n
Pensez: Réponse acceptée
0
ribery91720 Messages postés 17 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 27 mars 2009
17 juin 2008 à 10:09
Lors de l'erreur NouvelleDate vaut "la date en quelques sortes

De plus ce que je ne comprends pas c'est que le MsgBox NouvelleDate affiche la bonne date. C'est curieux
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 juin 2008 à 10:13
SAlut,
Justement j'aimerais avoir la valeur de cette date...

@+: Ju£i€n
Pensez: Réponse acceptée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ribery91720 Messages postés 17 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 27 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??
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 juin 2008 à 10:30
Salut,
Bah 00 en jour ne sera jamais une date valide et ne pourra donc pas être convertit en date par CDate voila tout.

@+: Ju£i€n
Pensez: Réponse acceptée
0
ribery91720 Messages postés 17 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 27 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
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 juin 2008 à 10:50
Salut,
Vu que tu crée toi même ta date, tu n'as peu être pas la peine de passer par un Cdate, Mets directement le résultat dans la cellule Excel.

@+: Ju£i€n
Pensez: Réponse acceptée
0
ribery91720 Messages postés 17 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 27 mars 2009
17 juin 2008 à 11:05
Je suis novice
Comment mettre directemenr le resultat dans la cellule excel??
Si tu peux me mettre la ligne de code ça serait cool
Merci
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 juin 2008 à 11:27
Re,
Je ne sais pas si cela pourra répondre à tes besoins mais essaies simplemnt

Cells(ligne, colonne).Value = NouvelleDate

OU BIEN ENCORE

Cells(ligne, colonne).Text = NouvelleDate

@+: Ju£i€n
Pensez: Réponse acceptée
0
ribery91720 Messages postés 17 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 27 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
0
ribery91720 Messages postés 17 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 27 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
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
18 juin 2008 à 09:09
Salut,
Si ton problème est résolu il faut appuyer sur réponse acceptée sur le ou les posts qui t'on aider à le résoudre.

@+: Ju£i€n
Pensez: Réponse acceptée
0