VBA- Si format DATE alors Copier valeur - en automatique à l'enregistrement

marion0585

XLDnaute Junior
Bonjour,

Je bloque sur une macro:

comme son nom l'indique je voudrais que cette macro s'effectue en automatique.
Je vous la code en langage normal, j'espère que vous pourrez m'aider.

1. recheche dans la plage $F$2:$F$40 les cellules qui contiennent une date (sachant que dans la colonne j'ai cette formule =SI(C13="OK";AUJOURDHUI();"") )
2. à chaque fois que je trouve une date, je la copie colle valleur. (que sur cette cellule pour ne pas écraser ma formule)
3. cette opération doit s'effectuer à chaque fermeture du fichier en automatique.

Merci d'avance pour votre aide
 

Papou-net

XLDnaute Barbatruc
Re : VBA- Si format DATE alors Copier valeur - en automatique à l'enregistrement

Bonjour marion0585,

Code à écrire dans le module "ThisWorkbook" :

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
For Each cel In Range("F2:F40")
     If IsDate(cel.Value) Then
         ...
     End If
Next
End Sub
Tu remplaces les points de suite (...) par ton code copier-coller.

Espérant avoir répondu.

Cordialement.
 

marion0585

XLDnaute Junior
Re : VBA- Si format DATE alors Copier valeur - en automatique à l'enregistrement

Merci beaucoup,

Pourriez-vous me dire quelle tant du fichier, l'instruction pour que celà copie automatiquement avant de fermé le fichier ou alors en sauvegardant mon fichier?
 

marion0585

XLDnaute Junior
Re : VBA- Si format DATE alors Copier valeur - en automatique à l'enregistrement

j'ai trouvé une autre solution.
On evite la boucle, et j'enregistre avant de sauvegarder (plus sûr)

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If MsgBox("Etes-vous certain de vouloir enregistrer vos données?", 36, "Confirmation") = vbNo Then
Cancel = True
End If
'
Application.Goto Reference:="Statut"
Selection.Copy
Application.Goto Reference:="Statut_bis"
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.ScrollColumn = 2
Range("H1").Select


End Sub



Merci beaucoup en tout cas de votre aide
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 389
Messages
2 087 933
Membres
103 678
dernier inscrit
bibitm