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
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