limiter accés à plusieurs plages

  • Initiateur de la discussion Initiateur de la discussion gepeto
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gepeto

Guest
voila je veux limiter l'accés à certaines plages dans une feuill
je mets ça dans une worksheet et ça marche
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheets("Feuil1").ScrollArea = "A1:B3"
End Sub

ou

Private Sub Workbook_Open()
Feuil1.ScrollArea = "A1:B3"
End Sub
dans un workbook, ça marche

mais je ne n'arrive pas pour 2 plages dans une meme feuill, exemple A1:B3 et E1:F3

gd merci d'avance

et bonjour à toutes et à tous
 
Bonjour a toi

essaie ca


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim zone As Range
Dim ok As Byte

For Each zone In Range("a1", "F8") 'il faudra créer autant de boucle que de zone autorisée (je me penche pour tout mettre d'un coup)
If Target = zone Then ok = 1 'ok=1 veut dire que la cellule choisie est ok
Next

If ok = 0 Then Range("a1").Select 'il faut impérativement mettre une cellule que tu acceptes sinon ca va tourner en boucle
End Sub
 
Bon bah j'ai trouvé


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim zone As Range
Dim ok As Byte

For Each zone In Range("B13:E19,G8:J17,G23:J30")
If Target = zone Then ok = 1 'ok=1 veut dire que la cellule choisie est ok
Next

If ok = 0 Then Range("b13").Select 'il faut impérativement mettre une cellule que tu acceptes sinon ca va tourner en boucle
End Sub


attention il ne faut pas faire de multiselection sinon ca plante (désolé)
 
bonjour

ton "if target=zone" n'est pas une solution optimale il faut plutôt tester l'intersection, cf méthode intersect

bye
stephane

cf <http://xlbysteph.free.fr/aideinformatique/actioncellule.htm>
cf <http://xlbysteph.free.fr/aideinformatique/actionvba2.htm>
 
j'ai mis ça :

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim zone As Range
Dim ok As Byte

For Each zone In Range("A1:B5,E1:F5")
If Target = zone Then ok = 1 'ok=1 veut dire que la cellule choisie est ok
Next

If ok = 0 Then Range("b13").Select 'il faut impérativement mettre une cellule que tu acceptes sinon ca va tourner en boucle
End Sub


et ça ne fonctionne pas ?
 
c normal
If ok = 0 Then Range("b13").Select 'il faut impérativement mettre une cellule que tu acceptes sinon ca va tourner en boucle
End Sub

b13 appartient pas a ta selection
donc ca tourne en rond ;o)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
45
Réponses
3
Affichages
485
Réponses
7
Affichages
533
Réponses
9
Affichages
367
Réponses
2
Affichages
279
Réponses
3
Affichages
216
Retour