Problème de format date dans VBA

berlan

XLDnaute Nouveau
Bonjour,

Suite à l'utilisation d'une macro de base de données, je rencontre un problème... En effet, lors de la création de la BDD tout se déroule très très bien mais dans une série de colonnes concernant des dates (jj/mm/aaaa), les dates apparaissent comme suit : mm/jj/aaaa dans la BDD !!

Après quelques recherches, mon problème vient donc de l'interprétation de VBA :

"La meilleure méthode est l'utilisation de la fonction DateValue() qui fait fi du format date du panneau de configuration. Comme chaque composante (année, mois, jour) de la fonction est spécifiée dans les paramètres de la fonction, cela ne laisse aucune place à Excel (vba) à l'interprétation."

Mais comment intégrer ce paramètre dans ma macro sachant que j'appelle des lignes composées de "montants", "Textes", ... et de "DATES" !!

Merci de votre aide car là je suis perdu...

Berlan

Ci-dessous ma macro :

Sub MAJ_RAO()
Dim feColl, sDat(), f%, oDat, i&, j&, n&
Dim pCol%, pLig$
'================================================= ================
'PARAMETRES :
pCol = 44 'Nombre de colonnes à traiter
pLig = 367 'Première ligne utilisable dans la feuille "Synthese"
feColl = Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k") 'Liste des feuilles de données
'================================================= ================
ReDim sDat(1 To pCol, 1 To 1)
For f = 0 To UBound(feColl)
With Sheets(feColl(f))
oDat = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, pCol)).Value
End With
For i = 1 To UBound(oDat, 1)
If Left$(oDat(i, 1), 1) = "D" Then
n = n + 1
ReDim Preserve sDat(1 To pCol, 1 To n)
For j = 1 To pCol
sDat(j, n) = oDat(i, j)
Next j
End If
Next i
Next f
sDat = WorksheetFunction.Transpose(sDat)
With Sheets("Synthese")
.Cells(pLig, 1) = " "
.Range(.Cells(pLig, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, pCol)).ClearContents
.Cells(pLig, 1).Resize(UBound(sDat, 1), pCol) = sDat
End With
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Problème de format date dans VBA

Bonsoir

En lisant ce code VBA, je ne puis m'empêcher d'adresser mes salutations à Roger2327 qui se fait rare sur XLD ces temps-ci.

Essaies de voir avec Format(Madate,"dd/mm/yyyy")
(sur les colonnes incriminées)

PS; En joignant un fichier exemple , il serait plus aisé de t'aider.

EDITION: Bonsoir klin89
 
Dernière édition:

klin89

XLDnaute Accro
Re : Problème de format date dans VBA

Bonsoir à tous,
Bonsoir Staple1600, berlan

Peut-être tout simplement ceci :

VB:
Sub ConvertirDates()
Dim Cellule As Range
For Each Cellule In Range("A1:A20") 'la plage concernée
  If IsDate(Cellule.Value) Then Cellule.Value = Format(Cellule, "dd/mm/yyyy")
Next Cellule
End Sub

Voir à rajouter des tests.
Voir aussi la propriété NumberFormat de l'objet Range

Klin89
 
Dernière édition:

berlan

XLDnaute Nouveau
Re : Problème de format date dans VBA

Bonjour,

Merci pour vos réponse, effectivement Roger2327 est démasqué !
Je vous joint l'exemple du fichier en espérant pouvoir intégrer la modification dans la macro existente.

Comme vous pourrez le voir dans le fichier, dès qu'une date est > au 13 du mois = Changement d'interprétation...

Merci d'avance.

Berlan
 

Pièces jointes

  • BDD.xls
    110 KB · Affichages: 49
  • BDD.xls
    110 KB · Affichages: 48
  • BDD.xls
    110 KB · Affichages: 41

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 220
Membres
103 158
dernier inscrit
laufin