OVH Cloud OVH Cloud

interdire saisie (réponse à Papou)

3 réponses
Avatar
interdire saisie \(pour Papou\)
BOnjour,
Je r=E9ponds avec un peu de retard =E0 ta proposition=20
suivante:

Private Sub Worksheet_Activate()
ActiveSheet.ScrollArea =3D Union(Range("A1:A10"), Range
("B1:B10")).Address
End Sub

ceci ne marche pas si les zones que je veux rendre=20
accessibles =E0 la saisie (dans mon cas des colonnes=20
enti=E8res) ne se touchent pas: par ex je veux ne rendre=20
accessibles que les colonnes A,B et les colonnes T =E0 X de=20
mon tableau.
Est ce possible (sans prot=E9ger la feuille).
Merci =E0 vous

3 réponses

Avatar
ru-th
Salut

une possiblité
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Evaluate("or(" & Target.Column & "={1;2;20;21;22;23;24})") = False Then _
Cells(Target.Row, 1).Select
End Sub

a+
rural thierry
"interdire saisie (pour Papou)" a écrit dans le message de
news: 441a01c3e3e3$788c0730$
BOnjour,
Je réponds avec un peu de retard à ta proposition
suivante:

Private Sub Worksheet_Activate()
ActiveSheet.ScrollArea = Union(Range("A1:A10"), Range
("B1:B10")).Address
End Sub

ceci ne marche pas si les zones que je veux rendre
accessibles à la saisie (dans mon cas des colonnes
entières) ne se touchent pas: par ex je veux ne rendre
accessibles que les colonnes A,B et les colonnes T à X de
mon tableau.
Est ce possible (sans protéger la feuille).
Merci à vous
Avatar
papou
Bonjour
La solution de Thierry est sympa :-)
Sinon autre possibilité :
Définir un nom faisant référence à la zone autorisée exemple :
Feuil1!$A:$A;Feuil1!$B:$B;Feuil1!$T:$X)
Placer ceci dans le code de la feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("ZoneAutorisee")) Is Nothing Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
End If
End Sub

Cordialement
Pascal


"interdire saisie (pour Papou)" a écrit dans le message de
news:441a01c3e3e3$788c0730$
BOnjour,
Je réponds avec un peu de retard à ta proposition
suivante:

Private Sub Worksheet_Activate()
ActiveSheet.ScrollArea = Union(Range("A1:A10"), Range
("B1:B10")).Address
End Sub

ceci ne marche pas si les zones que je veux rendre
accessibles à la saisie (dans mon cas des colonnes
entières) ne se touchent pas: par ex je veux ne rendre
accessibles que les colonnes A,B et les colonnes T à X de
mon tableau.
Est ce possible (sans protéger la feuille).
Merci à vous
Avatar
Merci, mais..
Cette solution fonctionne sur les nouveaux fichiers, par
contre je dois avoir un fichier qui provient d'une
version antérieur à 2000, et là, j'ai une "erreur de
compatibilité de type'"erreur 13" qui bloque cette macro.
Il ya t-il une astuce dans ce cas ?
-----Message d'origine-----
Salut

une possiblité
Private Sub Worksheet_SelectionChange(ByVal Target As
Range)

If Evaluate("or(" & Target.Column & "=
{1;2;20;21;22;23;24})") = False Then _

Cells(Target.Row, 1).Select
End Sub

a+
rural thierry
"interdire saisie (pour Papou)" a écrit
dans le message de

news: 441a01c3e3e3$788c0730$
BOnjour,
Je réponds avec un peu de retard à ta proposition
suivante:

Private Sub Worksheet_Activate()
ActiveSheet.ScrollArea = Union(Range("A1:A10"), Range
("B1:B10")).Address
End Sub

ceci ne marche pas si les zones que je veux rendre
accessibles à la saisie (dans mon cas des colonnes
entières) ne se touchent pas: par ex je veux ne rendre
accessibles que les colonnes A,B et les colonnes T à X de
mon tableau.
Est ce possible (sans protéger la feuille).
Merci à vous


.