Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54
Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54
Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54
Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!
Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wrote:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles o ù un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite protég er
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO <F...@discussions.microsoft.com> wrote:
Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles o ù un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!
Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite protég er
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wrote:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles o ù un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite protég er
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque fois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouverture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas chercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros)
Ensuite partant du principe qu'il active les macros, il doit pouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouillé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wrote:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles o ù un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite prot éger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque fois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouverture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas chercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros)
Ensuite partant du principe qu'il active les macros, il doit pouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouillé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, gael.beauverg...@libertysurf.fr wrote:
Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO <F...@discussions.microsoft.com> wrote:
Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles o ù un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!
Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite prot éger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque fois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouverture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas chercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros)
Ensuite partant du principe qu'il active les macros, il doit pouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouillé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wrote:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles o ù un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite prot éger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier temps
"to", "rdva" et "rdvb" sont des activités incontournables, faisant
partie des contraintes de planning. Elles sont saisies dans un premier
temps par un animateur d'équipe. Dans un deuxième temps, chaque
opérateur peut saisir son planning d'activités sur les plages libres.
J'ai copié les macros comme tu l'indiques mais lorsque j'exécute sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph wrote:Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque fois, i l
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouvertur e du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas chercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros)
Ensuite partant du principe qu'il active les macros, il doit pouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouillé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wrote:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite prot éger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que c es
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier temps
"to", "rdva" et "rdvb" sont des activités incontournables, faisant
partie des contraintes de planning. Elles sont saisies dans un premier
temps par un animateur d'équipe. Dans un deuxième temps, chaque
opérateur peut saisir son planning d'activités sur les plages libres.
J'ai copié les macros comme tu l'indiques mais lorsque j'exécute sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph <gmLSt...@gmail.com> wrote:
Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque fois, i l
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouvertur e du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas chercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros)
Ensuite partant du principe qu'il active les macros, il doit pouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouillé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, gael.beauverg...@libertysurf.fr wrote:
Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO <F...@discussions.microsoft.com> wrote:
Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!
Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite prot éger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que c es
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier temps
"to", "rdva" et "rdvb" sont des activités incontournables, faisant
partie des contraintes de planning. Elles sont saisies dans un premier
temps par un animateur d'équipe. Dans un deuxième temps, chaque
opérateur peut saisir son planning d'activités sur les plages libres.
J'ai copié les macros comme tu l'indiques mais lorsque j'exécute sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph wrote:Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque fois, i l
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouvertur e du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas chercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros)
Ensuite partant du principe qu'il active les macros, il doit pouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouillé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wrote:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite prot éger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que c es
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, wrote:Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier temps
"to", "rdva" et "rdvb" sont des activités incontournables, faisant
partie des contraintes de planning. Elles sont saisies dans un premier
temps par un animateur d'équipe. Dans un deuxième temps, chaque
opérateur peut saisir son planning d'activités sur les plages libres .
J'ai copié les macros comme tu l'indiques mais lorsque j'exécute sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph wrote:Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque fois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouvert ure du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas chercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros)
Ensuite partant du principe qu'il active les macros, il doit pouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouillé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déj à
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wrote:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour cell es où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite pr otéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, gael.beauverg...@libertysurf.fr wrote:
Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier temps
"to", "rdva" et "rdvb" sont des activités incontournables, faisant
partie des contraintes de planning. Elles sont saisies dans un premier
temps par un animateur d'équipe. Dans un deuxième temps, chaque
opérateur peut saisir son planning d'activités sur les plages libres .
J'ai copié les macros comme tu l'indiques mais lorsque j'exécute sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph <gmLSt...@gmail.com> wrote:
Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque fois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouvert ure du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas chercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros)
Ensuite partant du principe qu'il active les macros, il doit pouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouillé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, gael.beauverg...@libertysurf.fr wrote:
Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déj à
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO <F...@discussions.microsoft.com> wrote:
Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour cell es où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!
Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite pr otéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, wrote:Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier temps
"to", "rdva" et "rdvb" sont des activités incontournables, faisant
partie des contraintes de planning. Elles sont saisies dans un premier
temps par un animateur d'équipe. Dans un deuxième temps, chaque
opérateur peut saisir son planning d'activités sur les plages libres .
J'ai copié les macros comme tu l'indiques mais lorsque j'exécute sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph wrote:Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque fois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouvert ure du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas chercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros)
Ensuite partant du principe qu'il active les macros, il doit pouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouillé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déj à
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wrote:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour cell es où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite pr otéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Bonjour LSteph,
Je viens de tester la macro: la ligne Select Case LCase(c)
renvoie toujours le message "Erreur d'éxécution '13'": incompatibilit é
de type.
J'ai beau lire l'aide excel je ne comprends pas bien et n'arrive pas à
modifier l'instruction.
Cordialement
GB54
On 27 déc, 12:33, lSteph wrote:Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, wrote:Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier temps
"to", "rdva" et "rdvb" sont des activités incontournables, faisant
partie des contraintes de planning. Elles sont saisies dans un premier
temps par un animateur d'équipe. Dans un deuxième temps, chaque
opérateur peut saisir son planning d'activités sur les plages libr es.
J'ai copié les macros comme tu l'indiques mais lorsque j'exécute s ub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph wrote:Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque foi s, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouve rture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas chercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros)
Ensuite partant du principe qu'il active les macros, il doit pouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouillé !
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuil le
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déj à
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wrote:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" The n
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour ce lles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès q ue ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le te xte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour LSteph,
Je viens de tester la macro: la ligne Select Case LCase(c)
renvoie toujours le message "Erreur d'éxécution '13'": incompatibilit é
de type.
J'ai beau lire l'aide excel je ne comprends pas bien et n'arrive pas à
modifier l'instruction.
Cordialement
GB54
On 27 déc, 12:33, lSteph <gmLSt...@gmail.com> wrote:
Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, gael.beauverg...@libertysurf.fr wrote:
Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier temps
"to", "rdva" et "rdvb" sont des activités incontournables, faisant
partie des contraintes de planning. Elles sont saisies dans un premier
temps par un animateur d'équipe. Dans un deuxième temps, chaque
opérateur peut saisir son planning d'activités sur les plages libr es.
J'ai copié les macros comme tu l'indiques mais lorsque j'exécute s ub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph <gmLSt...@gmail.com> wrote:
Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque foi s, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouve rture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas chercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros)
Ensuite partant du principe qu'il active les macros, il doit pouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouillé !
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, gael.beauverg...@libertysurf.fr wrote:
Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuil le
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déj à
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO <F...@discussions.microsoft.com> wrote:
Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" The n
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour ce lles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!
Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès q ue ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le te xte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour LSteph,
Je viens de tester la macro: la ligne Select Case LCase(c)
renvoie toujours le message "Erreur d'éxécution '13'": incompatibilit é
de type.
J'ai beau lire l'aide excel je ne comprends pas bien et n'arrive pas à
modifier l'instruction.
Cordialement
GB54
On 27 déc, 12:33, lSteph wrote:Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, wrote:Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier temps
"to", "rdva" et "rdvb" sont des activités incontournables, faisant
partie des contraintes de planning. Elles sont saisies dans un premier
temps par un animateur d'équipe. Dans un deuxième temps, chaque
opérateur peut saisir son planning d'activités sur les plages libr es.
J'ai copié les macros comme tu l'indiques mais lorsque j'exécute s ub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph wrote:Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque foi s, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouve rture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas chercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros)
Ensuite partant du principe qu'il active les macros, il doit pouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouillé !
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuil le
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déj à
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wrote:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" The n
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour ce lles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhaite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès q ue ces
termes sont saisis et laisser les autres cellules accessibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le te xte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Bizarre?
voici un classeur qui contient douze feuilles (une par mois)
où j'ai entré deux trois valeurs textes dates et le code
en question sans rencontrer ce souci. Testé sous 97 et 2003
http://cjoint.com/?mCmfLsrmR0
(au fait tu n'aurais pas conservé en redondance des procédures
événementielles dans le code des feuilles?!)
@+
--
lSteph
On 28 déc, 08:47, wrote:Bonjour LSteph,
Je viens de tester la macro: la ligne Select Case LCase(c)
renvoie toujours le message "Erreur d'éxécution '13'": incompatibili té
de type.
J'ai beau lire l'aide excel je ne comprends pas bien et n'arrive pas à
modifier l'instruction.
Cordialement
GB54
On 27 déc, 12:33, lSteph wrote:Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, wrote:Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier tem ps
"to", "rdva" et "rdvb" sont des activités incontournables, faisant
partie des contraintes de planning. Elles sont saisies dans un premi er
temps par un animateur d'équipe. Dans un deuxième temps, chaque
opérateur peut saisir son planning d'activités sur les plages li bres.
J'ai copié les macros comme tu l'indiques mais lorsque j'exécute sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph wrote:Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque f ois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ou verture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas cherch er
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros )
Ensuite partant du principe qu'il active les macros, il doit pouvo ir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouill é!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes le s
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feu ille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient d éjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wrote:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" T hen
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhait e protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessible s à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Bizarre?
voici un classeur qui contient douze feuilles (une par mois)
où j'ai entré deux trois valeurs textes dates et le code
en question sans rencontrer ce souci. Testé sous 97 et 2003
http://cjoint.com/?mCmfLsrmR0
(au fait tu n'aurais pas conservé en redondance des procédures
événementielles dans le code des feuilles?!)
@+
--
lSteph
On 28 déc, 08:47, gael.beauverg...@libertysurf.fr wrote:
Bonjour LSteph,
Je viens de tester la macro: la ligne Select Case LCase(c)
renvoie toujours le message "Erreur d'éxécution '13'": incompatibili té
de type.
J'ai beau lire l'aide excel je ne comprends pas bien et n'arrive pas à
modifier l'instruction.
Cordialement
GB54
On 27 déc, 12:33, lSteph <gmLSt...@gmail.com> wrote:
Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, gael.beauverg...@libertysurf.fr wrote:
Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier tem ps
"to", "rdva" et "rdvb" sont des activités incontournables, faisant
partie des contraintes de planning. Elles sont saisies dans un premi er
temps par un animateur d'équipe. Dans un deuxième temps, chaque
opérateur peut saisir son planning d'activités sur les plages li bres.
J'ai copié les macros comme tu l'indiques mais lorsque j'exécute sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph <gmLSt...@gmail.com> wrote:
Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque f ois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ou verture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas cherch er
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros )
Ensuite partant du principe qu'il active les macros, il doit pouvo ir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouill é!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes le s
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, gael.beauverg...@libertysurf.fr wrote:
Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feu ille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient d éjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO <F...@discussions.microsoft.com> wrote:
Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" T hen
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!
Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhait e protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessible s à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Bizarre?
voici un classeur qui contient douze feuilles (une par mois)
où j'ai entré deux trois valeurs textes dates et le code
en question sans rencontrer ce souci. Testé sous 97 et 2003
http://cjoint.com/?mCmfLsrmR0
(au fait tu n'aurais pas conservé en redondance des procédures
événementielles dans le code des feuilles?!)
@+
--
lSteph
On 28 déc, 08:47, wrote:Bonjour LSteph,
Je viens de tester la macro: la ligne Select Case LCase(c)
renvoie toujours le message "Erreur d'éxécution '13'": incompatibili té
de type.
J'ai beau lire l'aide excel je ne comprends pas bien et n'arrive pas à
modifier l'instruction.
Cordialement
GB54
On 27 déc, 12:33, lSteph wrote:Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, wrote:Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier tem ps
"to", "rdva" et "rdvb" sont des activités incontournables, faisant
partie des contraintes de planning. Elles sont saisies dans un premi er
temps par un animateur d'équipe. Dans un deuxième temps, chaque
opérateur peut saisir son planning d'activités sur les plages li bres.
J'ai copié les macros comme tu l'indiques mais lorsque j'exécute sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph wrote:Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque f ois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ou verture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas cherch er
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macros )
Ensuite partant du principe qu'il active les macros, il doit pouvo ir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouill é!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes le s
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feu ille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient d éjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wrote:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" T hen
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pour celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souhait e protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" dès que ces
termes sont saisis et laisser les autres cellules accessible s à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Je viens de refaire la manip: même message.
Je viens de vérifier les feuilles, il n'y a rien qui traine dedans, me
semble t'il.
J'ai vu ton fichier cela fonctione!
Je joins un exemple de ce que j'ai:
http://cjoint.com/?mCn6xLOiqe
Si tu peux regarder.
Cordialement,
GB54
On 28 déc, 12:13, lSteph wrote:Bonjour,
Bizarre?
voici un classeur qui contient douze feuilles (une par mois)
où j'ai entré deux trois valeurs textes dates et le code
en question sans rencontrer ce souci. Testé sous 97 et 2003
http://cjoint.com/?mCmfLsrmR0
(au fait tu n'aurais pas conservé en redondance des procédures
événementielles dans le code des feuilles?!)
@+
--
lSteph
On 28 déc, 08:47, wrote:Bonjour LSteph,
Je viens de tester la macro: la ligne Select Case LCase(c)
renvoie toujours le message "Erreur d'éxécution '13'": incompatibi lité
de type.
J'ai beau lire l'aide excel je ne comprends pas bien et n'arrive pas à
modifier l'instruction.
Cordialement
GB54
On 27 déc, 12:33, lSteph wrote:Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, wrote:Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées pa r
rapport à la protection de cellules.Cependant, dans un premier t emps
"to", "rdva" et "rdvb" sont des activités incontournables, faisa nt
partie des contraintes de planning. Elles sont saisies dans un pre mier
temps par un animateur d'équipe. Dans un deuxième temps, chaqu e
opérateur peut saisir son planning d'activités sur les plages libres.
J'ai copié les macros comme tu l'indiques mais lorsque j'exécu te sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph wrote:Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque fois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l' ouverture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas cher cher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macr os)
Ensuite partant du principe qu'il active les macros, il doit pou voir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouil lé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque f euille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient d éjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pou r celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souha ite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" d ès que ces
termes sont saisis et laisser les autres cellules accessib les à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer l e texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le te xte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Je viens de refaire la manip: même message.
Je viens de vérifier les feuilles, il n'y a rien qui traine dedans, me
semble t'il.
J'ai vu ton fichier cela fonctione!
Je joins un exemple de ce que j'ai:
http://cjoint.com/?mCn6xLOiqe
Si tu peux regarder.
Cordialement,
GB54
On 28 déc, 12:13, lSteph <gmLSt...@gmail.com> wrote:
Bonjour,
Bizarre?
voici un classeur qui contient douze feuilles (une par mois)
où j'ai entré deux trois valeurs textes dates et le code
en question sans rencontrer ce souci. Testé sous 97 et 2003
http://cjoint.com/?mCmfLsrmR0
(au fait tu n'aurais pas conservé en redondance des procédures
événementielles dans le code des feuilles?!)
@+
--
lSteph
On 28 déc, 08:47, gael.beauverg...@libertysurf.fr wrote:
Bonjour LSteph,
Je viens de tester la macro: la ligne Select Case LCase(c)
renvoie toujours le message "Erreur d'éxécution '13'": incompatibi lité
de type.
J'ai beau lire l'aide excel je ne comprends pas bien et n'arrive pas à
modifier l'instruction.
Cordialement
GB54
On 27 déc, 12:33, lSteph <gmLSt...@gmail.com> wrote:
Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, gael.beauverg...@libertysurf.fr wrote:
Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées pa r
rapport à la protection de cellules.Cependant, dans un premier t emps
"to", "rdva" et "rdvb" sont des activités incontournables, faisa nt
partie des contraintes de planning. Elles sont saisies dans un pre mier
temps par un animateur d'équipe. Dans un deuxième temps, chaqu e
opérateur peut saisir son planning d'activités sur les plages libres.
J'ai copié les macros comme tu l'indiques mais lorsque j'exécu te sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph <gmLSt...@gmail.com> wrote:
Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque fois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l' ouverture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas cher cher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macr os)
Ensuite partant du principe qu'il active les macros, il doit pou voir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouil lé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, gael.beauverg...@libertysurf.fr wrote:
Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque f euille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient d éjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pou r celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!
Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souha ite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" d ès que ces
termes sont saisis et laisser les autres cellules accessib les à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer l e texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le te xte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
Je viens de refaire la manip: même message.
Je viens de vérifier les feuilles, il n'y a rien qui traine dedans, me
semble t'il.
J'ai vu ton fichier cela fonctione!
Je joins un exemple de ce que j'ai:
http://cjoint.com/?mCn6xLOiqe
Si tu peux regarder.
Cordialement,
GB54
On 28 déc, 12:13, lSteph wrote:Bonjour,
Bizarre?
voici un classeur qui contient douze feuilles (une par mois)
où j'ai entré deux trois valeurs textes dates et le code
en question sans rencontrer ce souci. Testé sous 97 et 2003
http://cjoint.com/?mCmfLsrmR0
(au fait tu n'aurais pas conservé en redondance des procédures
événementielles dans le code des feuilles?!)
@+
--
lSteph
On 28 déc, 08:47, wrote:Bonjour LSteph,
Je viens de tester la macro: la ligne Select Case LCase(c)
renvoie toujours le message "Erreur d'éxécution '13'": incompatibi lité
de type.
J'ai beau lire l'aide excel je ne comprends pas bien et n'arrive pas à
modifier l'instruction.
Cordialement
GB54
On 27 déc, 12:33, lSteph wrote:Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, wrote:Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées pa r
rapport à la protection de cellules.Cependant, dans un premier t emps
"to", "rdva" et "rdvb" sont des activités incontournables, faisa nt
partie des contraintes de planning. Elles sont saisies dans un pre mier
temps par un animateur d'équipe. Dans un deuxième temps, chaqu e
opérateur peut saisir son planning d'activités sur les plages libres.
J'ai copié les macros comme tu l'indiques mais lorsque j'exécu te sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph wrote:Bonjour,
Voir le code plus loin en respectant cette indication '''''dans
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut utiliser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaque fois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l' ouverture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas cher cher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les macr os)
Ensuite partant du principe qu'il active les macros, il doit pou voir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrouil lé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toutes les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque f euille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient d éjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "TO" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf pou r celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je souha ite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" d ès que ces
termes sont saisis et laisser les autres cellules accessib les à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer l e texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le te xte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
http://cjoint.com/?mCqYzbCCrI
Ceci était un exemple d'indication
Voir le code plus loin en respectant cette indication '''''dans
soit qd on regarde ce plus loin:
'''''module 1
Sub verif()
...
''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Et le code vérif était dans thisworkbook au lieu de module1 et les
codes de thisworkbook eux n'y étaient pas.
Ensuite tu as des cellules qui contiennent des formules renvoyant une
erreur,
j'ai donc corrigé le code pour gérer ces erreurs.
Enfin il y a de ces "P.. de S ..de M.. de Fusions à la C.."
le truc "par excellence" à toujours éviter dans un tableau "excel"
Lire tous les posts là dessus.
J'ai solutionné en ajoutant mergearea .
Cette fois cela devrait aller, je pense.
;-)
Bonne fin d'année.
--
lSteph
On 28 déc, 14:08, wrote:Bonjour,
Je viens de refaire la manip: même message.
Je viens de vérifier les feuilles, il n'y a rien qui traine dedans, me
semble t'il.
J'ai vu ton fichier cela fonctione!
Je joins un exemple de ce que j'ai:
http://cjoint.com/?mCn6xLOiqe
Si tu peux regarder.
Cordialement,
GB54
On 28 déc, 12:13, lSteph wrote:Bonjour,
Bizarre?
voici un classeur qui contient douze feuilles (une par mois)
où j'ai entré deux trois valeurs textes dates et le code
en question sans rencontrer ce souci. Testé sous 97 et 2003
http://cjoint.com/?mCmfLsrmR0
(au fait tu n'aurais pas conservé en redondance des procédures
événementielles dans le code des feuilles?!)
@+
--
lSteph
On 28 déc, 08:47, wrote:Bonjour LSteph,
Je viens de tester la macro: la ligne Select Case LCase(c)
renvoie toujours le message "Erreur d'éxécution '13'": incompati bilité
de type.
J'ai beau lire l'aide excel je ne comprends pas bien et n'arrive pas à
modifier l'instruction.
Cordialement
GB54
On 27 déc, 12:33, lSteph wrote:Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, wrote:Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier temps
"to", "rdva" et "rdvb" sont des activités incontournables, fai sant
partie des contraintes de planning. Elles sont saisies dans un p remier
temps par un animateur d'équipe. Dans un deuxième temps, cha que
opérateur peut saisir son planning d'activités sur les plage s libres.
J'ai copié les macros comme tu l'indiques mais lorsque j'exé cute sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph wrote:Bonjour,
Voir le code plus loin en respectant cette indication '''''dan s
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut util iser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaq ue fois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouverture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas ch ercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les ma cros)
Ensuite partant du principe qu'il active les macros, il doit p ouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrou illé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toute s les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wro te:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "T O" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf p our celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je sou haite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" d ès que ces
termes sont saisis et laisser les autres cellules access ibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
http://cjoint.com/?mCqYzbCCrI
Ceci était un exemple d'indication
Voir le code plus loin en respectant cette indication '''''dans
soit qd on regarde ce plus loin:
'''''module 1
Sub verif()
...
''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Et le code vérif était dans thisworkbook au lieu de module1 et les
codes de thisworkbook eux n'y étaient pas.
Ensuite tu as des cellules qui contiennent des formules renvoyant une
erreur,
j'ai donc corrigé le code pour gérer ces erreurs.
Enfin il y a de ces "P.. de S ..de M.. de Fusions à la C.."
le truc "par excellence" à toujours éviter dans un tableau "excel"
Lire tous les posts là dessus.
J'ai solutionné en ajoutant mergearea .
Cette fois cela devrait aller, je pense.
;-)
Bonne fin d'année.
--
lSteph
On 28 déc, 14:08, gael.beauverg...@libertysurf.fr wrote:
Bonjour,
Je viens de refaire la manip: même message.
Je viens de vérifier les feuilles, il n'y a rien qui traine dedans, me
semble t'il.
J'ai vu ton fichier cela fonctione!
Je joins un exemple de ce que j'ai:
http://cjoint.com/?mCn6xLOiqe
Si tu peux regarder.
Cordialement,
GB54
On 28 déc, 12:13, lSteph <gmLSt...@gmail.com> wrote:
Bonjour,
Bizarre?
voici un classeur qui contient douze feuilles (une par mois)
où j'ai entré deux trois valeurs textes dates et le code
en question sans rencontrer ce souci. Testé sous 97 et 2003
http://cjoint.com/?mCmfLsrmR0
(au fait tu n'aurais pas conservé en redondance des procédures
événementielles dans le code des feuilles?!)
@+
--
lSteph
On 28 déc, 08:47, gael.beauverg...@libertysurf.fr wrote:
Bonjour LSteph,
Je viens de tester la macro: la ligne Select Case LCase(c)
renvoie toujours le message "Erreur d'éxécution '13'": incompati bilité
de type.
J'ai beau lire l'aide excel je ne comprends pas bien et n'arrive pas à
modifier l'instruction.
Cordialement
GB54
On 27 déc, 12:33, lSteph <gmLSt...@gmail.com> wrote:
Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, gael.beauverg...@libertysurf.fr wrote:
Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier temps
"to", "rdva" et "rdvb" sont des activités incontournables, fai sant
partie des contraintes de planning. Elles sont saisies dans un p remier
temps par un animateur d'équipe. Dans un deuxième temps, cha que
opérateur peut saisir son planning d'activités sur les plage s libres.
J'ai copié les macros comme tu l'indiques mais lorsque j'exé cute sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph <gmLSt...@gmail.com> wrote:
Bonjour,
Voir le code plus loin en respectant cette indication '''''dan s
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut util iser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaq ue fois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouverture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas ch ercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les ma cros)
Ensuite partant du principe qu'il active les macros, il doit p ouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrou illé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toute s les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, gael.beauverg...@libertysurf.fr wrote:
Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO <F...@discussions.microsoft.com> wro te:
Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "T O" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf p our celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!
Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je sou haite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" d ès que ces
termes sont saisis et laisser les autres cellules access ibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Bonjour,
http://cjoint.com/?mCqYzbCCrI
Ceci était un exemple d'indication
Voir le code plus loin en respectant cette indication '''''dans
soit qd on regarde ce plus loin:
'''''module 1
Sub verif()
...
''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Et le code vérif était dans thisworkbook au lieu de module1 et les
codes de thisworkbook eux n'y étaient pas.
Ensuite tu as des cellules qui contiennent des formules renvoyant une
erreur,
j'ai donc corrigé le code pour gérer ces erreurs.
Enfin il y a de ces "P.. de S ..de M.. de Fusions à la C.."
le truc "par excellence" à toujours éviter dans un tableau "excel"
Lire tous les posts là dessus.
J'ai solutionné en ajoutant mergearea .
Cette fois cela devrait aller, je pense.
;-)
Bonne fin d'année.
--
lSteph
On 28 déc, 14:08, wrote:Bonjour,
Je viens de refaire la manip: même message.
Je viens de vérifier les feuilles, il n'y a rien qui traine dedans, me
semble t'il.
J'ai vu ton fichier cela fonctione!
Je joins un exemple de ce que j'ai:
http://cjoint.com/?mCn6xLOiqe
Si tu peux regarder.
Cordialement,
GB54
On 28 déc, 12:13, lSteph wrote:Bonjour,
Bizarre?
voici un classeur qui contient douze feuilles (une par mois)
où j'ai entré deux trois valeurs textes dates et le code
en question sans rencontrer ce souci. Testé sous 97 et 2003
http://cjoint.com/?mCmfLsrmR0
(au fait tu n'aurais pas conservé en redondance des procédures
événementielles dans le code des feuilles?!)
@+
--
lSteph
On 28 déc, 08:47, wrote:Bonjour LSteph,
Je viens de tester la macro: la ligne Select Case LCase(c)
renvoie toujours le message "Erreur d'éxécution '13'": incompati bilité
de type.
J'ai beau lire l'aide excel je ne comprends pas bien et n'arrive pas à
modifier l'instruction.
Cordialement
GB54
On 27 déc, 12:33, lSteph wrote:Bonjour,
ceci devrait passer:
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
Next c
Next Sh
Application.StatusBar = False
End Sub
'lSteph
On 27 déc, 09:30, wrote:Bonjour,
Merci pour l'aide. J'ai bien conscence des alertes évoquées par
rapport à la protection de cellules.Cependant, dans un premier temps
"to", "rdva" et "rdvb" sont des activités incontournables, fai sant
partie des contraintes de planning. Elles sont saisies dans un p remier
temps par un animateur d'équipe. Dans un deuxième temps, cha que
opérateur peut saisir son planning d'activités sur les plage s libres.
J'ai copié les macros comme tu l'indiques mais lorsque j'exé cute sub
verif(), j'ai une erreur de type 13 sur la ligne: If Not Len(c) > 0
Then
Comment peut on y remédier?
Cordialement
GB54
On 26 déc, 17:19, lSteph wrote:Bonjour,
Voir le code plus loin en respectant cette indication '''''dan s
Thisworkbook
on est pas obligé de traiter chaque feuille, on peut util iser
l'évènement correspondant dans ThisWorkbook
on est pas obligé non plus de protéger déprotéger chaq ue fois, il
suffit d'utiliser userinterfaceonly
nota: la protection doit être à cet effet effectuée à l'ouverture du
classeur!
Pour rappel de ce que l'on redisait encore sur ce forum il y a peu
tout cela ne protège que tant que l'utilisateur ne va pas ch ercher
plus loin ...
(vu ce qui existe sur la toile, pas besoin de connaitre les ma cros)
Ensuite partant du principe qu'il active les macros, il doit p ouvoir
taper
taper TO ou RDVa ... mais comme justement remarqué par FFO cela
pose un risque,
si c'était par erreur il ne peut plus modifier, c'est verrou illé!
Il faut penser aussi à l'ajout de feuille.
Enfin pour ce qui t'ennuie dans un premier temps traiter toute s les
cellules déjà remplies
Attention limiter à la plage à traiter ici [a1:z200]
sinon ça peut être long
'''''module 1
Sub verif()
Dim Sh As Worksheet, c As Range
For Each Sh In ThisWorkbook.Sheets
For Each c In Sh.[a1:z200].Cells
If Not Len(c) > 0 Then
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Application.StatusBar = Sh.Name & " " & c.Address
End If
Next c
Next Sh
End Sub
'''''dans Thisworkbook
Option Explicit
Private Sub Workbook_Open()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
Sh.Protect password:="toto", userinterfaceonly:=True
Next
End Sub
Private Sub Workbook_SheetChange(ByVal _
Sh As Object, ByVal Target As Excel.Range)
'agit sur chaque feuille lors de la saisie
Dim c As Range
For Each c In Target.Cells
Select Case LCase(c)
Case "rdva", "rdvb", "to"
c.Locked = True
Case Else
c.Locked = False
End Select
Next
End Sub
Private Sub Workbook_NewSheet(ByVal Sh As Object)
'au cas ou on ajoute des feuilles
Sh.Cells.Locked = False
Sh.Protect password:="toto", userinterfaceonly:=True
End Sub
'''''''''''''''''''''
'lSteph
On 26 déc, 16:13, wrote:Bonjour FFO
Cela fonctionne, à condition de copier le code dans chaque feuille
effectivement.
Cependant cela ne protége pas les cellules qui contenaient déjà
"RDVa", "RDVb", "TO" avant la mise en place de la macro.
Cordialement,
GB54
On 26 déc, 14:10, FFO wro te:Salut à toi
A chacune de tes feuilles :
Selectionnes la entierement
Format/Cellule
Dans onglet Protection décoches Vérouillée
Fermes la fenêtre Format de cellule
Outils/Protection/Protéger la feuille
Mets éventuellement un mot de passe et Ok
Mets ce code dans son VBA (ALT/F11):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "RDVa" Or Target = "RDVb" Or Target = "T O" Then
ActiveSheet.Unprotect ("Mot de passe")
Target.Locked = True
ActiveSheet.Protect ("Mot de passe")
End If
End Sub
La saisie reste libre dans n'importe quelle cellule sauf p our celles où un
des termes :
RDVa
RDVb
TO
Est saisi
Ce qui les verrouillera et interdira toute nouvelle saisie
Celà devrait te convenir
Dis moi!!Bonjour à tous,
Sur un planning annuel de 12 feuilles mensuelles, je sou haite protéger
les cellules contenant les termes "RDVa", "RDVb", "TO" d ès que ces
termes sont saisis et laisser les autres cellules access ibles à la
saisie des utilisateurs.
Cela est il possible?
Cordialement et bonnes fêtes à tous,
GB54- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -