OVH Cloud OVH Cloud

Macro fonctionne pas

4 réponses
Avatar
Richard Fortin
J'ai une macro qui fonctionne qui ne fonctionne pas. Cependant, si j'activer
la commande manuellement, elle fonctionne. Où est l'erreur ???

J'ai un classeur qui contiens plusieurs feuilles de travail. Je désire
incorporer une macro qui lorsqu'à une date précise soit atteinte, certaines
feuilles sont supprimer automatiquement du classeur sans que l'utilisateur en
soit conscient.

Est-ce possible ?
Pour ce faire j'ai cette directive

Private Sub Workbook_Open()
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
If Date > CDate("11/14/2005") Then
On Error Resume Next
Sheets(Array("régistre empl", "détail")).Delete
ThisWorkbook.Close True
End If
End Sub

Quelqu'un peut-il me dire ce qui ne va pas ?

rf

4 réponses

Avatar
Jacquouille
Bah, tant qu'à faire, autant dire bonjour au Monsieur.
Bonjour Richard
Bien que très intelligent, le PC ne peut tout deviner.
If date .... quelle date? (mi-figue, mi-raisin qu'il devient le PC)
Essaie, svp, de lui faire comprendre que si la date du PC (date système) =
une telle date, alors bouziller feuilles...
Bonne chance
Ah oui, j'oubliais : merci de m'avoir lu.
Jacques
--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
http://frederic.sigonneau.free.fr/

Jacquouille.

"Richard Fortin" a écrit dans le
message de news:
J'ai une macro qui fonctionne qui ne fonctionne pas. Cependant, si
j'activer
la commande manuellement, elle fonctionne. Où est l'erreur ???

J'ai un classeur qui contiens plusieurs feuilles de travail. Je désire
incorporer une macro qui lorsqu'à une date précise soit atteinte,
certaines
feuilles sont supprimer automatiquement du classeur sans que l'utilisateur
en
soit conscient.

Est-ce possible ?
Pour ce faire j'ai cette directive

Private Sub Workbook_Open()
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
If Date > CDate("11/14/2005") Then
On Error Resume Next
Sheets(Array("régistre empl", "détail")).Delete
ThisWorkbook.Close True
End If
End Sub

Quelqu'un peut-il me dire ce qui ne va pas ?

rf


Avatar
michdenis
Bonjour Richard,

L'appellation de ta macro "Private Sub Workbook_Open()"
suppose qu'elle est située dans le ThisWorkbook de ton classeur.

Elle sera activée à l'ouverture du classeur.
Les procédures événementielles d'excel doivent être activées. Pour
ce faire utilise cette procédure pour l'activer et enregistre ton classeur.
'-------------
Sub ProcEvents()
Application.EnableEvents = True
End sub
'-------------

Dans cette ligne de code If Date > CDate("11/14/2005") Then
j'utiliserais plutôt ceci : DateSerial()

If Date > dateserial(2003,11,14) then


Salutations!



"Richard Fortin" a écrit dans le message de news:

J'ai une macro qui fonctionne qui ne fonctionne pas. Cependant, si j'activer
la commande manuellement, elle fonctionne. Où est l'erreur ???

J'ai un classeur qui contiens plusieurs feuilles de travail. Je désire
incorporer une macro qui lorsqu'à une date précise soit atteinte, certaines
feuilles sont supprimer automatiquement du classeur sans que l'utilisateur en
soit conscient.

Est-ce possible ?
Pour ce faire j'ai cette directive

Private Sub Workbook_Open()
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
If Date > CDate("11/14/2005") Then
On Error Resume Next
Sheets(Array("régistre empl", "détail")).Delete
ThisWorkbook.Close True
End If
End Sub

Quelqu'un peut-il me dire ce qui ne va pas ?

rf
Avatar
Richard Fortin
Ai-je bien compris que la commande Sub ProcEvents() doit être placé après
Private Sub Workbook_Open()

RF

"michdenis" wrote:

Bonjour Richard,

L'appellation de ta macro "Private Sub Workbook_Open()"
suppose qu'elle est située dans le ThisWorkbook de ton classeur.

Elle sera activée à l'ouverture du classeur.
Les procédures événementielles d'excel doivent être activées. Pour
ce faire utilise cette procédure pour l'activer et enregistre ton classeur.
'-------------
Sub ProcEvents()
Application.EnableEvents = True
End sub
'-------------

Dans cette ligne de code If Date > CDate("11/14/2005") Then
j'utiliserais plutôt ceci : DateSerial()

If Date > dateserial(2003,11,14) then


Salutations!



"Richard Fortin" a écrit dans le message de news:

J'ai une macro qui fonctionne qui ne fonctionne pas. Cependant, si j'activer
la commande manuellement, elle fonctionne. Où est l'erreur ???

J'ai un classeur qui contiens plusieurs feuilles de travail. Je désire
incorporer une macro qui lorsqu'à une date précise soit atteinte, certaines
feuilles sont supprimer automatiquement du classeur sans que l'utilisateur en
soit conscient.

Est-ce possible ?
Pour ce faire j'ai cette directive

Private Sub Workbook_Open()
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
If Date > CDate("11/14/2005") Then
On Error Resume Next
Sheets(Array("régistre empl", "détail")).Delete
ThisWorkbook.Close True
End If
End Sub

Quelqu'un peut-il me dire ce qui ne va pas ?

rf





Avatar
michdenis
Bonjour Richard,

C'est une procédure indépendante... son but..s'assurer que tu n'as pas désactivé sans que tu t'en rendes compte les procédures
événementielles d'Excel. C'est tout.

Salutations!







"Richard Fortin" a écrit dans le message de news:

Ai-je bien compris que la commande Sub ProcEvents() doit être placé après
Private Sub Workbook_Open()

RF

"michdenis" wrote:

Bonjour Richard,

L'appellation de ta macro "Private Sub Workbook_Open()"
suppose qu'elle est située dans le ThisWorkbook de ton classeur.

Elle sera activée à l'ouverture du classeur.
Les procédures événementielles d'excel doivent être activées. Pour
ce faire utilise cette procédure pour l'activer et enregistre ton classeur.
'-------------
Sub ProcEvents()
Application.EnableEvents = True
End sub
'-------------

Dans cette ligne de code If Date > CDate("11/14/2005") Then
j'utiliserais plutôt ceci : DateSerial()

If Date > dateserial(2003,11,14) then


Salutations!



"Richard Fortin" a écrit dans le message de news:

J'ai une macro qui fonctionne qui ne fonctionne pas. Cependant, si j'activer
la commande manuellement, elle fonctionne. Où est l'erreur ???

J'ai un classeur qui contiens plusieurs feuilles de travail. Je désire
incorporer une macro qui lorsqu'à une date précise soit atteinte, certaines
feuilles sont supprimer automatiquement du classeur sans que l'utilisateur en
soit conscient.

Est-ce possible ?
Pour ce faire j'ai cette directive

Private Sub Workbook_Open()
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
If Date > CDate("11/14/2005") Then
On Error Resume Next
Sheets(Array("régistre empl", "détail")).Delete
ThisWorkbook.Close True
End If
End Sub

Quelqu'un peut-il me dire ce qui ne va pas ?

rf