Départ macro suite à chgt valeur cellule

Salut,

C'est cela ?

Private Sub Workbook_Open()

If Year([Date]) * 100 + Month([Date]) > Year([A1]) * 100 + Month([A1]) Then

Macro1

[A1] = Date

End If

End Sub

En fait je n'avais pas compris comment sauvegarder la date en A1 ; je pensais t'avoir répondu mais visiblement non puisque je ne trouve pas ma réponse !

Il y a eu ensuite d'autres post avec mon fichier que l'on m'a renvoyé que j'ai testé et suis donc resté dans cette direction !

Je me passionne pour Excel depuis peu, j'adore ça, mais les codes sont encore pour moi évidents dans la mesure où je n'ai pas les bases ; je me doute que ça doit être gonflant, désolé de t'embéter !

J'ai besoin de comprendre tu pourrais peut être m'expliquer ton code et comment je puis faire une sauvegarde de la date en A1 ; avec une formule classique ou en VB ?

@ toute.

David

Et surtout MERCI

Bonjour,

Private Sub Workbook_Open()
If Year(Date) * 100 + Month(Date) > Year([A1]) * 100 + Month([A1]) Then
Macro1
[A1] = Date
End If
End Sub

Une petite explication pour montrer que j'ai apprécié la solution de eriiic .

En supposant que nous sommes le 01/11/2012 et que la dernière sauvegarde a été faite le 01/10/2012.

Cette derniere date de sauvegarde est enregistrée dans A1.

A l'ouverture du classeur, la procédure Workbook_Open() est lancée.

Year(Date) * 100 + Month(Date) => 2012 * 100 + 11 = 201211.

Year([A1]) * 100 + Month([A1]) = > 2012 * 100 + 10 = 201210.

Le premier nombre étant supérieur au second, la Macro1 va être exécutée, puis la date du jour est enregistrée dans A1.

Les jours suivants, les 2 nombres seront égaux (201211) et la Macro1 ne sera pas lancée.

La prochaine sauvegarde aura lieu au changement de mois.

A+

Bonsoir à tous,

Pas grand chose à ajouter à l'explication de frangy.

Juste pour te répondre, c'est la macro qui sauve la date de sauvegarde en A1 avec : [A1] = Date

eric

Bonsoir tous les deux,

Ah ! que c'est bon de comprendre

Ca n'a pas l'air mal cette solution que je n'avais réussir à interpréter.

Maintenant je peux fermer ce post et vous remercier en tant qu'amateur ; ça fait vraiment du bien d'avoir des gens comme vous ; agréables et compétents......... BRAVO.

Bonne soirée.

........... et ne vous déplaise............ à bientôt, je reviendrai vous sonder pour l'envoi de mail en VB.

David

Bonsoir,

J'ai eu un peu de temps ce soir pour essayer la solution d'Eriiic car je la préfère à l'autre, mais elle ne fonctionne pas de mon côté !

J'ai le droit, à l'ouverture du classeur à un message d'erreur :

"erreur d'exécution '13':

incompatibilité de type

Peut être fais-je quelque chose de travers ?!

Donc............. pas LOL du tout

Merci.

@ toute...


Avec le fichier c'est mieux non ???!!!

10copie-de-david.zip (13.59 Ko)

Je viens de voir que des [ ] mal venus étaient restés autour de Date.

De plus il faut préciser la feuille de A1 (si une autre feuille est active à l'ouverture) :

Private Sub Workbook_Open()
    If Year(Date) * 100 + Month(Date) > Year([Feuil1!A1]) * 100 + Month([Feuil1!A1]) Then
        Macro1
        [Feuil1!A1] = Date
    End If
End Sub

Il faut que A1 soit au format Standard et vide ou avec une date au départ.

eric

13classeur2.xls (20.00 Ko)

Bonsoir,

Remplace

Year([Date]) * 100 + Month([Date]) 

Par

Year(Date) * 100 + Month(Date) 

A+

Bonjour Eriiic, bonjour Frangy,

Merci à vous deux ça fonctionne du tonerre et a le mérite d'être beaucoup plus simple que la sauvegarde de date.

J'aurai appris plein de chose ce week-end grâce à vous.

Bonne continuation et un grand merci.

@ très vite sur le forum.

David

Rechercher des sujets similaires à "depart macro suite chgt valeur"