Copier Date

  • Initiateur de la discussion Alyre
  • Date de début
A

Alyre

Guest
Bonjour le forum

je vien vous demander encore de l'aide pour résoudre mon petit problème
je sais que pour vous c'est tres simple, mais pas pour moi

voici en (C2) j'ai une Formule (=AujourdHui) qui donne la Date , tout marche tres bien pour copier la date dans la feuil (Mois)

mais a chaque fois que j'ouvre mon classeur la date se remet a jour.

je voudrais que la date soi figé, qu'elle ne change pas, apres l'avoir copier
ws.Range("C2").Copy ws1.Range("A" & L2 + 1) 'copie la date

Merci a l'avance

' Copie les données de Order Form dans le Mois courant
Sub copie()
Dim ws, ws1 As Worksheet
Dim L1, L2 As Integer
Application.ScreenUpdating = True 'évite les traitements de la macro à l'écran
1
For i = 1 To Sheets.Count
If Sheets(i).Name = "Order Form" Then
Set ws = Sheets("Order Form") 'la variable worksheet ws sera Order form
L1 = ws.Range("A39").End(xlUp).Row 'derniere ligne non vide dans Order form
GoTo 2
End If
Next i
If i = Sheets.Count Then MsgBox "LA FEUILLE ORDER FORM N'EXISTE PAS", vbCritical, "ERREUR DE NOM DE FEUILLE"

GoTo sortie
2
ws.Activate
With ws
If IsDate(Range("C2")) Then 'Test pour voir si C2 contient bien une date
k = Month(Range("C2")) 'on récupère le mois
GoTo 3
Else: MsgBox "LA CELLULE C2 N'EST PAS UNE DATE", vbCritical, "ERREUR DE SAISIE"
Range("C2").Select
GoTo sortie
End If
End With
3
If k + 2 > Sheets.Count Then
MsgBox "UNE FEUILLE MOIS N'EXISTE PAS", vbCritical, "ERREUR DE MOIS"
GoTo sortie
Else:
Set ws1 = Sheets(k + 2)
L2 = ws1.Range("B65536").End(xlUp).Row + 1 'Premeière ligne non vide dans une des feuilles mois
Sheets(k + 2).Select
ActiveSheet.Unprotect
ws.Range("A20:H" & L1).Copy ws1.Range("B" & L2 + 1) 'copie de la plage
ws.Range("C2").Copy ws1.Range("A" & L2 + 1) 'copie la date
ActiveSheet.Protect
Sheets(k + 2).Select
End If
sortie:
Application.ScreenUpdating = True
End Sub

@ ++ alyre
 
Z

zon

Guest
Bonjour à tous,

Alyre remplaces ws.Range("C2").Copy ws1.Range("A" & L2 + 1) 'copie la date par



'au début du code
Dim cell as Range



'ensuite
set cell=ws.Range("C2")
ws1.Range("A" & L2 + 1)=left(cell,2) & "/" & mid(cell,4,2) & "/" & mid(cell,7,3)




Au lieu de copier la cellule qui contient une formule, on récupère le jour, le mois et l'année qu'on sépare par des /....


A+++
 
A

Alyre

Guest
Bonjour à tous

Salut Zon

je suis entièrement sastisfait de ta générosité,

j'ai modifier un peut en coupant la ligne

ws1.Range("A" & L2 + 1)=cell

et sa marche tres bien.

Merci beaucoup de ton dévoument

@+ bonne journé

alyre
 
Z

zon

Guest
Re,


Tu as raisons Alyre, tu n'as pas besoin des left et mid, je les utilise d'habitude pour de la sauvagarde de nom de fichier avec date du jour à partir de la formule Aujourdhui()...



A+++
 

Statistiques des forums

Discussions
312 694
Messages
2 091 040
Membres
104 744
dernier inscrit
paporchet