J'essaie de vouloir faire démasquer des lignes potentiellement masquées sur
des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la
macro évènementielle ne soit activée que lorsqu'une seule feuille est
sélectionnée (et non plusieurs) ...
J'ai mis :
If SelectedSheets.Count = 1 Then ...
mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug (XL2000)
?
merci à tous, et meilleurs voux pour 2008.
François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then
If Left(ActiveSheet.Name, 5) = "Frais" Then
ActiveSheet.Unprotect
Rows("1:107").Hidden = False
ActiveSheet.Protect , True, True, True
ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then
ActiveSheet.Unprotect
Rows("24:33").Hidden = False
ActiveSheet.Protect , True, True, True
End If
End If
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
François
j'ai oublié de préciser que le bug se produite sur la ligne : If SelectedSheets.Count = 1 Then avec dans l'aide VBA : Objet requis (erreur 424)...
"François" a écrit dans le message de news: %
Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées sur des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la macro évènementielle ne soit activée que lorsqu'une seule feuille est sélectionnée (et non plusieurs) ...
J'ai mis : If SelectedSheets.Count = 1 Then ... mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug (XL2000) ?
merci à tous, et meilleurs voux pour 2008. François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then If Left(ActiveSheet.Name, 5) = "Frais" Then ActiveSheet.Unprotect Rows("1:107").Hidden = False ActiveSheet.Protect , True, True, True ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then ActiveSheet.Unprotect Rows("24:33").Hidden = False ActiveSheet.Protect , True, True, True End If End If End Sub
j'ai oublié de préciser que le bug se produite sur la ligne :
If SelectedSheets.Count = 1 Then
avec dans l'aide VBA :
Objet requis (erreur 424)...
"François" <nospam@nospam.fr> a écrit dans le message de news:
%23eO9VZuTIHA.5208@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées
sur des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais
que la macro évènementielle ne soit activée que lorsqu'une seule feuille
est sélectionnée (et non plusieurs) ...
J'ai mis :
If SelectedSheets.Count = 1 Then ...
mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug
(XL2000) ?
merci à tous, et meilleurs voux pour 2008.
François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then
If Left(ActiveSheet.Name, 5) = "Frais" Then
ActiveSheet.Unprotect
Rows("1:107").Hidden = False
ActiveSheet.Protect , True, True, True
ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then
ActiveSheet.Unprotect
Rows("24:33").Hidden = False
ActiveSheet.Protect , True, True, True
End If
End If
End Sub
j'ai oublié de préciser que le bug se produite sur la ligne : If SelectedSheets.Count = 1 Then avec dans l'aide VBA : Objet requis (erreur 424)...
"François" a écrit dans le message de news: %
Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées sur des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la macro évènementielle ne soit activée que lorsqu'une seule feuille est sélectionnée (et non plusieurs) ...
J'ai mis : If SelectedSheets.Count = 1 Then ... mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug (XL2000) ?
merci à tous, et meilleurs voux pour 2008. François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then If Left(ActiveSheet.Name, 5) = "Frais" Then ActiveSheet.Unprotect Rows("1:107").Hidden = False ActiveSheet.Protect , True, True, True ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then ActiveSheet.Unprotect Rows("24:33").Hidden = False ActiveSheet.Protect , True, True, True End If End If End Sub
MichDenis
| If SelectedSheets.Count = 1 Then ...
Ceci devrait fonctionner : If ActiveWindow.SelectedSheets.Count =1 Then
"François" a écrit dans le message de news: % Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées sur des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la macro évènementielle ne soit activée que lorsqu'une seule feuille est sélectionnée (et non plusieurs) ...
J'ai mis : If SelectedSheets.Count = 1 Then ... mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug (XL2000) ?
merci à tous, et meilleurs voux pour 2008. François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then If Left(ActiveSheet.Name, 5) = "Frais" Then ActiveSheet.Unprotect Rows("1:107").Hidden = False ActiveSheet.Protect , True, True, True ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then ActiveSheet.Unprotect Rows("24:33").Hidden = False ActiveSheet.Protect , True, True, True End If End If End Sub
| If SelectedSheets.Count = 1 Then ...
Ceci devrait fonctionner :
If ActiveWindow.SelectedSheets.Count =1 Then
"François" <nospam@nospam.fr> a écrit dans le message de news:
%23eO9VZuTIHA.5208@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées sur
des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la
macro évènementielle ne soit activée que lorsqu'une seule feuille est
sélectionnée (et non plusieurs) ...
J'ai mis :
If SelectedSheets.Count = 1 Then ...
mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug (XL2000)
?
merci à tous, et meilleurs voux pour 2008.
François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then
If Left(ActiveSheet.Name, 5) = "Frais" Then
ActiveSheet.Unprotect
Rows("1:107").Hidden = False
ActiveSheet.Protect , True, True, True
ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then
ActiveSheet.Unprotect
Rows("24:33").Hidden = False
ActiveSheet.Protect , True, True, True
End If
End If
End Sub
Ceci devrait fonctionner : If ActiveWindow.SelectedSheets.Count =1 Then
"François" a écrit dans le message de news: % Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées sur des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la macro évènementielle ne soit activée que lorsqu'une seule feuille est sélectionnée (et non plusieurs) ...
J'ai mis : If SelectedSheets.Count = 1 Then ... mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug (XL2000) ?
merci à tous, et meilleurs voux pour 2008. François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then If Left(ActiveSheet.Name, 5) = "Frais" Then ActiveSheet.Unprotect Rows("1:107").Hidden = False ActiveSheet.Protect , True, True, True ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then ActiveSheet.Unprotect Rows("24:33").Hidden = False ActiveSheet.Protect , True, True, True End If End If End Sub
AH60
Bonjour
enlève cette ligne If SelectedSheets.Count = 1 Then et le dernier Endif et ça marche!!!
Abed_H
Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées sur des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la macro évènementielle ne soit activée que lorsqu'une seule feuille est sélectionnée (et non plusieurs) ...
J'ai mis : If SelectedSheets.Count = 1 Then ... mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug (XL2000) ?
merci à tous, et meilleurs voux pour 2008. François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then If Left(ActiveSheet.Name, 5) = "Frais" Then ActiveSheet.Unprotect Rows("1:107").Hidden = False ActiveSheet.Protect , True, True, True ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then ActiveSheet.Unprotect Rows("24:33").Hidden = False ActiveSheet.Protect , True, True, True End If End If End Sub
Bonjour
enlève cette ligne If SelectedSheets.Count = 1 Then et le dernier Endif
et ça marche!!!
Abed_H
Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées sur
des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la
macro évènementielle ne soit activée que lorsqu'une seule feuille est
sélectionnée (et non plusieurs) ...
J'ai mis :
If SelectedSheets.Count = 1 Then ...
mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug (XL2000)
?
merci à tous, et meilleurs voux pour 2008.
François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then
If Left(ActiveSheet.Name, 5) = "Frais" Then
ActiveSheet.Unprotect
Rows("1:107").Hidden = False
ActiveSheet.Protect , True, True, True
ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then
ActiveSheet.Unprotect
Rows("24:33").Hidden = False
ActiveSheet.Protect , True, True, True
End If
End If
End Sub
enlève cette ligne If SelectedSheets.Count = 1 Then et le dernier Endif et ça marche!!!
Abed_H
Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées sur des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la macro évènementielle ne soit activée que lorsqu'une seule feuille est sélectionnée (et non plusieurs) ...
J'ai mis : If SelectedSheets.Count = 1 Then ... mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug (XL2000) ?
merci à tous, et meilleurs voux pour 2008. François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then If Left(ActiveSheet.Name, 5) = "Frais" Then ActiveSheet.Unprotect Rows("1:107").Hidden = False ActiveSheet.Protect , True, True, True ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then ActiveSheet.Unprotect Rows("24:33").Hidden = False ActiveSheet.Protect , True, True, True End If End If End Sub
François
Merci beaucoup Michdenis,
Je n'avais pas eu l'idée de mettre devant un "ActiveWindow." et cela change alors tout.
Merci beaucoup pour ton "éclairage" et bonne année 2008.
François
"MichDenis" a écrit dans le message de news:
| If SelectedSheets.Count = 1 Then ...
Ceci devrait fonctionner : If ActiveWindow.SelectedSheets.Count =1 Then
"François" a écrit dans le message de news: % Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées sur des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la macro évènementielle ne soit activée que lorsqu'une seule feuille est sélectionnée (et non plusieurs) ...
J'ai mis : If SelectedSheets.Count = 1 Then ... mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug (XL2000) ?
merci à tous, et meilleurs voux pour 2008. François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then If Left(ActiveSheet.Name, 5) = "Frais" Then ActiveSheet.Unprotect Rows("1:107").Hidden = False ActiveSheet.Protect , True, True, True ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then ActiveSheet.Unprotect Rows("24:33").Hidden = False ActiveSheet.Protect , True, True, True End If End If End Sub
Merci beaucoup Michdenis,
Je n'avais pas eu l'idée de mettre devant un "ActiveWindow." et cela change
alors tout.
Merci beaucoup pour ton "éclairage" et bonne année 2008.
François
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
OLkbfluTIHA.4532@TK2MSFTNGP02.phx.gbl...
| If SelectedSheets.Count = 1 Then ...
Ceci devrait fonctionner :
If ActiveWindow.SelectedSheets.Count =1 Then
"François" <nospam@nospam.fr> a écrit dans le message de news:
%23eO9VZuTIHA.5208@TK2MSFTNGP04.phx.gbl...
Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées
sur
des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la
macro évènementielle ne soit activée que lorsqu'une seule feuille est
sélectionnée (et non plusieurs) ...
J'ai mis :
If SelectedSheets.Count = 1 Then ...
mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug
(XL2000)
?
merci à tous, et meilleurs voux pour 2008.
François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then
If Left(ActiveSheet.Name, 5) = "Frais" Then
ActiveSheet.Unprotect
Rows("1:107").Hidden = False
ActiveSheet.Protect , True, True, True
ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then
ActiveSheet.Unprotect
Rows("24:33").Hidden = False
ActiveSheet.Protect , True, True, True
End If
End If
End Sub
Je n'avais pas eu l'idée de mettre devant un "ActiveWindow." et cela change alors tout.
Merci beaucoup pour ton "éclairage" et bonne année 2008.
François
"MichDenis" a écrit dans le message de news:
| If SelectedSheets.Count = 1 Then ...
Ceci devrait fonctionner : If ActiveWindow.SelectedSheets.Count =1 Then
"François" a écrit dans le message de news: % Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées sur des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la macro évènementielle ne soit activée que lorsqu'une seule feuille est sélectionnée (et non plusieurs) ...
J'ai mis : If SelectedSheets.Count = 1 Then ... mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug (XL2000) ?
merci à tous, et meilleurs voux pour 2008. François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then If Left(ActiveSheet.Name, 5) = "Frais" Then ActiveSheet.Unprotect Rows("1:107").Hidden = False ActiveSheet.Protect , True, True, True ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then ActiveSheet.Unprotect Rows("24:33").Hidden = False ActiveSheet.Protect , True, True, True End If End If End Sub
François
Bonjour AH60,
Sans la ligne "If SelectedSheets.Count =1 Then" j'ai un bog en cas de sélection multiple de feuilles d'où cette ligne ...
Mais la solution de Michdenis fonctionne à souhaits ...
Merci beaucoup et bonne année 2008.
François
"AH60" a écrit dans le message de news:
Bonjour
enlève cette ligne If SelectedSheets.Count = 1 Then et le dernier Endif et ça marche!!!
Abed_H
Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées sur des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la macro évènementielle ne soit activée que lorsqu'une seule feuille est sélectionnée (et non plusieurs) ...
J'ai mis : If SelectedSheets.Count = 1 Then ... mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug (XL2000) ?
merci à tous, et meilleurs voux pour 2008. François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then If Left(ActiveSheet.Name, 5) = "Frais" Then ActiveSheet.Unprotect Rows("1:107").Hidden = False ActiveSheet.Protect , True, True, True ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then ActiveSheet.Unprotect Rows("24:33").Hidden = False ActiveSheet.Protect , True, True, True End If End If End Sub
Bonjour AH60,
Sans la ligne "If SelectedSheets.Count =1 Then" j'ai un bog en cas de
sélection multiple de feuilles d'où cette ligne ...
Mais la solution de Michdenis fonctionne à souhaits ...
Merci beaucoup et bonne année 2008.
François
"AH60" <AH60@discussions.microsoft.com> a écrit dans le message de news:
18CC5AFF-F67D-4D9A-90A4-A87099B391E7@microsoft.com...
Bonjour
enlève cette ligne If SelectedSheets.Count = 1 Then et le dernier Endif
et ça marche!!!
Abed_H
Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées
sur
des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que
la
macro évènementielle ne soit activée que lorsqu'une seule feuille est
sélectionnée (et non plusieurs) ...
J'ai mis :
If SelectedSheets.Count = 1 Then ...
mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug
(XL2000)
?
merci à tous, et meilleurs voux pour 2008.
François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then
If Left(ActiveSheet.Name, 5) = "Frais" Then
ActiveSheet.Unprotect
Rows("1:107").Hidden = False
ActiveSheet.Protect , True, True, True
ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then
ActiveSheet.Unprotect
Rows("24:33").Hidden = False
ActiveSheet.Protect , True, True, True
End If
End If
End Sub
Sans la ligne "If SelectedSheets.Count =1 Then" j'ai un bog en cas de sélection multiple de feuilles d'où cette ligne ...
Mais la solution de Michdenis fonctionne à souhaits ...
Merci beaucoup et bonne année 2008.
François
"AH60" a écrit dans le message de news:
Bonjour
enlève cette ligne If SelectedSheets.Count = 1 Then et le dernier Endif et ça marche!!!
Abed_H
Bonjour à tous,
J'essaie de vouloir faire démasquer des lignes potentiellement masquées sur des feuilles protégées sur un "Workbook_SheetActivate". Je voudrais que la macro évènementielle ne soit activée que lorsqu'une seule feuille est sélectionnée (et non plusieurs) ...
J'ai mis : If SelectedSheets.Count = 1 Then ... mais cela ne fonctionne pas ; avez-vous une idée pour éviter le bug (XL2000) ?
merci à tous, et meilleurs voux pour 2008. François
voici le code complet :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If SelectedSheets.Count = 1 Then If Left(ActiveSheet.Name, 5) = "Frais" Then ActiveSheet.Unprotect Rows("1:107").Hidden = False ActiveSheet.Protect , True, True, True ElseIf Left(ActiveSheet.Name, 4) = "Fact" Then ActiveSheet.Unprotect Rows("24:33").Hidden = False ActiveSheet.Protect , True, True, True End If End If End Sub