Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Besoin d'aide avec une macro-VBA

  • Initiateur de la discussion Initiateur de la discussion B0515177
  • 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 !

B

B0515177

Guest
Bonjour a tous,

Merci a vous d'avance pour vos réponces. Tout d'abord, je suis vraiment très novice dans VBA. A la suite de quelques recherches sur les forum, j'ai réussi a trouver une macro qui répond en partie à mes besoins.

Ce que je veux faire c'est une macro que lorsque je vais appuyer sur une cellule, celle-ci affichera ou masquera d'autre lignes que j'aurais determiner. J'ai trouvé cette macro. Par contre, cette macro affiche ou masque seulement une plage de lignes. J'aimerais être capable d'insérer d'autre lignes qui ne font pas partie de la macro. Dans la macro ci-dessous, celle-ci affiche/masque les lignes 17 à 39. Par exemple j'aimerais ajouter la ligne 45, 55, 70 dans la macro.

Module de feuille

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
MasqueRows
ElseIf Target.Address = "$A$6" Then
MasqueRows_2
End If
End Sub

Module standart

Sub MasqueRows()
Rows("17:39").Select
If Selection.EntireRow.Hidden = False Then
Selection.EntireRow.Hidden = True
Else: Selection.EntireRow.Hidden = False
Range("C1").Select
End If
End SubEnd Sub
 
Dernière modification par un modérateur:
Re : Besoin d'aide avec une macro-VBA

Bonjour B0515177

Au plus simple:
VB:
Sub MasqueRows()
Dim Rng As Range
Set Rng = Range("$A$17:$A$39,$A$45,$A$55,$A$70").EntireRow
Rng.Hidden = Not (Rng.Hidden)
End Sub

Cordialement
 
Re : Besoin d'aide avec une macro-VBA

Re
En un peu mieux, a mettre dans le module de la feuille concernée et supprimer les macro type "MasqueRows":
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Rng As Range
Select Case Target.Address
    Case "$A$1"
        Set Rng = Range("$A$17:$A$39,$A$45,$A$55,$A$70").EntireRow
    Case "$A$6"
        Set Rng = Range("$A$40:$A$44,$A$46,$A$56,$A$71").EntireRow 'par exemple
End Select
If Not Rng Is Nothing Then Rng.Hidden = Not (Rng.Hidden)
End Sub
Cordialement
 
- 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

Réponses
9
Affichages
509
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…