Deux macros qui se genent l'une et l'autre

Fermé
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013 - 28 févr. 2013 à 11:20
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013 - 4 mars 2013 à 08:21
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 :)





A voir également:

8 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
28 févr. 2013 à 12:17
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
0
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013
28 févr. 2013 à 12:56
Bonjour,
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
0
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013
28 févr. 2013 à 12:57
Et qiuand les macro marchent sa me met que je dois debogue en surlignant des phrases en jaune mais je sais pas ce que sa veut dire.
0
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013
28 févr. 2013 à 13:08
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...
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
Modifié par ccm81 le 28/02/2013 à 14:40
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
0
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013
28 févr. 2013 à 15:34
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
0
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013
28 févr. 2013 à 15:36
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
28 févr. 2013 à 15:38
je t'ai demandé au format excel 2003
0
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013
28 févr. 2013 à 15:53
0
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013
28 févr. 2013 à 16:31
C'est le bon format ? merci beaucôup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
28 févr. 2013 à 19:17
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
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
28 févr. 2013 à 20:11
et pour généraliser à toutes les feuilles
https://www.cjoint.com/?3BCuj74H8Nt
0
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013
28 févr. 2013 à 20:17
Merci beaucoup jz regarde sa demain et je vous dis si ca marche.
0
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013
1 mars 2013 à 13:46
Bonjour, votre macro ne marche pas...:( je ne comprend pourtant pas pourquoi ...j'ai copié coller
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
Modifié par ccm81 le 1/03/2013 à 16:46
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
0
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013
1 mars 2013 à 17:11
Oui dans votre feuille sa marche
j'essaye votre nouveau code
0
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013
1 mars 2013 à 17:19
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
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
Modifié par ccm81 le 1/03/2013 à 17:52
au format axcel 2003
0
A oui pardon . Voila je l'ai pas enregistré pour squil prennent des macro je savais pas si ca affecterai l'ouverture chez vous http://cjoint.com/?3Cbr57R4czJ
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
Modifié par ccm81 le 1/03/2013 à 18:40
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
0
carotte78 Messages postés 46 Date d'inscription mardi 12 février 2013 Statut Membre Dernière intervention 3 juin 2013
4 mars 2013 à 08:21
Mercii beaucoup :)
0