OVH Cloud OVH Cloud

Blocage défilement

10 réponses
Avatar
Zoltan
Salut à tous,

comment faire pour bloquer le défilement vertical
et horizontal d'une feuille ?

merci de vos réponses

10 réponses

Avatar
Zoltan
Il y a du scrollarea dans l'air !
http://www.excelabo.net/xl/application.htm#d%E9filementfenetre



ok, j'ai été voir ça et collé cette procédure
Sub LimiteDefilement()
ActiveSheet.ScrollArea = "A1:IV33"
End Sub

on ne doit pas dépasser la ligne 33,
mais ça ne fonctionne pas,
comment ce fait-ce?

peut être que je ne l'ai pas placée au bon endroit ??

Avatar
Philippe.R
Bonsoir Zoltan,
Colle le plutôt dans le module de la feuille, comme ceci :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.ScrollArea = "A1:Iv33"
End Sub

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
"Zoltan" a écrit dans le message de news:eLEM$
Il y a du scrollarea dans l'air !
http://www.excelabo.net/xl/application.htm#d%E9filementfenetre



ok, j'ai été voir ça et collé cette procédure
Sub LimiteDefilement()
ActiveSheet.ScrollArea = "A1:IV33"
End Sub

on ne doit pas dépasser la ligne 33,
mais ça ne fonctionne pas,
comment ce fait-ce?

peut être que je ne l'ai pas placée au bon endroit ??





Avatar
Zoltan
Colle le plutôt dans le module de la feuille, comme ceci :


marche pas,
nom ambigu détecté
à cause de ça :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target, Range("b2:B3")) Is Nothing Then Exit Sub
If Target.Address = "$B$2:$B$3" Then Exit Sub
ActiveSheet.Unprotect
If Target.Address = "$B$3" Then
Set Cellule = Range("b3")
Liste = "=NOMa"

Sheets("client").[a1].CurrentRegion.Sort Key1:=Sheets("client").[b2],
Header:=xlYes
dataentry.Show

If [b2].Value = "00000" Then
[b2].ClearContents
[e3].Select
Else

[b3].ClearContents
[b3].Validation.Delete
[b3].FormulaLocal = "=INDEX(NOMa;equiv(Saisie!$B$2;NUMa;0))"
[b8].Select
End If
ElseIf Target.Address = "$B$2" Then
Set Cellule = Range("b2")
Liste = "=NUMa"
Sheets("client").[a1].CurrentRegion.Sort Key1:=Sheets("client").[a2],
Header:=xlYes
valid
[b3].FormulaLocal = "=INDEX(NOMa;equiv(Saisie!$B$2;NUMa;0))"

End If

ActiveSheet.Protect

End Sub

Avatar
Philippe.R
Bonjour,
Si j'ai bien compris, tu utilises déjà la procédure SelectionChange pour cette feuille ; il te reste
alors à modifier le début de la macro ainsi :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.ScrollArea = "A1:Iv33"
If Intersect(Target, Range("b2:B3")) Is Nothing Then Exit Sub
'..............................................................la suite de ta macro
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
"Zoltan" a écrit dans le message de news:
Colle le plutôt dans le module de la feuille, comme ceci :


marche pas,
nom ambigu détecté
à cause de ça :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target, Range("b2:B3")) Is Nothing Then Exit Sub
If Target.Address = "$B$2:$B$3" Then Exit Sub
ActiveSheet.Unprotect
If Target.Address = "$B$3" Then
Set Cellule = Range("b3")
Liste = "=NOMa"

Sheets("client").[a1].CurrentRegion.Sort Key1:=Sheets("client").[b2],
Header:=xlYes
dataentry.Show

If [b2].Value = "00000" Then
[b2].ClearContents
[e3].Select
Else

[b3].ClearContents
[b3].Validation.Delete
[b3].FormulaLocal = "=INDEX(NOMa;equiv(Saisie!$B$2;NUMa;0))"
[b8].Select
End If
ElseIf Target.Address = "$B$2" Then
Set Cellule = Range("b2")
Liste = "=NUMa"
Sheets("client").[a1].CurrentRegion.Sort Key1:=Sheets("client").[a2],
Header:=xlYes
valid
[b3].FormulaLocal = "=INDEX(NOMa;equiv(Saisie!$B$2;NUMa;0))"

End If

ActiveSheet.Protect

End Sub





Avatar
AV
Ne mets pas le "ScrollArea" dans une proc évènementielle mais directement dans
les propriétés de la feuille
Dans VB editor, sélection de la feuille => affichage fenêtre propriétés =>
ScrollArea => saisir l'adresse

AV

"Zoltan" a écrit dans le message news:

