Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres Modifier automatiquement une suite de cellule selon la date du jour

Tmdu79

XLDnaute Nouveau
Bonjour à tous,
J'essai sans succès de créer une macro pour qu'au lancement et à la fermeture du fichier le contenu de la cellule J et K soient copier en "dur" lorsque la donnée date d'après la date du jour.

Cela doit permettre de modifier les cellules de saisi sans qu'il n'y ai d'incidence sur les données passées.

Je travail sous Excel 2007.

Je vous remercie d'avance pour votre aide !
 

Pièces jointes

  • test.xlsx
    11.9 KB · Affichages: 15

Staple1600

XLDnaute Barbatruc
Re

Voir ci cela peut t'inspirer
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim DerL&
DerL = Cells(Rows.Count, 2).End(3).Row
For i = 2 To DerL
If Cells(i, 2) > Date Then
Cells(i, 10).Resize(, 2) = Cells(i, 10).Resize(, 2).Value
End If
Next
End Sub
 

Tmdu79

XLDnaute Nouveau
Bonjour Staple1600,

Merci pour ton message, mais je débute vraiment sur VBA.

Peux tu m'expliquer si tu as un moment la ligne de code que tu as saisi, car en faisant un coller sur mon fichier Excel, je ne voit pas la différence.
 

Victor21

XLDnaute Barbatruc
Bonjour, Claudy.

Vous qui en êtes à votre 731° message, savez-vous ce qu'est et à quoi sert un moteur de recherche ?

PS : Bonjour le fil, bien entendu

Edit : @Staple1600 "Du coup", j'ai supprimé les digressions qui suivaient ce post
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Du coup Assailli d'un doute, j'ai relu tout le fil et je vois que j'ai manqué de précision
Le code que j'ai posté doit être mis dans ThisWorkBook
(et non pas dans un module standard)
Et j'ai ajouté quelque commentaires dans le code
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'C'est une procédure événementielle 
'(à ne pas placer dans un Module standard comme Module1)
Dim DerL&
DerL = Cells(Rows.Count, 2).End(3).Row
For i = 2 To DerL
If Cells(i, 2) < Date Then ' si inférieur à date du jour
Cells(i, 10).Resize(, 2) = Cells(i, 10).Resize(, 2).Value ' alors valeurs seules en colonne J et K
End If
Next
End Sub
 
Dernière édition:

Tmdu79

XLDnaute Nouveau
hum fuir non, impressionné oui. merci beaucoup pour ton aide Staple1600, le code fonctionne, cependant comment le faire fonctionner sur cet onglet uniquement lorsque le fichier excel comporte plusieurs onglets ?

- Deuxième question, comment faire si je souhaite intégrer une autre colonne (L) dans la ligne de code ?
Merci d'avance
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…