Deux macros qui se genent l'une et l'autre
carotte78
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
carotte78 Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
carotte78 Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde,
Voila mon petit problème:
J'ai deux macros :
Private Sub Worksheet_Change(ByVal Target As Range)
Rows("12:27").Select
If Range("B10").Value = "Cas 3: 1 seule mesure > VLEP ou sur 3 campagnes (9 mesures), la probabilité de dépassement >5% " Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = False
End If
Rows("16:18").Select
If Range("B10").Value = "Cas 1 bis : 3 CEP < 10% de la VLEP ou 3 campagnes (soit 9 mesures) avec une probabilité de dépassement < ou égale à 0,1% sans EPI respiratoires requis " Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = False
End If
End Sub
Le problème est que quand je suis dans le cas 3 les lignes 16-18 ne s'efface pas. Quand dans le dernier SELECTION.ENTIRE.Row.HIDDEN (en gras) je mes "Cas 3" ca marche mais des que je touche a une case ca me met debogage.... Pouvez vous m'aider ? MERCIII beaucoup :)
Voila mon petit problème:
J'ai deux macros :
Private Sub Worksheet_Change(ByVal Target As Range)
Rows("12:27").Select
If Range("B10").Value = "Cas 3: 1 seule mesure > VLEP ou sur 3 campagnes (9 mesures), la probabilité de dépassement >5% " Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = False
End If
Rows("16:18").Select
If Range("B10").Value = "Cas 1 bis : 3 CEP < 10% de la VLEP ou 3 campagnes (soit 9 mesures) avec une probabilité de dépassement < ou égale à 0,1% sans EPI respiratoires requis " Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = False
End If
End Sub
Le problème est que quand je suis dans le cas 3 les lignes 16-18 ne s'efface pas. Quand dans le dernier SELECTION.ENTIRE.Row.HIDDEN (en gras) je mes "Cas 3" ca marche mais des que je touche a une case ca me met debogage.... Pouvez vous m'aider ? MERCIII beaucoup :)
A voir également:
- Deux macros qui se genent l'une et l'autre
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
- Nombre de jours entre deux dates excel - Guide
- Deux whatsapp sur un téléphone - Guide
- Connecter deux airpods mac - Guide
8 réponses
Bonjour
Tu parles de 2 macros mais je n'en vois qu'une....
le "cas 3" concerne les lignes 12:27 et non 12:18.... ???
Pas clair ton explication
Tu parles de 2 macros mais je n'en vois qu'une....
le "cas 3" concerne les lignes 12:27 et non 12:18.... ???
Pas clair ton explication
Private Sub Worksheet_Change(ByVal Target As Range)
Rows("12:27").Select
If Range("B10").Value = "Cas 3: 1 seule mesure > VLEP ou sur 3 campagnes (9 mesures), la probabilité de dépassement >5% " Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = False
End If
Rows("16:18").Select
If Range("B10").Value = "Cas 1 bis : 3 CEP < 10% de la VLEP ou 3 campagnes (soit 9 mesures) avec une probabilité de dépassement < ou égale à 0,1% sans EPI respiratoires requis " Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = "Cas 3:1 seule mesure > VLEP ou sur 3 campagnes (9 mesures), la probabilité de dépassement >5% "
End If
End Sub
Il me met cette phrase en jaune...
Rows("12:27").Select
If Range("B10").Value = "Cas 3: 1 seule mesure > VLEP ou sur 3 campagnes (9 mesures), la probabilité de dépassement >5% " Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = False
End If
Rows("16:18").Select
If Range("B10").Value = "Cas 1 bis : 3 CEP < 10% de la VLEP ou 3 campagnes (soit 9 mesures) avec une probabilité de dépassement < ou égale à 0,1% sans EPI respiratoires requis " Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = "Cas 3:1 seule mesure > VLEP ou sur 3 campagnes (9 mesures), la probabilité de dépassement >5% "
End If
End Sub
Il me met cette phrase en jaune...
Bonjour
Cette ligne là est incorrecte
Selection.EntireRow.Hidden = "Cas 3:1 seule mesure > VLEP ou sur 3 campagnes (9 mesures), la probabilité de dépassement >5% "
Après Selection.EntireRow.Hidden =
il te faut un booleen true ou false
Avant il faudrait définir une selection
Peux tu envoyer ton fichier sur cjoint.com si possible au format excel 2003) et joindre le lien obtenu à ton prochain message, avec quelques explications
RQ. il n'y a pas 2 macros, mais une seule
bonne suite
Cette ligne là est incorrecte
Selection.EntireRow.Hidden = "Cas 3:1 seule mesure > VLEP ou sur 3 campagnes (9 mesures), la probabilité de dépassement >5% "
Après Selection.EntireRow.Hidden =
il te faut un booleen true ou false
Avant il faudrait définir une selection
Peux tu envoyer ton fichier sur cjoint.com si possible au format excel 2003) et joindre le lien obtenu à ton prochain message, avec quelques explications
RQ. il n'y a pas 2 macros, mais une seule
bonne suite
https://www.cjoint.com/?CBCpGKhB4k5 Alors j'aimeraiq ue lorsqu'on choisi cas 1ou cas 2 rien ne change , casx 1 bis les lignes 16 à 18 se masquent et quand on choisit cas 3 les lignes 12 a 27 se masquent.
Merci beaucoup
Merci beaucoup
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ce que j'ai compris
Cas 1 et 2 on montre toutes les lignes
Cas 3 on cache les lignes 12:27
Cas 1 bis on cache (uniquement) les lignes 16:18
Le code est (actif) dans la feuille 1
https://www.cjoint.com/?3BCtn7zM5Tu
RQ. J'ai du nettoyer tous tes codes qui interféraient (du moins avec excel 2003)
bonne suite
Cas 1 et 2 on montre toutes les lignes
Cas 3 on cache les lignes 12:27
Cas 1 bis on cache (uniquement) les lignes 16:18
Le code est (actif) dans la feuille 1
https://www.cjoint.com/?3BCtn7zM5Tu
RQ. J'ai du nettoyer tous tes codes qui interféraient (du moins avec excel 2003)
bonne suite
1. Est ce que ça fonctionne dans mon fichier?
2. Un code un peu plus simple
https://www.cjoint.com/?3CbqTJQXjZE
Le mode d'emploi est dans la feuille 1
2. Un code un peu plus simple
https://www.cjoint.com/?3CbqTJQXjZE
Le mode d'emploi est dans la feuille 1
Oui votre code fonctionne dans votre fichier;
Pour votre nouveau fichier je ne comprend pas la différence entre ce qu'est un module et une feuille. J'ai copier votre macro dans mon document mais cela ne marche pas non plus. Je vous donne le Vrai fichier sur lequel j'aimerai faire fonctionner cette macro:https://www.cjoint.com/?3Cboq79G6Kf
Merci beaucoup
Pour votre nouveau fichier je ne comprend pas la différence entre ce qu'est un module et une feuille. J'ai copier votre macro dans mon document mais cela ne marche pas non plus. Je vous donne le Vrai fichier sur lequel j'aimerai faire fonctionner cette macro:https://www.cjoint.com/?3Cboq79G6Kf
Merci beaucoup
OK, mais
1. tu as changé la cellule cible: B9 au lieu de B10
2. tu as mis des Alt-Entree pour forcer les passages à la ligne dans B9
donc, la macro ne retrouve plus ses petits
Le bon côté c'est que je t'ai simplifié le code
https://www.cjoint.com/?3CbsuAw0oik
Un module de feuille (situé dans la liste des feuilles fenêtre de gauche dans l'éditeur VBA est destiné à recevoir les procédures et fonctions propres à cette feuille
Un module "général" (Module 1, Module 2 quand tu fais Insertion/module) est un module dans lequel les procédures et fonctions concernent n'importe quelle feuille
Dans Module 1 tu trouveras la procédure
Masque_Montre(target As Range)
qui fait le boulot à partir de la cellule target reçue au moment de l'appel depuis la procédure WorksheetChange du module de la feuille active
Dans les modules des feuilles 1-2-3- ... tu trouveras la procédure Worksheet_Change(ByVal target As Range)
qui appelle Montre_Cache en lui envoyant la cellule active comme paramètre
Il ne te reste plus qu'à copier l'intégralité du code du module de la feuille 1 dans les modules des autres feuilles
Si tu as besoin d'autres précisions, n'hésites pas
bonne soirée
1. tu as changé la cellule cible: B9 au lieu de B10
2. tu as mis des Alt-Entree pour forcer les passages à la ligne dans B9
donc, la macro ne retrouve plus ses petits
Le bon côté c'est que je t'ai simplifié le code
https://www.cjoint.com/?3CbsuAw0oik
Un module de feuille (situé dans la liste des feuilles fenêtre de gauche dans l'éditeur VBA est destiné à recevoir les procédures et fonctions propres à cette feuille
Un module "général" (Module 1, Module 2 quand tu fais Insertion/module) est un module dans lequel les procédures et fonctions concernent n'importe quelle feuille
Dans Module 1 tu trouveras la procédure
Masque_Montre(target As Range)
qui fait le boulot à partir de la cellule target reçue au moment de l'appel depuis la procédure WorksheetChange du module de la feuille active
Dans les modules des feuilles 1-2-3- ... tu trouveras la procédure Worksheet_Change(ByVal target As Range)
qui appelle Montre_Cache en lui envoyant la cellule active comme paramètre
Il ne te reste plus qu'à copier l'intégralité du code du module de la feuille 1 dans les modules des autres feuilles
Si tu as besoin d'autres précisions, n'hésites pas
bonne soirée
si il y a deux macros mais je les ai mis l'une dans l'autre Private Sub Worksheet_Change(ByVal Target As Range)
Rows("12:27").Select
If Range("B10").Value = "Cas 3: 1 seule mesure > VLEP ou sur 3 campagnes (9 mesures), la probabilité de dépassement >5% " Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = False End If
Rows("16:18").Select
If Range("B10").Value = "Cas 1 bis : 3 CEP < 10% de la VLEP ou 3 campagnes (soit 9 mesures) avec une probabilité de dépassement < ou égale à 0,1% sans EPI respiratoires requis " Then
Selection.EntireRow.Hidden = True
Else
Selection.EntireRow.Hidden = False
End If
End Sub
En faite la cas 3 concerne le slignes 12 A 27 et les cas 1Bis les lignes 16 A18. en fait dans le cas 3 le slignes 12 a 27 s'efface et dans le cas 1 bis c'est les lignes 16 a 18. Mais lorsque je met cas 3 les lignes 16 à 18 ne s'efface pas alors qu'elles devraient merci de votre aide