affichage erroné des dates

etigi

XLDnaute Junior
Bonjour à tous,

j'ai péniblement mis en place une macro (qui fonction très bien, d'ailleurs) sauf les dates,
cette macro m'affiche des dates erronées ou 01-jan-1900.

Je ne sais pas pourquoi, si quelqu'un pouvait m'éclairer, se serait génial.

Cette macro est la suivante :

Sub creatfeuille()
Dim sh As Worksheet
Dim i As Integer
Dim NomF As String

' recherche du numéro
On Error Resume Next
If Err > 0 Then Err.Clear
For i = 1 To 100
Sheets(i).Activate
' numéro trouvé
If Err.Number > 0 Then Exit For

Next i

With Sheets("model1")
.Copy after:=Sheets(Sheets.Count - 1)

'Nomme la nouvelle feuille avec le nom contenu en C6 de Sheets("RECAP")
ActiveSheet.Name = Sheets("RECAP").Range("C6").Value
'Ajout du numéro de facture dans la nouvelle feuille
ActiveSheet.Range("F18") = "FACTURE N°" & Sheets("RECAP").Range("C6").Value
'Mémorisation du nom de la dernière feuille pour l'utiliser en tant qu'hyperlien plus bas
NomF = ActiveSheet.Name

Range("Q26") = i
Range("R26") = Format(Now, "dd/mm/yyyy")
Range("F16") = i

End With

With Sheets("Recap")
Dim dl1 As Long ' dernière ligne

dl1 = .Range("a65536").End(xlUp).Row + 1
'création du lien hypertext dans la feuille RECAP en prenant le nom de la dernière feuille créée
.Range("C" & dl1).Hyperlinks.Add Anchor:=.Range("C" & dl1), Address:="", SubAddress:= _
"'" & NomF & "'!A1", TextToDisplay:=NomF

.Range("b" & dl1).Value = Format(Now, "dd/mm/yyyy")
.Range("a" & dl1).Value = i
'Incrémentation pour la prochaine facture
.Range("C6").Value = .Range("C6").Value + 1
'Inscription des formules dans la feuille RECAP
'pour récupérer les données des factures
.Range("L" & dl1) = "=" & Sheets(NomF).Name & "!F16" 'Inscription Date
.Range("D" & dl1) = "=" & Sheets(NomF).Name & "!F22" 'Réf Clt
.Range("E" & dl1) = "=" & Sheets(NomF).Name & "!Q14" 'Sté
.Range("F" & dl1) = "=" & Sheets(NomF).Name & "!Q16" 'Nom
.Range("G" & dl1) = "=" & Sheets(NomF).Name & "!Q18" 'Adresse
.Range("H" & dl1) = "=" & Sheets(NomF).Name & "!Q20" 'CP
.Range("I" & dl1) = "=" & Sheets(NomF).Name & "!S20" 'Ville
.Range("M" & dl1) = "=" & Sheets(NomF).Name & "!F22" 'Réf Clt
.Range("N" & dl1) = "=" & Sheets(NomF).Name & "!T34" 'loyer
.Range("O" & dl1) = "=" & Sheets(NomF).Name & "!W34" 'TVA s/loyer
.Range("P" & dl1) = "=" & Sheets(NomF).Name & "!T35" 'charges
.Range("Q" & dl1) = "=" & Sheets(NomF).Name & "!K31" 'propriétaires
.Range("R" & dl1) = "=" & Sheets(NomF).Name & "!Z64" 'total TTC
.Range("S" & dl1) = "=" & Sheets(NomF).Name & "!I62" 'frais de gestion HT
.Range("T" & dl1) = "=" & Sheets(NomF).Name & "!I63" 'TVA s/gestion
.Range("U" & dl1) = "=" & Sheets(NomF).Name & "!I64" 'gestion TTC
End With

End Sub
 

nolich

XLDnaute Occasionnel
Re : affichage erroné des dates

Bonsoir etigi, bonsoir à toutes et à tous :)

j'ai péniblement mis en place une macro (qui fonction très bien, d'ailleurs) sauf les dates,
cette macro m'affiche des dates erronées ou 01-jan-1900.

Je ne sais pas pourquoi, si quelqu'un pouvait m'éclairer, se serait génial.

Cette macro est la suivante :

Sub creatfeuille()
Dim sh As Worksheet
Dim i As Integer
Dim NomF As String

' recherche du numéro
On Error Resume Next
If Err > 0 Then Err.Clear
For i = 1 To 100
Sheets(i).Activate
' numéro trouvé
If Err.Number > 0 Then Exit For

Next i

With Sheets("model1")
.Copy after:=Sheets(Sheets.Count - 1)

'Nomme la nouvelle feuille avec le nom contenu en C6 de Sheets("RECAP")
ActiveSheet.Name = Sheets("RECAP").Range("C6").Value
'Ajout du numéro de facture dans la nouvelle feuille
ActiveSheet.Range("F18") = "FACTURE N°" & Sheets("RECAP").Range("C6").Value
'Mémorisation du nom de la dernière feuille pour l'utiliser en tant qu'hyperlien plus bas
NomF = ActiveSheet.Name

Range("Q26") = i
' Je suppose que celle-ci ne pose pas de problème
Range("R26") = Format(Now, "dd/mm/yyyy")
' Par contre celle-ci me surprend un peut quand la cellule est réutilisée
Range("F16") = i

End With

With Sheets("Recap")
Dim dl1 As Long ' dernière ligne
' Je suppose que celle-ci ne pose pas de problème non plus
.Range("b" & dl1).Value = Format(Now, "dd/mm/yyyy")
.Range("a" & dl1).Value = i

'Inscription des formules dans la feuille RECAP
'pour récupérer les données des factures
' Par contre celle-là m'intrigue car tu utilises F16 à laquelle tu avais
'attribué la valeur de i précedemment

.Range("L" & dl1) = "=" & Sheets(NomF).Name & "!F16" 'Inscription Date
End With

End Sub

Par ailleurs, une instruction comme celle-ci (tes affectations) :

.Range("L" & dl1) = "=" & Sheets(NomF).Name & "!F16

peuvent être modifiées ainsi :

.Range("L" & dl1) = "=" & NomF & "!F16

car Sheets(NomF).Name est NomF

En espérant t'avoir aidé :confused:

@+
 

gfortin9

XLDnaute Occasionnel
Re : affichage erroné des dates

Allô!

La date s'affiche correctement ici.

As-tu testé en inscrivant une date à la main ?

As-tu vérifié le format date dans le Panneau de configuration > Options régionals et linguistiques > bouton Personnaliser > onglet Date ??

GFortin
 

kjin

XLDnaute Barbatruc
Re : affichage erroné des dates

Bonjour,
Tu ferais passer ton fichier allégé, ça ne serait que mieux parce que là...
On Error Resume Next
If Err > 0 Then Err.Clear
For i = 1 To 100
Sheets(i).Activate
' numéro trouvé
If Err.Number > 0 Then Exit For
Next i
A quoi sert cette partie du code ? Il y a forcément au moins une feuille !

With Sheets("model1")
.Copy after:=Sheets(Sheets.Count - 1)
Le nb de feuilles t'es donné là

NomF = ActiveSheet.Name
Range("F16") = i :confused:
With Sheets("Recap")
.Range("L" & dl1) = "=" & Sheets(NomF).Name & "!F16" 'Inscription Date :confused:
Bin là forcément, il y a pb !
A+
kjin
 

Discussions similaires

Statistiques des forums

Discussions
313 061
Messages
2 094 929
Membres
106 130
dernier inscrit
styve