OVH Cloud OVH Cloud

Ecart date du jour

9 réponses
Avatar
YANN24
Bonjour,

j'ai un fichier avec beaucoup de feuilles.
Au début, un userform me permet soit de tout afficher (70 pages), soit de
n'afficher que les 13 pages de l'année voulue (il y a 5 années, soit 65
pages).

Lorsque je sélectionne une année, soit 13 pages en visuel, je voudrais que
pour chacune des 12 premières pages, si la celulle C8 est plus vielle de 30
jours par rapport à la date système, alors la feuille en question se
vérouille.
Je pensais à un truc du style:

Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then
Next
Sheets(i).protect = True
End If
End Sub

Pourquoi ça ne marche pas?
Merci
YANN

9 réponses

Avatar
isabelle
bonjour Yann24,

tu pourrais ajouter des lignes pour vérifier les variables, et attention
il y a une parenthèse de trop à la fin de la formule.

Sub bouh()
For i = 1 To 12
MsgBox "i = " & i
MsgBox "feuille " & Sheets(i).Name
MsgBox "la valeur de la formule = " & _
(DateDiff("d", Now, Sheets(i).[C8]))
If (DateDiff("d", Now, Sheets(i).[C8])) < -30 Then
Next
Sheets(i).Protect = True
End If
End Sub

isabelle


Bonjour,

j'ai un fichier avec beaucoup de feuilles.
Au début, un userform me permet soit de tout afficher (70 pages), soit de
n'afficher que les 13 pages de l'année voulue (il y a 5 années, soit 65
pages).

Lorsque je sélectionne une année, soit 13 pages en visuel, je voudrais que
pour chacune des 12 premières pages, si la celulle C8 est plus vielle de 30
jours par rapport à la date système, alors la feuille en question se
vérouille.
Je pensais à un truc du style:

Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then
Next
Sheets(i).protect = True
End If
End Sub

Pourquoi ça ne marche pas?
Merci
YANN


Avatar
Jacky
Re....
Personnellement je mettrai le next ici:

Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then
Sheets(i).protect = True
'et non pas là

End If
Next '-----------ici


End Sub


Salutations
JJ

"YANN24" a écrit dans le message de
news:
Bonjour,

j'ai un fichier avec beaucoup de feuilles.
Au début, un userform me permet soit de tout afficher (70 pages), soit
de

n'afficher que les 13 pages de l'année voulue (il y a 5 années, soit 65
pages).

Lorsque je sélectionne une année, soit 13 pages en visuel, je voudrais
que

pour chacune des 12 premières pages, si la celulle C8 est plus vielle de
30

jours par rapport à la date système, alors la feuille en question se
vérouille.
Je pensais à un truc du style:

Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then
Next
Sheets(i).protect = True
End If
End Sub

Pourquoi ça ne marche pas?
Merci
YANN


Avatar
Jacky
Re..re
A moins de mettre le "if" sur une ligne...

'-------
Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then Sheets(i).protect True
Next
'----------

JJ


"Jacky" a écrit dans le message
de news:O%
Re....
Personnellement je mettrai le next ici:

Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then
Sheets(i).protect = True
'et non pas là

End If
Next '-----------ici

End Sub


Salutations
JJ

"YANN24" a écrit dans le message de
news:
Bonjour,

j'ai un fichier avec beaucoup de feuilles.
Au début, un userform me permet soit de tout afficher (70 pages),
soit


de
n'afficher que les 13 pages de l'année voulue (il y a 5 années, soit
65


pages).

Lorsque je sélectionne une année, soit 13 pages en visuel, je
voudrais


que
pour chacune des 12 premières pages, si la celulle C8 est plus
vielle de


30
jours par rapport à la date système, alors la feuille en question se
vérouille.
Je pensais à un truc du style:

Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then
Next
Sheets(i).protect = True
End If
End Sub

Pourquoi ça ne marche pas?
Merci
YANN






Avatar
YANN24
re,
merci.
Il me met une erreur : Next sans For.
Je comprend pas, pourtant il y a bien For, puis Next.

