Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème de dates erronées VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mécano41

XLDnaute Accro
Bonjour à tous,

J'ai un petit problème avec les dates entre feuilles et VBA.

Ci-joint une appli. très simplifiée mais montrant néanmoins les différentes phases où l'on se sert des dates et le problème qui survient à la fin.

Pour info. je travaille sous EXCEL 2010 mais je reste en instructions valides sous 2003 et fichier .xls pour des raisons de compatibilité.

Si quelqu'un peut me dire ce qui ne va pas...

Merci d'avance

Cordialement
 
Re : Problème de dates erronées VBA

Bonjour mécano41,

Le sujet a (encore) été abordé récemment ... prends ta journée (et peut-être la nuit qui suit) et plonge-toi dans ces deux discussions:
TextBox et dates formatées
Expressions régulières
Tu devrais trouver mieux que des pistes!

Prévoir un pique-nique, une pagaie et de l'alcool (ou du paracétamol en quantités industrielles!) ... mais c'est hallucinant 😀
 
Re : Problème de dates erronées VBA

Bonjour,

J'ai eu des problèmes de format de date qui était un conflit entre le format de date de Windows et le format des dates écrites dans les feuilles Excel.

N'ayant pas de contrôle sur le format de date de l'ordinateur des gens utilisant mon fichier, j'ai utilisé cette façon pour m'adapter au format de date de l'ordinateur cible.

,,, je fais détecter le format de date de la machine
,,, puis le sélect case met en variable le format de date détecté
,,, variable qui est ensuite utilisée dans le code.

LeFormatDate = Application.International(xlDateOrder)
Select Case LeFormatDate
Case 0
DDateFormat = "mm/dd/yyyy"
Case 1
DDateFormat = "dd/mm/yyyy"
Case 2
DDateFormat = "yyyy/mm/dd"
Case Else
DDateFormat = "yyyy/mm/dd"
End Select
DateDebut = Format(Worksheets(Address3).Cells(LaLigne, 2), DDateFormat) & " 00:00"

G
 
Re : Problème de dates erronées VBA

Bonjour à tous,

Visiblement, le problème vient lorsque tu colles le transposé de ton tableau T dans la feuille de calcul

Je te propose cette alternative lorsque tu remplis ton tableau T, mais je ne sais pas si c'est satifsaisant

Code:
ReDim T(4, 1)
For Ligne = 1 To Nli
    If Ligne > 1 Then ReDim Preserve T(4, UBound(T, 2) + 1)
    For Colonne = 1 To 4
        If IsDate(Range("A1").Offset(Ligne, Colonne - 1)) Then
            T(Colonne, Ligne) = CLng(Range("A1").Offset(Ligne, Colonne - 1))
        Else
            T(Colonne, Ligne) = Range("A1").Offset(Ligne, Colonne - 1)
        End If
    Next Colonne
Next Ligne
 
Re : Problème de dates erronées VBA

En fait, mon problème n'est pas un problème de compatibilité de format car les formats des dates saisies seront connus : format date en français standard de type jj/mm/aaaa (il n'empêche que j'ajouterai par précaution une utilisation de : Application.International(xlDateOrder)...

Actuellement, dans la première feuille, les dates sont conformes. Lors des filtrages, recopies de feuille à feuille etc ..., le format est bien respecté (dans le filtre sur dates, il faut, certes, mettre les dates en format mm/dd/yyyy sinon le filtre est inversé mais cela me semble normal).

Ce qui ne va pas, c'est lorsque je copie les lignes dans un tableau VBA (déclaré en Variant donc conservant les dates comme telles - ex. dans le tableau : 6 déc 68 = #06/12/1968#).
Lorsque je colle le contenu du tableau dans la feuille 4, les dates (bien que toujours au format Date) sont décalées dans la colonne ; lorsqu'elles sont margées à gauche, elles sont "normales" et lorsqu'elles sont margées à droite, le jour et le mois en ont été inversés! C'est cela que je ne comprends pas...

Ce sont les 15 dernières lignes du Sub Lancement.

Si quelqu'un a une explication...

EDIT TotoTiti2008 : je viens seulement de voir ton message. Je le regarde. Merci

Cordialement
 
Dernière édition:
Re : Problème de dates erronées VBA


Cela fonctionne parfaitement! ; il suffira de reformater les deux colonnes en Date après copie (car dans l'appli tous les formats auront été préalablement effacés)

Encore merci!

Cordialement
 
Re : Problème de dates erronées VBA

Re,

une explication complémentaire de ce que j'ai compris
Quand tu écris dans ton tableau Variant (T), les dates sont bien reconnues
ex. dans le tableau : 6 déc 68 = #06/12/1968#).
Le fait qu'il affiche les # le confirme
par contre, le transpose semble changer les dates en texte, puis l'écriture dans les cellules les soumet à l'interprétation parfois surprenante d'Excel quand on passe par VBA...
Avec des nombres entiers, plus d'interprétation Jour/Mois/Année, d'où le CLng...
 
Re : Problème de dates erronées VBA

... à l'interprétation parfois surprenante d'Excel quand on passe par VBA...

A qui le dis-tu! L'autre jour, j'avais dans l'appli. un test par VBA sur une formule de feuille mise en place par VBA.

La formule rendait VRAI ou FAUX sur la feuille et dans le test en VBA, j'avais mis ="VRAI". Tout allait bien ; je suis sur EXCEL 2010.

Je passe le fichier à quelqu'un en EXCEL 2007. Plus rien ne va... Eh bien 2010 ne comprend que le français "VRAI" et 2007 que l'anglais True (sans guillemets évidemment). Du coup j'ai tout transformé en 1 ou 0 puisque les deux comprennent...les chiffres arabes...! Pénible, non?

Merci pour les explications complémentaires.

Cordialement
 
Re : Problème de dates erronées VBA

Re,

VRAI et FAUX (si ce ne sont pas des textes) dans la feuille de calcul sont des valeurs logiques, elles ne sont pas égales aux textes "VRAI" et "FAUX".
Si tu multiplie un VRAI dans la feuille de calcul par 1, tu obtiendra 1, et 0 pour FAUX
Là où ça devient tordu, c'est qu'en VBA, True vaut -1 et False vaut 0 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

H
  • Question Question
Réponses
4
Affichages
1 K
HaggarduNord
H
R
Réponses
8
Affichages
1 K
R
P
Réponses
15
Affichages
2 K
V
Réponses
4
Affichages
4 K
virginie_kirika
V
X
Réponses
2
Affichages
1 K
XGCATHY
X
S
  • Question Question
Réponses
20
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…