cs_hazzel
Messages postés20Date d'inscriptionjeudi 13 novembre 2008StatutMembreDernière intervention19 juillet 2013
-
25 nov. 2008 à 19:18
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
25 avril 2012 à 16:18
Bonjour à tous,
Je souhaiterai savoir s'il était possible à l'ouverture d'un classeur excel, de prendre en compte la date (inscrite dans une cellule via "(date)" ) et qu'à chaque 1er du mois, une macro d'ouverture inscrit 0 dans chaque cellule d'une zone de colonne définie ? De plus il faudrait que cette macro ne soit executé qu'une fois par mois. Autrement dit, une seule fois à l'ouverture du 1er du mois, et que les ouverture suivante n'entraine pas la mise à 0 ; juqu'au mois suivant.
Merci de votre attention ^_^
ps : une petite question HS : quelle est la commande qui permet sous VBA d'enregistrer le classeur ?
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 25 nov. 2008 à 19:50
Bonjour hazzel
Pour que le code ci-dessous fonctionne, tu dois avoir une cellule nommée DerniereInit dans ta feuille. Celle-ci enregistre la date de la dernière remise à zéro, ce qui permet d'obtenir une raz et une seule en début de mois.
Dans cet exemple, la zone de colonne à remettre à zéro est B1:B30.
Sub auto_open()
Dim zone As Range, r As Range
Set zone = Range("B1:B30")
If Day(Date) = 1 And Month(Range("DerniereInit").Value) <> Month(Date) Then
For Each r In plage
r.Value = 0
Next
Range("DerniereInit").Value = Date
End If
End Sub
Pour enregistrer le classeur, utilise la méthode Save de l'objet Workbook
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 25 nov. 2008 à 20:39
userrrqi115 a tout à fait raison, la procédure événementielle Workbook_Open est préférable à Auto_Open, qui est obsolète. Il vaut mieux également préciser la feuile de calcul sur laquelle s'opère la mise à jour. Avec ces corrections, mon sub devient :
Private Sub WorkBook_Open() Dim zone As Range, r As Range
Set zone = WorkSheets("Feuil1"). Range("B1:B30")
If Day(Date) = 1 And Month(Range("DerniereInit").Value) <> Month(Date) Then
For Each r In zone
r.Value = 0
Next
Range("DerniereInit").Value = Date
End If
End Sub
userrrqi115
Messages postés181Date d'inscriptionmardi 18 novembre 2008StatutMembreDernière intervention 4 février 2011 25 nov. 2008 à 20:05
Hello hazzel,
pour ce qui est de la partie de prendre en compte une date à l'ouverture du classeur il te faut utiliser l'evennement suivant :
Private Sub Workbook_Open() (à saisir dans la fenêtre code de l'objet Workbook)
et de la faire suivre des instructions voulues (sélection d'une cellule, déterminer la date du jour, test sur cette dernière et exécution si test ok)
pour le HS, voici l'instruction te permettant d'enregister le classeur sur lequel tu es:
ActiveWorkbook.SaveAs Filename:="Lecteur:\Dossier\Sous dossier\workbook.xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Je regrette de te donner cela car tu aurais pu tout aussi bien l'obtenir à l'aide de l'enregistreur de macro...
BR
USERRRQI115
Simple user
Great brain
Pensée du jour : " Ouvrez votre esprit, voyez la porte fermée en tant que celle qui n'est pas encore ouverte".
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_hazzel
Messages postés20Date d'inscriptionjeudi 13 novembre 2008StatutMembreDernière intervention19 juillet 2013 26 nov. 2008 à 10:46
Un grand merci à tous,
Pour se qui est de la macro d'ouverture, elle fonctionne à merveille, encore merci ^_^
En se qui concerne la macro pour enregistrer, j'ai bien essayé de la faire en macro automatique, mais à chaque fois le module était vide, et impossible de connaître la formule VBA : /
Dans mon classeur j'ai deja une macro d'ouverture donnant l'heure et la date, auquel j'ai rajouté la macro que vous m'avez conseillé!
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 25 avril 2012 à 10:55
Bonjour, nemo110G
Ouvre ton aide VBA sur le mot ClearContents.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 25 avril 2012 à 11:28
Je n'ai pas ClearContents
Tu es allé dans l'aide VBA, a frappé ClearContents et rien n'a été trouvé ?
Ru es sûr ?
Si oui : avec quelle version de Excel ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 25 avril 2012 à 11:43
Tu es "sûre" !
Ben ... je viens de regarder sur un portable avec Excel 2003 (que je mets rarement en route) ===>> cette rubrique y est bel et bien !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 25 avril 2012 à 11:52
va DANS ton aide VBA. Elle est là pour cela !
Et si installée ===> elle fonctionne fort bien
Si pas installée ===>> à installer dans les plus brefs délais.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 25 avril 2012 à 11:55
Et regarde : je mùe suis même "fendu" pour voir si, en plus, on ne la trouvait pas dans msdn pour Excel 2003 ===>> quelques secondes et ===>>
Tapez le texte de l'url ici. Comment expliques-tu cette différence de réflexes, toi ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 25 avril 2012 à 16:18
Cette nouvelle question n'a plus rien à voir avec l'objet de la présente discussion. C'est évident.
Tu es donc invité à ouvrir une nouvelle discussion, à part entière.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