Besoin d'un coup de pouce pr une macro Excel
Résolu/Fermé
plastickman
Messages postés
64
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
8 février 2012
-
5 déc. 2007 à 13:05
plastickman Messages postés 64 Date d'inscription mercredi 5 décembre 2007 Statut Membre Dernière intervention 8 février 2012 - 7 déc. 2007 à 09:50
plastickman Messages postés 64 Date d'inscription mercredi 5 décembre 2007 Statut Membre Dernière intervention 8 février 2012 - 7 déc. 2007 à 09:50
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
- Coup de pouce internet - Accueil - Box & Connexion Internet
- Calculer une moyenne sur excel - Guide
4 réponses
Utilisateur anonyme
5 déc. 2007 à 16:04
5 déc. 2007 à 16:04
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
plastickman
Messages postés
64
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
8 février 2012
6
6 déc. 2007 à 09:46
6 déc. 2007 à 09:46
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.
plastickman
Messages postés
64
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
8 février 2012
6
7 déc. 2007 à 09:50
7 déc. 2007 à 09:50
Merci bien, Le Père, j'aime bien comprendre ce que je tape, enfin tant que c'est compréhensible...
A+
A+