Problème de format Date VBA

Fermé
Cal - Modifié par Cal le 23/01/2012 à 10:02
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 23 janv. 2012 à 17:32
Bonjour,


ça fait deux jour que je bute sur ça, j'espère que vous pourrez m'aider.

J'ai une macro avec laquelle je veux récupérer une colonne de dates qui sont au format français "jj/mm/aaaa". le soucis c'est que VBA passe automatiquement les dates format anglo-saxon "mm/jj/yyyy" MAIS seulement si jour et mois <= 12.

J'ai trouvé sur internet semble t-il la solution à ce soucis mais je dois mal l'utiliser étant un grand débutant du vba. Si quelqu'un pouvais m'expliquer la marche à suivre.

CDate(CSng(cell))

Donc comment je peux faire pour qu'elle reste au format français.
Merci d'avance.
A voir également:

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 23/01/2012 à 11:08
Bonjour,

L'astuce consiste à transformer la date en nombre de série, ce qui est aussi plus pratique à manipuler dans VBA

fais une petite maquette avec la date en A1=1/12/12
B1 et C1 au format standard
B1 te renvoie 41244 : n° de série de la date et C1: 01/12/12

Sub datefr()   
Dim jour As Long   
jour = CLng(Range("A1"))   
Range("B1") = jour   
 With Range("C1")   
     .Value = jour   
     .NumberFormat = "dd/mm/yy;@"   
End With   
End Sub 

edit : rectifié faute de frappe (en gras)!!!
Michel
1
Je fais des test avec ta solution et je te tiens au courant rapidement.

Merci
0
Alors j'ai essayer ta solution tel quel et elle fonctionne parfaitement.
Ptit soucis quand j'essai de l'adapter à ma situation j'obtiens une "erreur d'icompatibilité".

jour = CLng(Range("D2:D" & [D65536].End(xlUp).Row))
With Range("I2:I" & [I65536].End(xlUp).Row)
.Value = jour
.NumberFormat = "dd/mm/yyyy;@"
End With

mes dates sont situées dans la colonne D et aprés exécution de la macro elle sont décallé ( à cause de l'insertion de nouvelle colonne) dans la colonne I

Tu vois d'ou ça pourrait venir?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
23 janv. 2012 à 14:03
Application.ScreenUpdating = False
derlig = Range("D65536").End(xlUp).Row
For lig = 2 To derlig
     Cells(lig, "I") = CLng(Cells(lig, "D"))
End If
Columns("I").NumberFormat = "dd/mm/yyyy;@"
0
Re,

Un edit de ce que j'ai dis : la colonne D se déplace jusqu'à la colonne I mais sur une nouvelle page excel et pas la même.

Donc j'ai retirer le ScreenUpdating. mais j'obtiens toujours cette erreur de "incompatibilité de type". Je suis vraiment mauvais.

Est-ce qu'il ne faudrait pas spécifier les colonne par rapport au fichier ( fichier 1 , fichier 2)?
Si oui, comment je dois procéder sachant que je ne sais pas comment se creer le second fichier ?

je reprend un projet en cour :s. pas tiptop mais j'essai de régler le soucis.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
23 janv. 2012 à 17:32
oui, mais tout ca, il faut le dire AVANT
maintenant tu me dis que c'est sur une nouvelle page puis sur un autre fichier, puis que tu dois créer cet autre fichier...
puis encore ?
excuses moi, mais...
on est bénévoles, certes, mais on ne va pas passer des heures à re-re-re faire des propositions de solution par suite de demandes rédigées à la va vite
:-((
Abandon, désolé
0