Sinon, j'ai une autre idée, mais je ne sais pas comment insérer ma formule
pour le restreindre en date:
-----------------
For Each Sheet In Worksheets
If Sheet.visble = True And Sheet.Name <> "feuil13" Then
Sheet.Protect
'If ((DateDiff("d", Now, Sheets(i).[C8]))) < -30 Then '(je ne sais pas
comment l'inclure dedans)
Sheet.Protect
End If
Next
End Sub
------------------

Merci.
YANN


bonjour Yann24,

tu pourrais ajouter des lignes pour vérifier les variables, et attention
il y a une parenthèse de trop à la fin de la formule.

Sub bouh()
For i = 1 To 12
MsgBox "i = " & i
MsgBox "feuille " & Sheets(i).Name
MsgBox "la valeur de la formule = " & _
(DateDiff("d", Now, Sheets(i).[C8]))
If (DateDiff("d", Now, Sheets(i).[C8])) < -30 Then
Next
Sheets(i).Protect = True
End If
End Sub

isabelle


Bonjour,

j'ai un fichier avec beaucoup de feuilles.
Au début, un userform me permet soit de tout afficher (70 pages), soit de
n'afficher que les 13 pages de l'année voulue (il y a 5 années, soit 65
pages).

Lorsque je sélectionne une année, soit 13 pages en visuel, je voudrais que
pour chacune des 12 premières pages, si la celulle C8 est plus vielle de 30
jours par rapport à la date système, alors la feuille en question se
vérouille.
Je pensais à un truc du style:

Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then
Next
Sheets(i).protect = True
End If
End Sub

Pourquoi ça ne marche pas?
Merci
YANN





Avatar
YANN24
re,
en fait, c'est le next qu'il fallait placer avant le 'If, OK
Par contre, il ne prend pas en compte les feuilles visibles.
C'est pour ça que je préfèrerai adapter la macro que je t'ai donné
précédemment.
Si tu paux m'aider.
Merci.
YANN


bonjour Yann24,

tu pourrais ajouter des lignes pour vérifier les variables, et attention
il y a une parenthèse de trop à la fin de la formule.

Sub bouh()
For i = 1 To 12
MsgBox "i = " & i
MsgBox "feuille " & Sheets(i).Name
MsgBox "la valeur de la formule = " & _
(DateDiff("d", Now, Sheets(i).[C8]))
If (DateDiff("d", Now, Sheets(i).[C8])) < -30 Then
Next
Sheets(i).Protect = True
End If
End Sub

isabelle


Bonjour,

j'ai un fichier avec beaucoup de feuilles.
Au début, un userform me permet soit de tout afficher (70 pages), soit de
n'afficher que les 13 pages de l'année voulue (il y a 5 années, soit 65
pages).

Lorsque je sélectionne une année, soit 13 pages en visuel, je voudrais que
pour chacune des 12 premières pages, si la celulle C8 est plus vielle de 30
jours par rapport à la date système, alors la feuille en question se
vérouille.
Je pensais à un truc du style:

Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then
Next
Sheets(i).protect = True
End If
End Sub

Pourquoi ça ne marche pas?
Merci
YANN





Avatar
docm
Bonjour.

Voici qui tient compte de toutes les feuilles visibles:

Sub bouh()
For i = 1 To Sheets.Count
If Sheets(i).Visible = True Then
If (DateDiff("d", Now, Sheets(i).[C8])) < -30 Then
Sheets(i).Protect = True
Else
Sheets(i).Protect = False
End If
End If
Next
End Sub

docm

"YANN24" a écrit dans le message news:

re,
en fait, c'est le next qu'il fallait placer avant le 'If, OK
Par contre, il ne prend pas en compte les feuilles visibles.
C'est pour ça que je préfèrerai adapter la macro que je t'ai donné
précédemment.
Si tu paux m'aider.
Merci.
YANN


bonjour Yann24,

tu pourrais ajouter des lignes pour vérifier les variables, et attention
il y a une parenthèse de trop à la fin de la formule.

Sub bouh()
For i = 1 To 12
MsgBox "i = " & i
MsgBox "feuille " & Sheets(i).Name
MsgBox "la valeur de la formule = " & _
(DateDiff("d", Now, Sheets(i).[C8]))
If (DateDiff("d", Now, Sheets(i).[C8])) < -30 Then
Next
Sheets(i).Protect = True
End If
End Sub

isabelle


Bonjour,

j'ai un fichier avec beaucoup de feuilles.
Au début, un userform me permet soit de tout afficher (70 pages), soit
de



n'afficher que les 13 pages de l'année voulue (il y a 5 années, soit
65



pages).

Lorsque je sélectionne une année, soit 13 pages en visuel, je voudrais
que



pour chacune des 12 premières pages, si la celulle C8 est plus vielle
de 30



jours par rapport à la date système, alors la feuille en question se
vérouille.
Je pensais à un truc du style:

Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then
Next
Sheets(i).protect = True
End If
End Sub

Pourquoi ça ne marche pas?
Merci
YANN







Avatar
docm
Remplacer Sheets(i).Protect = True
par Sheets(i).Protect True

"docm" a écrit dans le message news:

Bonjour.

Voici qui tient compte de toutes les feuilles visibles:

Sub bouh()
For i = 1 To Sheets.Count
If Sheets(i).Visible = True Then
If (DateDiff("d", Now, Sheets(i).[C8])) < -30 Then
Sheets(i).Protect = True
Else
Sheets(i).Protect = False
End If
End If
Next
End Sub

docm

"YANN24" a écrit dans le message news:

re,
en fait, c'est le next qu'il fallait placer avant le 'If, OK
Par contre, il ne prend pas en compte les feuilles visibles.
C'est pour ça que je préfèrerai adapter la macro que je t'ai donné
précédemment.
Si tu paux m'aider.
Merci.
YANN


bonjour Yann24,

tu pourrais ajouter des lignes pour vérifier les variables, et
attention



il y a une parenthèse de trop à la fin de la formule.

Sub bouh()
For i = 1 To 12
MsgBox "i = " & i
MsgBox "feuille " & Sheets(i).Name
MsgBox "la valeur de la formule = " & _
(DateDiff("d", Now, Sheets(i).[C8]))
If (DateDiff("d", Now, Sheets(i).[C8])) < -30 Then
Next
Sheets(i).Protect = True
End If
End Sub

isabelle


Bonjour,

j'ai un fichier avec beaucoup de feuilles.
Au début, un userform me permet soit de tout afficher (70 pages),
soit




de
n'afficher que les 13 pages de l'année voulue (il y a 5 années, soit
65



pages).

Lorsque je sélectionne une année, soit 13 pages en visuel, je
voudrais




que
pour chacune des 12 premières pages, si la celulle C8 est plus
vielle




de 30
jours par rapport à la date système, alors la feuille en question se
vérouille.
Je pensais à un truc du style:

Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then
Next
Sheets(i).protect = True
End If
End Sub

Pourquoi ça ne marche pas?
Merci
YANN











Avatar
isabelle
c'est ok Jacky,

j'avais fait une erreur au recopiage,

isabelle


Re..re
A moins de mettre le "if" sur une ligne...

'-------
Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then Sheets(i).protect > True
Next
'----------

JJ


"Jacky" a écrit dans le message
de news:O%
Re....
Personnellement je mettrai le next ici:

Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then
Sheets(i).protect = True
'et non pas là

End If
Next '-----------ici

End Sub


Salutations
JJ

"YANN24" a écrit dans le message de
news:
Bonjour,

j'ai un fichier avec beaucoup de feuilles.
Au début, un userform me permet soit de tout afficher (70 pages),
soit


de
n'afficher que les 13 pages de l'année voulue (il y a 5 années, soit
65


pages).

Lorsque je sélectionne une année, soit 13 pages en visuel, je
voudrais


que
pour chacune des 12 premières pages, si la celulle C8 est plus
vielle de


30
jours par rapport à la date système, alors la feuille en question se
vérouille.
Je pensais à un truc du style:

Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then
Next
Sheets(i).protect = True
End If
End Sub

Pourquoi ça ne marche pas?
Merci
YANN










Avatar
YANN24
Salut,
je te remercie pour ton aide.
j'ai juste un dernier soucis, j'ai lancé un nouveau post ce 18/05/05.
Merci.
YANN


Remplacer Sheets(i).Protect = True
par Sheets(i).Protect True

"docm" a écrit dans le message news:

Bonjour.

Voici qui tient compte de toutes les feuilles visibles:

Sub bouh()
For i = 1 To Sheets.Count
If Sheets(i).Visible = True Then
If (DateDiff("d", Now, Sheets(i).[C8])) < -30 Then
Sheets(i).Protect = True
Else
Sheets(i).Protect = False
End If
End If
Next
End Sub

docm

"YANN24" a écrit dans le message news:

re,
en fait, c'est le next qu'il fallait placer avant le 'If, OK
Par contre, il ne prend pas en compte les feuilles visibles.
C'est pour ça que je préfèrerai adapter la macro que je t'ai donné
précédemment.
Si tu paux m'aider.
Merci.
YANN


bonjour Yann24,

tu pourrais ajouter des lignes pour vérifier les variables, et
attention



il y a une parenthèse de trop à la fin de la formule.

Sub bouh()
For i = 1 To 12
MsgBox "i = " & i
MsgBox "feuille " & Sheets(i).Name
MsgBox "la valeur de la formule = " & _
(DateDiff("d", Now, Sheets(i).[C8]))
If (DateDiff("d", Now, Sheets(i).[C8])) < -30 Then
Next
Sheets(i).Protect = True
End If
End Sub

isabelle


Bonjour,

j'ai un fichier avec beaucoup de feuilles.
Au début, un userform me permet soit de tout afficher (70 pages),
soit




de
n'afficher que les 13 pages de l'année voulue (il y a 5 années, soit
65



pages).

Lorsque je sélectionne une année, soit 13 pages en visuel, je
voudrais




que
pour chacune des 12 premières pages, si la celulle C8 est plus
vielle




de 30
jours par rapport à la date système, alors la feuille en question se
vérouille.
Je pensais à un truc du style:

Sub bouh()
For i = 1 to 12
if (DateDiff("d", Now, Sheets(i).[C8])))<-30 Then
Next
Sheets(i).protect = True
End If
End Sub

Pourquoi ça ne marche pas?
Merci
YANN