Colle le plutôt dans le module de la feuille, comme ceci :


marche pas,
nom ambigu détecté
à cause de ça :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target, Range("b2:B3")) Is Nothing Then Exit Sub
If Target.Address = "$B$2:$B$3" Then Exit Sub
ActiveSheet.Unprotect
If Target.Address = "$B$3" Then
Set Cellule = Range("b3")
Liste = "=NOMa"

Sheets("client").[a1].CurrentRegion.Sort Key1:=Sheets("client").[b2],
Header:=xlYes
dataentry.Show

If [b2].Value = "00000" Then
[b2].ClearContents
[e3].Select
Else

[b3].ClearContents
[b3].Validation.Delete
[b3].FormulaLocal = "=INDEX(NOMa;equiv(Saisie!$B$2;NUMa;0))"
[b8].Select
End If
ElseIf Target.Address = "$B$2" Then
Set Cellule = Range("b2")
Liste = "=NUMa"
Sheets("client").[a1].CurrentRegion.Sort Key1:=Sheets("client").[a2],
Header:=xlYes
valid
[b3].FormulaLocal = "=INDEX(NOMa;equiv(Saisie!$B$2;NUMa;0))"

End If

ActiveSheet.Protect

End Sub





Avatar
Philippe.R
Bonjour Zoltan,

Tu as repéré la manip proposée par Alain ?
pour mémoire, clic droit sur l'onglet de la feuille dont tu veux limiter la zone parcourable
dans la fenêtre en bas à gauche de l'éditeur qui viens de s'ouvrir
face à la propriété scrollarea (chez moi la 3ème en partant du bas)
saisir a1:e33 dans ton cas (ou bien ce que j'en ai compris)

ou bien si tu veux poursuivre dans la piste que je t'avais proposée :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.ScrollArea = "A1:E33"
If Intersect(Target, Range("b2:B3")) Is Nothing Then Exit Sub
'...........................................................la suite de ta macro

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
"Zoltan" a écrit dans le message de news:
ok, ça marche
et alors pour le bloquer défilement horizontal à la colonne "E" ?
pour info, j'ai des cellules fusionnées


merci




Avatar
Philippe.R
Re,
"et maintenant, pour le bloquer défilement horizontal à la colonne "E" ?"
ben, tu mets E à la place de IV
pour info, j'ai des cellules fusionnées
si elles débordent de la plage, ça risque de gueuler un peu !

pour mémoire, les cellules fusionnées sont à éviter autant que faire se peut ; il est préférable
d'utiliser format / cellule / onglet alignement / centrer sur plusieurs colonnes (qui n'existe
malheureusement pas en vertical)
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
"Zoltan" a écrit dans le message de news:
ou bien si tu veux poursuivre dans la piste que je t'avais proposée
Ben oui, c'est bien ce que j'ai fait et ça fonctionne parfaitement,

et maintenant, pour le bloquer défilement horizontal à la colonne "E" ?
pour info, j'ai des cellules fusionnées


merci





Avatar
Zoltan
ben, tu mets E à la place de IV
génial, ça marche


pour info, j'ai des cellules fusionnées
si elles débordent de la plage, ça risque de gueuler un peu !

non, elles ne débordent pas


pour mémoire, les cellules fusionnées sont à éviter autant que faire se
peut ; il est préférable

d'utiliser format / cellule / onglet alignement / centrer sur plusieurs
colonnes

mais comme ça marche, tu penses que je dois laisser comme ça ou
centrer sur plusieurs colonnes ?


Avatar
Philippe.R
Re,
Si tu as le courage, tu modifies ta mise en page pour centrer sur plusieurs colonnes au lieu de
fusionner, sinon tu laisses et tu gardes la soluce en mémoire pour une prochaine fois.
;o))
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
"Zoltan" a écrit dans le message de news:u%
ben, tu mets E à la place de IV
génial, ça marche


pour info, j'ai des cellules fusionnées
si elles débordent de la plage, ça risque de gueuler un peu !

non, elles ne débordent pas


pour mémoire, les cellules fusionnées sont à éviter autant que faire se
peut ; il est préférable

d'utiliser format / cellule / onglet alignement / centrer sur plusieurs
colonnes

mais comme ça marche, tu penses que je dois laisser comme ça ou
centrer sur plusieurs colonnes ?







Avatar
Zoltan
Si tu as le courage, tu modifies ta mise en page pour centrer sur
plusieurs colonnes au lieu de

fusionner, sinon tu laisses et tu gardes la soluce en mémoire pour une
prochaine fois.

ben le défilement est bloqué exactement comme je le voulais,
mais disons que c'est comme un "chalenge" pour moi et je vais essayer de
faire
comme tu dis,

à +