Besoin d'un coup de pouce pr une macro Excel
Résolu
plastickman
Messages postés
66
Statut
Membre
-
plastickman Messages postés 66 Statut Membre -
plastickman Messages postés 66 Statut Membre -
Bonjour,
Je débute en VBA, et je crois que c'est encore un bien grand mot vu que j'en suis seulement au stade de déchiffrer les macro les plus simples...
...et j'ai besoin d'aide sur Excel.
Je voudrais masquer les lignes 40:85 de ma feuille 1et les lignes 10:20 de ma feuille 2, lorsque les cellules C23, C24 et C25 de ma feuille 1 sont vides. J'ai déjà créé le bouton pour une autre macro et je souhaite simplement la ralonger.
Merci d'avance,
Je débute en VBA, et je crois que c'est encore un bien grand mot vu que j'en suis seulement au stade de déchiffrer les macro les plus simples...
...et j'ai besoin d'aide sur Excel.
Je voudrais masquer les lignes 40:85 de ma feuille 1et les lignes 10:20 de ma feuille 2, lorsque les cellules C23, C24 et C25 de ma feuille 1 sont vides. J'ai déjà créé le bouton pour une autre macro et je souhaite simplement la ralonger.
Merci d'avance,
A voir également:
- Besoin d'un coup de pouce pr une macro Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Word et excel gratuit - Guide
- Trier un tableau excel - Guide
4 réponses
Bonjour,
Exemple type :
Lupin
Exemple type :
Option Explicit
Sub MasquerLignes()
Dim Feuille As String
Application.ScreenUpdating = False
Feuille = ActiveSheet.Name
Sheets("Feuil1").Select
If (IsEmpty(Range("C23").Value) And _
IsEmpty(Range("C24").Value) And _
IsEmpty(Range("C25").Value)) Then
Rows("40:85").Hidden = True
Sheets("Feuil2").Select
Rows("10:20").Hidden = True
End If
Sheets(Feuille).Select
Application.ScreenUpdating = True
End Sub
'
Sub AfficherLignes()
Dim Feuille As String
Feuille = ActiveSheet.Name
Sheets("Feuil1").Select
Rows("40:85").Hidden = False
Sheets("Feuil2").Select
Rows("10:20").Hidden = False
Sheets(Feuille).Select
End Sub
'
Lupin
Merci beaucoup pour ta rapidité, ça marche bien. je pense d'ailleurs que j'aurai d'autre questions d'ici peu...
Par contre , est ce que ce serait exagérer de te demander quelques explications sur les différentes lignes:
" Dim Feuille As String
Application.ScreenUpdating = False
Feuille = ActiveSheet.Name "
et
" End If
Sheets(Feuille).Select
Application.ScreenUpdating = True "
Pour le dernier cas , je comprends encore moins pourquoi "Sheets..." est situé après "End if"
merci pour ton aide !
Par contre , est ce que ce serait exagérer de te demander quelques explications sur les différentes lignes:
" Dim Feuille As String
Application.ScreenUpdating = False
Feuille = ActiveSheet.Name "
et
" End If
Sheets(Feuille).Select
Application.ScreenUpdating = True "
Pour le dernier cas , je comprends encore moins pourquoi "Sheets..." est situé après "End if"
merci pour ton aide !
Bonjour,
Lupin.A est un perfectionniste !
Application.ScreenUpdating = true/false c'est pour dire si l'écran est remis à jour ou pas. En le mettant à false pendant la macro, tu gagnes beaucoup de temps si tu as des boucles, et tu évites des scintilements désagréables. Ne pas oublier de remettre à true à la fin !
Feuille = ActiveSheet.Name et Sheets(Feuille).Select, c'est pour mémoriser la feuille active au départ et la remettre à la fin de la macro. Si on a besoin de changer de feuille pendant l'éxécution, on revient quand même à la feuille de départ
Comme on a changé de feuille avant le if, c'est normal de restituer après le endif. Evidemment, si la feuille courante était Feuil1 ça ne change rien.
Lupin.A est un perfectionniste !
Application.ScreenUpdating = true/false c'est pour dire si l'écran est remis à jour ou pas. En le mettant à false pendant la macro, tu gagnes beaucoup de temps si tu as des boucles, et tu évites des scintilements désagréables. Ne pas oublier de remettre à true à la fin !
Feuille = ActiveSheet.Name et Sheets(Feuille).Select, c'est pour mémoriser la feuille active au départ et la remettre à la fin de la macro. Si on a besoin de changer de feuille pendant l'éxécution, on revient quand même à la feuille de départ
Comme on a changé de feuille avant le if, c'est normal de restituer après le endif. Evidemment, si la feuille courante était Feuil1 ça ne change rien.