Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Rendre active une Macro entre deux dates

5 réponses
Avatar
P
Bonsoir à tous.

J'ai besoin de vos lumières pour ce qui suit.

je suis sous excel 97.

Je suis en train de faire une sauvegarde annuelle de base de données, mais
pour corser le tout, cette dernière est commandée par un CommandBouton et
je souhaiterai qu'il ne soit actif qu'entre le 1er et le 6 du mois de
janvier et là je butte lamentablement. Voici le bout de code que je
triture sans trouver la bonne syntaxe.
De plus je souhaiterai que le CommandBouton ne soit cliquable qu'une seule
fois et seulement entre ces deux dates.

Merci d'avance du généreux coup de pouce que vous pourrez m'apporter.

Sub actionNouvAn()
On Error Resume Next
Nom = Range("datejour").Value'cellule nommée où s'inscrit la date système
du jour
Nom = Format(Nom, "dd/mm")
If Nom >= "01/01" And Nom <= "06/01" Then

' ici mes commandes pour recup les données et les sauvegarder dans un
fichier
' ça c'est fait sans problème

else
MsgBox ("Cette action ne peut être faite qu'entre le 01 et le 06 Janvier
de l'année" & Chr(13) & Chr(13) & "ACTION ANNULEE")
End If
Sheets("accueil").Activate
End Sub

--
prive(point)ma(tiret)boite@ptt.Pasnet
mettre la ponctuation à la place de ce qui est entre guillemets. remplacer
ptt.pasnet par laposte.net
On ne dit pas jerrycan, mais je rigole.

5 réponses

Avatar
poc
Bonsoir
déjà avec
If Date > #1/1/2008# And Date < #6/1/2008# Then macroàlancer
ça permet de lancer votre macro
Cordialement
Poc
"" a écrit dans le message de news:

Bonsoir à tous.

J'ai besoin de vos lumières pour ce qui suit.

je suis sous excel 97.

Je suis en train de faire une sauvegarde annuelle de base de données, mais
pour corser le tout, cette dernière est commandée par un CommandBouton et
je souhaiterai qu'il ne soit actif qu'entre le 1er et le 6 du mois de
janvier et là je butte lamentablement. Voici le bout de code que je
triture sans trouver la bonne syntaxe.
De plus je souhaiterai que le CommandBouton ne soit cliquable qu'une seule
fois et seulement entre ces deux dates.

Merci d'avance du généreux coup de pouce que vous pourrez m'apporter.

Sub actionNouvAn()
On Error Resume Next
Nom = Range("datejour").Value'cellule nommée où s'inscrit la date système
du jour
Nom = Format(Nom, "dd/mm")
If Nom >= "01/01" And Nom <= "06/01" Then

' ici mes commandes pour recup les données et les sauvegarder dans un
fichier
' ça c'est fait sans problème

else
MsgBox ("Cette action ne peut être faite qu'entre le 01 et le 06 Janvier
de l'année" & Chr(13) & Chr(13) & "ACTION ANNULEE")
End If
Sheets("accueil").Activate
End Sub

--
prive(point)ma(tiret)
mettre la ponctuation à la place de ce qui est entre guillemets. remplacer
ptt.pasnet par laposte.net
On ne dit pas jerrycan, mais je rigole.




Avatar
Philippe.R
Bonsoir,

J'utiliserais ceci :

un nom "cefait" créé dans le classeur avec la valeur initiale 0

if month(date)=1 and day(date)<7 and [cefait] <> year(date) then

ton code qui va bien
[cefait]= year(date)

la suite que tu as prévue
--
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
Avec plaisir
http://dj.joss.free.fr/trombine.htm
Philippe.R
"" a écrit dans le message de
news:
Bonsoir à tous.

J'ai besoin de vos lumières pour ce qui suit.

je suis sous excel 97.

Je suis en train de faire une sauvegarde annuelle de base de données, mais
pour corser le tout, cette dernière est commandée par un CommandBouton et
je souhaiterai qu'il ne soit actif qu'entre le 1er et le 6 du mois de
janvier et là je butte lamentablement. Voici le bout de code que je
triture sans trouver la bonne syntaxe.
De plus je souhaiterai que le CommandBouton ne soit cliquable qu'une seule
fois et seulement entre ces deux dates.

Merci d'avance du généreux coup de pouce que vous pourrez m'apporter.

Sub actionNouvAn()
On Error Resume Next
Nom = Range("datejour").Value'cellule nommée où s'inscrit la date système
du jour
Nom = Format(Nom, "dd/mm")
If Nom >= "01/01" And Nom <= "06/01" Then

' ici mes commandes pour recup les données et les sauvegarder dans un
fichier
' ça c'est fait sans problème

else
MsgBox ("Cette action ne peut être faite qu'entre le 01 et le 06 Janvier
de l'année" & Chr(13) & Chr(13) & "ACTION ANNULEE")
End If
Sheets("accueil").Activate
End Sub

--
prive(point)ma(tiret)
mettre la ponctuation à la place de ce qui est entre guillemets. remplacer
ptt.pasnet par laposte.net
On ne dit pas jerrycan, mais je rigole.




Avatar
P
Boudiou, vl'a ti pas que *poc* nous baragouine une bafouille ce *mardi*
depuis le fin fond de sa campagne. :-)

Merci Poc
j'essaie demain et je dis quoi :-)


Bonsoir
déjà avec
If Date > #1/1/2008# And Date < #6/1/2008# Then macroàlancer
ça permet de lancer votre macro
Cordialement
Poc
"" a écrit dans le message de news:

Bonsoir à tous.

J'ai besoin de vos lumières pour ce qui suit.

je suis sous excel 97.

Je suis en train de faire une sauvegarde annuelle de base de données,
mais pour corser le tout, cette dernière est commandée par un
CommandBouton et je souhaiterai qu'il ne soit actif qu'entre le 1er et
le 6 du mois de janvier et là je butte lamentablement. Voici le bout
de code que je triture sans trouver la bonne syntaxe.
De plus je souhaiterai que le CommandBouton ne soit cliquable qu'une
seule fois et seulement entre ces deux dates.

Merci d'avance du généreux coup de pouce que vous pourrez m'apporter.

Sub actionNouvAn()
On Error Resume Next
Nom = Range("datejour").Value'cellule nommée où s'inscrit la date
système du jour
Nom = Format(Nom, "dd/mm")
If Nom >= "01/01" And Nom <= "06/01" Then

' ici mes commandes pour recup les données et les sauvegarder dans un
fichier
' ça c'est fait sans problème

else
MsgBox ("Cette action ne peut être faite qu'entre le 01 et le 06
Janvier de l'année" & Chr(13) & Chr(13) & "ACTION ANNULEE")
End If
Sheets("accueil").Activate
End Sub

-- prive(point)ma(tiret)
mettre la ponctuation à la place de ce qui est entre guillemets.
remplacer ptt.pasnet par laposte.net
On ne dit pas jerrycan, mais je rigole.





--
prive(point)ma(tiret)
mettre la ponctuation à la place de ce qui est entre guillemets. remplacer
ptt.pasnet par laposte.net
On ne dit pas la bonne paella, mais la femme de ménage est absente.


Avatar
P
Nous sommes le *04/12/2007* et dans un effort inconsidéré, *Philippe.R*
a réussi à tapoter avec ses petits doigts musclés...


Merci Philippe
Je teste au boulot demain et je reviens pour dire le résultat.
:-Z


Bonsoir,

J'utiliserais ceci :

un nom "cefait" créé dans le classeur avec la valeur initiale 0

if month(date)=1 and day(date)<7 and [cefait] <> year(date) then

ton code qui va bien
[cefait]= year(date)

la suite que tu as prévue
--
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
Avec plaisir
http://dj.joss.free.fr/trombine.htm
Philippe.R
"" a écrit dans le message de
news:
Bonsoir à tous.

J'ai besoin de vos lumières pour ce qui suit.

je suis sous excel 97.

Je suis en train de faire une sauvegarde annuelle de base de données,
mais pour corser le tout, cette dernière est commandée par un
CommandBouton et je souhaiterai qu'il ne soit actif qu'entre le 1er et
le 6 du mois de janvier et là je butte lamentablement. Voici le bout
de code que je triture sans trouver la bonne syntaxe.
De plus je souhaiterai que le CommandBouton ne soit cliquable qu'une
seule fois et seulement entre ces deux dates.

Merci d'avance du généreux coup de pouce que vous pourrez m'apporter.

Sub actionNouvAn()
On Error Resume Next
Nom = Range("datejour").Value'cellule nommée où s'inscrit la date
système du jour
Nom = Format(Nom, "dd/mm")
If Nom >= "01/01" And Nom <= "06/01" Then

' ici mes commandes pour recup les données et les sauvegarder dans un
fichier
' ça c'est fait sans problème

else
MsgBox ("Cette action ne peut être faite qu'entre le 01 et le 06
Janvier de l'année" & Chr(13) & Chr(13) & "ACTION ANNULEE")
End If
Sheets("accueil").Activate
End Sub

-- prive(point)ma(tiret)
mettre la ponctuation à la place de ce qui est entre guillemets.
remplacer ptt.pasnet par laposte.net
On ne dit pas jerrycan, mais je rigole.





--
prive(point)ma(tiret)
mettre la ponctuation à la place de ce qui est entre guillemets. remplacer
ptt.pasnet par laposte.net
On ne dit pas faire les vendanges mais péter comme un dieu


Avatar
P
en ce *mardi* *04/12/2007* , notre trés honoré(e) *Philippe.R* dans un
éclair de génie et aprés mûre reflexion a enfin exprimé sa pensée en ce
qui suit :

Bonsoir Philippe,
Bonsoir Poc

Voici le code final qui fonctionne impecc pour moi.
Bon la méyhode n'est peut être pas académique ^^ mais seul le résultat
compte ;-).

Encore merci de m'avoir indiqué la voie....
Bonne soirée et au plaisir de croiser vos chemins :-)

Sub actionNouvAn()
On Error Resume Next
dossier = ActiveWorkbook.Name 'récup le nom du fichier xls pour la sauve
nomY = Range("datejour").Value
nomARC = nomY
nomM = nomY
nomD = nomY
[nomY] = Year(Date) 'récup année pour la sauve
[nomARC] = Year(Date) - 1 'récup année -1 pour dater la sauve
[nomM] = Month(Date)
[nomD] = Day(Date)
datedujour = [nomM] & "/" & [nomD] & "/" & [nomY]
If nomM = 1 And nomD <= 6 Then
' si OK execute ce qui suit, autrement va a ELSE
etc....

end sub()

--
prive(point)ma(tiret)
mettre la ponctuation à la place de ce qui est entre guillemets. remplacer
ptt.pasnet par laposte.net
On ne dit pas mon corridor, mais mon corps se repose.