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

meldja

XLDnaute Impliqué
Bonjour,
Je bidouille en prenant un peu de code d'une macro pour la mélanger à une autre. Pour l'instant, ça marche, mais je suis certain que ce n'est pas la meilleure solution.
Voila ce que je veux faire : quand je coche des cases, ça me renvoie des données dans des lignes masquées. A la fin, je veux faire apparaitre les lignes qui continnent des données et laisser masquées les lignes vides. J'ai donc fait un mixte entre une macro pour afficher des lignes et une autre pour masquer les lignes vides. Deplus le fichier est protégé donc j'ai rajouté des lignes pour enlever la protection et la remettre :

Sub MasqLignesVides()
ActiveSheet.Unprotect
Rows("56:111").Select
Selection.EntireRow.Hidden = False
Dim J As Long
Dim Plage As Range
Set Plage = Range("b56", Range("b111"))
For J = Plage.Cells.Count To 1 Step -1
If Plage.Cells(J).Value = "" Then
Plage.Cells(J).EntireRow.Hidden = True
End If
Next
Range("b55").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Quelqu'un pourrait-il m'arranger ce mélange ?
Merci d'avance
 
Re : Macro à simplifier

Bonjour

Fait sans test

Code:
Sub MasqLignesVides()
      ActiveSheet.Unprotect
      Rows("56:111").EntireRow.Hidden = False
      Dim Plage As Range
      for each Plage in Range("b56:b111")
           If Plage= "" Then Plage.EntireRow.Hidden = True
      Next
      Range("b55").Select
      ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
 
Re : Macro à simplifier

Pas besoin de test tellement tu assures,
Ca marche nickel
merci
Si je peux te demander encore autre chose. Je voudrais que quand je clique sur le bouton qui déclenche cette macro, ça m'affiche du texte en B54.
Voila ce que j'ai essayé de faire mais niet :
Sub MasqLignesVides()
If MasqLignesVides.value then
Range("B54") = "Vous avez choisi ces items :"
Else
Range ("B54") = ""
End If
ActiveSheet.Unprotect
Rows("56:111").EntireRow.Hidden = False
Dim Plage As Range
for each Plage in Range("b56:b111")
If Plage= "" Then Plage.EntireRow.Hidden = True
Next
Range("b55").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub()
If
ActiveSheet.Unprotect
Rows("56:111").EntireRow.Hidden = False
Dim Plage As Range
for each Plage in Range("b56:b111")
If Plage= "" Then Plage.EntireRow.Hidden = True
Next
Range("b55").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Comment faire pour rajouter ce petit texte ?
 
Re : Macro à simplifier

re:

J'ai pas tout compris, mais essaye ca

Code:
Sub MasqLignesVides()
    ActiveSheet.Unprotect
    Rows("56:111").EntireRow.Hidden = False
    Dim Plage As Range
    Range("B54") = ""
    For Each Plage In Range("b56:b111")
    If Plage = "" Then
        Plage.EntireRow.Hidden = True
        Range("B54") = "Vous avez choisi ces items :"
    End If
    Next
    Range("b55").Select
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
 
Re : Macro à simplifier

Merci,
Ca a l'air trop simple pour toi, mais moi, j'ai galéré. J'ai récupéré le code sur une case à cocher : If nom_de_la_macro.Value Then
etc...
pour mixer ça avec le reste.
Avec du recul, j'aurais dû percuté et mettre le texte même à la fin
Pas évident, je cherche à apprendre mais pas facile de trouver de bon tutaux sur le Net.
En tout cas merci beaucoup
 
- 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

Discussions similaires

Réponses
7
Affichages
367
Réponses
5
Affichages
688
Réponses
0
Affichages
657
Réponses
2
Affichages
1 K
Réponses
8
Affichages
673
Réponses
7
Affichages
1 K
Retour