Excel afficher masquer un onglet
Résolu/Fermé
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
-
Modifié le 26 juil. 2017 à 11:53
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 - 27 juil. 2017 à 18:14
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 - 27 juil. 2017 à 18:14
A voir également:
- Excel afficher masquer un onglet
- Liste déroulante excel - Guide
- Rouvrir un onglet fermé - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
9 réponses
Mike-31
Messages postés
18345
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
5 104
Modifié le 26 juil. 2017 à 20:30
Modifié le 26 juil. 2017 à 20:30
Re,
remplace ton code par ce dernier que je te laisse le soin de terminer
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
remplace ton code par ce dernier que je te laisse le soin de terminer
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Union([G19], [G20], [G21], [G22])) Is Nothing Then
Application.EnableEvents = False
If [G19] = "NON" Then Worksheets("procedureCaisse").Visible = False Else Worksheets("procedureCaisse").Visible = True
If [G20] = "NON" Then Worksheets("cadrageClients").Visible = False Else Worksheets("cadrageClients").Visible = True
If [G21] = "NON" Then Worksheets("cadrageChiffreDAffaires").Visible = False Else Worksheets("cadrageChiffreDAffaires").Visible = True
'Continuer le code
If [G118] = "NON" Then Worksheets("noteDeSynthese").Visible = False Else Worksheets("noteDeSynthese").Visible = True
Application.EnableEvents = True
End If
End Sub
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
Mike-31
Messages postés
18345
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
5 104
Modifié le 26 juil. 2017 à 23:46
Modifié le 26 juil. 2017 à 23:46
Re,
si tes onglets sont classés ou si tu prends soin de les classer dans un ordre chronologique on peut limiter le code à
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
si tes onglets sont classés ou si tu prends soin de les classer dans un ordre chronologique on peut limiter le code à
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("G19:G118")) Is Nothing Then
Application.ScreenUpdating = False
For Each i In Array(19, 20, 21, 22, 23, 24,25,26,27,28,29,119)
If Cells(i, 7) = "NON" Then Worksheets(i - 17).Visible = False Else If Cells(i, 7) = "OUI" Then Worksheets(i - 17).Visible = True
Next i
Application.ScreenUpdating = True
End If
End Sub
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
2
26 juil. 2017 à 23:52
26 juil. 2017 à 23:52
Re,
je vois dans ton code "Range ("G19:G118")
En réalité il y a dans cet intervalle des cellules qu'il ne faut pas prendre en compte
Je préfère la première version
je vois dans ton code "Range ("G19:G118")
En réalité il y a dans cet intervalle des cellules qu'il ne faut pas prendre en compte
Je préfère la première version
Mike-31
Messages postés
18345
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
5 104
27 juil. 2017 à 10:35
27 juil. 2017 à 10:35
Re,
le pilotage de ces onglets me pose problème, à quel moment veux tu les afficher ou les masquer
methodeDuResultat2
methodeDuChiffreDAffaires2
methodeDeLaCapaciteDInvt2
evaluationSte2
hormis le problème de ces 4 onglets, teste ce code
le pilotage de ces onglets me pose problème, à quel moment veux tu les afficher ou les masquer
methodeDuResultat2
methodeDuChiffreDAffaires2
methodeDeLaCapaciteDInvt2
evaluationSte2
hormis le problème de ces 4 onglets, teste ce code
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union([G19], [G20,G27], [G31,G37], [G41,G43], [G49,G55], [G59], [G64,G75], [G79,G82], [G86], [G90], [G94,G96], [G100], [G103,G107], [G111,G114], [G117,G118])) Is Nothing Then
Application.ScreenUpdating = False
On Error Resume Next
If [G19] = "NON" Then Worksheets("procedureCaisse").Visible = False Else Worksheets("procedureCaisse").Visible = True
If [G20] = "NON" Then Worksheets("cadrageClients").Visible = False Else Worksheets("cadrageClients").Visible = True
If [G21] = "NON" Then Worksheets("cadrageChiffreDAffaires").Visible = False Else Worksheets("cadrageChiffreDAffaires").Visible = True
If [G22] = "NON" Then Worksheets("revueAnalytiqueChiffreDAffaires").Visible = False Else Worksheets("revueAnalytiqueChiffreDAffaires").Visible = True
If [G23] = "NON" Then Worksheets("margeParRayons").Visible = False Else Worksheets("margeParRayons").Visible = True
If [G24] = "NON" Then Worksheets("tvaSurVentes").Visible = False Else Worksheets("tvaSurVentes").Visible = True
If [G25] = "NON" Then Worksheets("remiseFidelite").Visible = False Else Worksheets("remiseFidelite").Visible = True
If [G26] = "NON" Then Worksheets("cutOffClients").Visible = False Else Worksheets("cutOffClients").Visible = True
If [G27] = "NON" Then Worksheets("circularisationClients").Visible = False Else Worksheets("circularisationClients").Visible = True
If [G31] = "NON" Then Sheets("assistanceInventairePhy").Visible = False Else Sheets("assistanceInventairePhy").Visible = True
If [G32] = "NON" Then Sheets("concordanceDesStocks").Visible = False Else Sheets("concordanceDesStocks").Visible = True
If [G33] = "NON" Then Sheets("variationDesStocks").Visible = False Else Sheets("variationDesStocks").Visible = True
If [G34] = "NON" Then Sheets("valorisationDesStocksMagasin").Visible = False Else Sheets("valorisationDesStocksMagasin").Visible = True
If [G35] = "NON" Then Sheets("valorisationDesStocksStation").Visible = False Else Sheets("valorisationDesStocksStation").Visible = True
If [G36] = "NON" Then Sheets("provisionPourDepreciation").Visible = False Else Sheets("provisionPourDepreciation").Visible = True
If [G37] = "NON" Then Sheets("coherenceStocks").Visible = False Else Sheets("coherenceStocks").Visible = True
If [G41] = "NON" Then Sheets("cadrageImmobilisations").Visible = False Else Sheets("cadrageImmobilisations").Visible = True
If [G42] = "NON" Then Sheets("acquisitions").Visible = False Else Sheets("acquisitions").Visible = True
If [G43] = "NON" Then Sheets("cessions").Visible = False Else Sheets("cessions").Visible = True
If [G43] = "NON" Then Sheets("amortissements").Visible = False Else Sheets("amortissements").Visible = True
If [G49] = "NON" Then Sheets("testDecaissement").Visible = False Else Sheets("testDecaissement").Visible = True
If [G50] = "NON" Then Sheets("comptesDeVirement").Visible = False Else Sheets("comptesDeVirement").Visible = True
If [G51] = "NON" Then Sheets("validationERB").Visible = False Else Sheets("validationERB").Visible = True
If [G52] = "NON" Then Sheets("validationCaisse").Visible = False Else Sheets("validationCaisse").Visible = True
If [G53] = "NON" Then Sheets("validationEmprunts").Visible = False Else Sheets("validationEmprunts").Visible = True
If [G54] = "NON" Then Sheets("validationVmp").Visible = False Else Sheets("validationVmp").Visible = True
If [G55] = "NON" Then Sheets("circularisationBanques").Visible = False Else Sheets("circularisationBanques").Visible = True
If [G59] = "NON" Then Sheets("mvmtImmoFi").Visible = False Else Sheets("mvmtImmoFi").Visible = True
If [G64] = "NON" Then Sheets("contrôleFactAchat").Visible = False Else Sheets("contrôleFactAchat").Visible = True
If [G65] = "NON" Then Sheets("cadrageFournisseurs").Visible = False Else Sheets("cadrageFournisseurs").Visible = True
If [G66] = "NON" Then Sheets("revueAnalytiqueAace").Visible = False Else Sheets("revueAnalytiqueAace").Visible = True
If [G67] = "NON" Then Sheets("loyersImmo").Visible = False Else Sheets("loyersImmo").Visible = True
If [G68] = "NON" Then Sheets("fraisDeplacementDir").Visible = False Else Sheets("fraisDeplacementDir").Visible = True
If [G69] = "NON" Then Sheets("separationChImmo").Visible = False Else Sheets("separationChImmo").Visible = True
If [G70] = "NON" Then Sheets("variationComptesFournisseurs").Visible = False Else Sheets("variationComptesFournisseurs").Visible = True
If [G71] = "NON" Then Sheets("cca").Visible = False Else Sheets("cca").Visible = True
If [G72] = "NON" Then Sheets("par").Visible = False Else Sheets("par").Visible = True
If [G73] = "NON" Then Sheets("fnp").Visible = False Else Sheets("fnp").Visible = True
If [G74] = "NON" Then Sheets("cutOffFournisseurs").Visible = False Else Sheets("cutOffFournisseurs").Visible = True
If [G75] = "NON" Then Sheets("circularisationFournisseurs").Visible = False Else Sheets("circularisationFournisseurs").Visible = True
If [G79] = "NON" Then Sheets("cadrageSalaires").Visible = False Else Sheets("cadrageSalaires").Visible = True
If [G80] = "NON" Then Sheets("revueAnalytiqueChargesDePerso").Visible = False Else Sheets("revueAnalytiqueChargesDePerso").Visible = True
If [G81] = "NON" Then Sheets("remDirigeant").Visible = False Else Sheets("remDirigeant").Visible = True
If [G82] = "NON" Then Sheets("dettesSociales").Visible = False Else Sheets("dettesSociales").Visible = True
If [G86] = "NON" Then Sheets("capitauxPropres").Visible = False Else Sheets("capitauxPropres").Visible = True
If [G90] = "NON" Then Sheets("provLitige").Visible = False Else Sheets("provLitige").Visible = True
If [G94] = "NON" Then Sheets("revueAnalytiqueImpotsEtTaxes").Visible = False Else Sheets("revueAnalytiqueImpotsEtTaxes").Visible = True
If [G95] = "NON" Then Sheets("cadrageTva").Visible = False Else: Sheets("cadrageTva").Visible = True
If [G96] = "NON" Then Sheets("impotSte").Visible = False Else Sheets("impotSte").Visible = True
If [G100] = "NON" Then Sheets("autresDettesCreances").Visible = False Else Sheets("autresDettesCreances").Visible = True
If [G103] = "NON" Then Sheets("testBenford").Visible = False Else Sheets("testBenford").Visible = True
If [G104] = "NON" Then Sheets("modeleConanHolder").Visible = False Else Sheets("modeleConanHolder").Visible = True
If [G105] = "NON" Then Sheets("SIG").Visible = False Else Sheets("SIG").Visible = True
If [G106] = "NON" Then Sheets("CAF").Visible = False Else Sheets("CAF").Visible = True
If [G107] = "NON" Then Sheets("TFT").Visible = False Else Sheets("TFT").Visible = True
If [G111] = "NON" Then Sheets("actif").Visible = False Else Sheets("actif").Visible = True
If [G112] = "NON" Then Sheets("passif").Visible = False Else Sheets("passif").Visible = True
If [G113] = "NON" Then Sheets("cdr1").Visible = False Else Sheets("cdr1").Visible = True
If [G114] = "NON" Then Sheets("cdr2").Visible = False Else Sheets("cdr2").Visible = True
If [G117] = "NON" Then Sheets("listeAjustements").Visible = False Else Sheets("listeAjustements").Visible = True
If [G118] = "NON" Then Sheets("NoteDeSynthese").Visible = False Else Sheets("noteDeSynthese").Visible = True
Application.ScreenUpdating = False
End If
End Sub
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
2
Modifié le 27 juil. 2017 à 12:26
Modifié le 27 juil. 2017 à 12:26
Re,
Pour ces 4 onglets, je souhaite les afficher quand la cellule G45 est égale à "OUI" et les masquer si elle est égale à "NON" :
methodeDuResultat2
methodeDuChiffreDAffaires2
methodeDeLaCapaciteDInvt2
evaluationSte2
Et pour ces 4 onglets, je souhaite les afficher quand la cellule G60 est égale à "OUI" et les masquer si elle est égale à "NON" :
methodeDuResultat
methodeDuChiffreDAffaires
methodeDeLaCapaciteDInvt
evaluationSociete
[EDIT]
J'ai essayé ton code. Il me dit "erreur d'exécution 424 objet requis" sur cette ligne :
Sachant que juste après ta première ligne et avant l'extrait ci-dessus j'ai rajouté :
Pour ces 4 onglets, je souhaite les afficher quand la cellule G45 est égale à "OUI" et les masquer si elle est égale à "NON" :
methodeDuResultat2
methodeDuChiffreDAffaires2
methodeDeLaCapaciteDInvt2
evaluationSte2
Et pour ces 4 onglets, je souhaite les afficher quand la cellule G60 est égale à "OUI" et les masquer si elle est égale à "NON" :
methodeDuResultat
methodeDuChiffreDAffaires
methodeDeLaCapaciteDInvt
evaluationSociete
[EDIT]
J'ai essayé ton code. Il me dit "erreur d'exécution 424 objet requis" sur cette ligne :
If Not Intersect(Target, Union([G19], [G20,G27], [G31,G37], [G41,G43], [G49,G55], [G59], [G64,G75], [G79,G82], [G86], [G90], [G94,G96], [G100], [G103,G107], [G111,G114], [G117,G118])) Is Nothing Then
Sachant que juste après ta première ligne et avant l'extrait ci-dessus j'ai rajouté :
Sub changer()
Mike-31
Messages postés
18345
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
5 104
Modifié le 27 juil. 2017 à 13:20
Modifié le 27 juil. 2017 à 13:20
Re,
non Sub changer() ne sert à rien et génère l'erreur
teste mon code tel qu'il est
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
non Sub changer() ne sert à rien et génère l'erreur
teste mon code tel qu'il est
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh As Variant
If Not Intersect(Target, Union([G19], [G20,G27], [G31,G37], [G41,G43], [G45], [G49,G55], [G59,G60], [G64,G75], [G79,G82], [G86], [G90], [G94,G96], [G100], [G103,G107], [G111,G114], [G117,G118])) Is Nothing Then
Application.ScreenUpdating = False
On Error Resume Next
If [G19] = "NON" Then Worksheets("procedureCaisse").Visible = False Else Worksheets("procedureCaisse").Visible = True
If [G20] = "NON" Then Worksheets("cadrageClients").Visible = False Else Worksheets("cadrageClients").Visible = True
If [G21] = "NON" Then Worksheets("cadrageChiffreDAffaires").Visible = False Else Worksheets("cadrageChiffreDAffaires").Visible = True
If [G22] = "NON" Then Worksheets("revueAnalytiqueChiffreDAffaires").Visible = False Else Worksheets("revueAnalytiqueChiffreDAffaires").Visible = True
If [G23] = "NON" Then Worksheets("margeParRayons").Visible = False Else Worksheets("margeParRayons").Visible = True
If [G24] = "NON" Then Worksheets("tvaSurVentes").Visible = False Else Worksheets("tvaSurVentes").Visible = True
If [G25] = "NON" Then Worksheets("remiseFidelite").Visible = False Else Worksheets("remiseFidelite").Visible = True
If [G26] = "NON" Then Worksheets("cutOffClients").Visible = False Else Worksheets("cutOffClients").Visible = True
If [G27] = "NON" Then Worksheets("circularisationClients").Visible = False Else Worksheets("circularisationClients").Visible = True
If [G31] = "NON" Then Sheets("assistanceInventairePhy").Visible = False Else Sheets("assistanceInventairePhy").Visible = True
If [G32] = "NON" Then Sheets("concordanceDesStocks").Visible = False Else Sheets("concordanceDesStocks").Visible = True
If [G33] = "NON" Then Sheets("variationDesStocks").Visible = False Else Sheets("variationDesStocks").Visible = True
If [G34] = "NON" Then Sheets("valorisationDesStocksMagasin").Visible = False Else Sheets("valorisationDesStocksMagasin").Visible = True
If [G35] = "NON" Then Sheets("valorisationDesStocksStation").Visible = False Else Sheets("valorisationDesStocksStation").Visible = True
If [G36] = "NON" Then Sheets("provisionPourDepreciation").Visible = False Else Sheets("provisionPourDepreciation").Visible = True
If [G37] = "NON" Then Sheets("coherenceStocks").Visible = False Else Sheets("coherenceStocks").Visible = True
If [G41] = "NON" Then Sheets("cadrageImmobilisations").Visible = False Else Sheets("cadrageImmobilisations").Visible = True
If [G42] = "NON" Then Sheets("acquisitions").Visible = False Else Sheets("acquisitions").Visible = True
If [G43] = "NON" Then Sheets("cessions").Visible = False Else Sheets("cessions").Visible = True
If [G43] = "NON" Then Sheets("amortissements").Visible = False Else Sheets("amortissements").Visible = True
For Each sh In Array("methodeDuResultat2", "methodeDuChiffreDAffaires2", "methodeDeLaCapaciteDInvt2", "evaluationSte2")
If [G45] = "NON" Then Sheets(sh).Visible = False Else Sheets(sh).Visible = True
Next sh
If [G49] = "NON" Then Sheets("testDecaissement").Visible = False Else Sheets("testDecaissement").Visible = True
If [G50] = "NON" Then Sheets("comptesDeVirement").Visible = False Else Sheets("comptesDeVirement").Visible = True
If [G51] = "NON" Then Sheets("validationERB").Visible = False Else Sheets("validationERB").Visible = True
If [G52] = "NON" Then Sheets("validationCaisse").Visible = False Else Sheets("validationCaisse").Visible = True
If [G53] = "NON" Then Sheets("validationEmprunts").Visible = False Else Sheets("validationEmprunts").Visible = True
If [G54] = "NON" Then Sheets("validationVmp").Visible = False Else Sheets("validationVmp").Visible = True
If [G55] = "NON" Then Sheets("circularisationBanques").Visible = False Else Sheets("circularisationBanques").Visible = True
If [G59] = "NON" Then Sheets("mvmtImmoFi").Visible = False Else Sheets("mvmtImmoFi").Visible = True
For Each sh In Array("methodeDuResultat", "methodeDuChiffreDAffaires", "methodeDeLaCapaciteDInvt", "evaluationSte")
If [G60] = "NON" Then Sheets(sh).Visible = False Else Sheets(sh).Visible = True
Next sh
If [G64] = "NON" Then Sheets("contrôleFactAchat").Visible = False Else Sheets("contrôleFactAchat").Visible = True
If [G65] = "NON" Then Sheets("cadrageFournisseurs").Visible = False Else Sheets("cadrageFournisseurs").Visible = True
If [G66] = "NON" Then Sheets("revueAnalytiqueAace").Visible = False Else Sheets("revueAnalytiqueAace").Visible = True
If [G67] = "NON" Then Sheets("loyersImmo").Visible = False Else Sheets("loyersImmo").Visible = True
If [G68] = "NON" Then Sheets("fraisDeplacementDir").Visible = False Else Sheets("fraisDeplacementDir").Visible = True
If [G69] = "NON" Then Sheets("separationChImmo").Visible = False Else Sheets("separationChImmo").Visible = True
If [G70] = "NON" Then Sheets("variationComptesFournisseurs").Visible = False Else Sheets("variationComptesFournisseurs").Visible = True
If [G71] = "NON" Then Sheets("cca").Visible = False Else Sheets("cca").Visible = True
If [G72] = "NON" Then Sheets("par").Visible = False Else Sheets("par").Visible = True
If [G73] = "NON" Then Sheets("fnp").Visible = False Else Sheets("fnp").Visible = True
If [G74] = "NON" Then Sheets("cutOffFournisseurs").Visible = False Else Sheets("cutOffFournisseurs").Visible = True
If [G75] = "NON" Then Sheets("circularisationFournisseurs").Visible = False Else Sheets("circularisationFournisseurs").Visible = True
If [G79] = "NON" Then Sheets("cadrageSalaires").Visible = False Else Sheets("cadrageSalaires").Visible = True
If [G80] = "NON" Then Sheets("revueAnalytiqueChargesDePerso").Visible = False Else Sheets("revueAnalytiqueChargesDePerso").Visible = True
If [G81] = "NON" Then Sheets("remDirigeant").Visible = False Else Sheets("remDirigeant").Visible = True
If [G82] = "NON" Then Sheets("dettesSociales").Visible = False Else Sheets("dettesSociales").Visible = True
If [G86] = "NON" Then Sheets("capitauxPropres").Visible = False Else Sheets("capitauxPropres").Visible = True
If [G90] = "NON" Then Sheets("provLitige").Visible = False Else Sheets("provLitige").Visible = True
If [G94] = "NON" Then Sheets("revueAnalytiqueImpotsEtTaxes").Visible = False Else Sheets("revueAnalytiqueImpotsEtTaxes").Visible = True
If [G95] = "NON" Then Sheets("cadrageTva").Visible = False Else: Sheets("cadrageTva").Visible = True
If [G96] = "NON" Then Sheets("impotSte").Visible = False Else Sheets("impotSte").Visible = True
If [G100] = "NON" Then Sheets("autresDettesCreances").Visible = False Else Sheets("autresDettesCreances").Visible = True
If [G103] = "NON" Then Sheets("testBenford").Visible = False Else Sheets("testBenford").Visible = True
If [G104] = "NON" Then Sheets("modeleConanHolder").Visible = False Else Sheets("modeleConanHolder").Visible = True
If [G105] = "NON" Then Sheets("SIG").Visible = False Else Sheets("SIG").Visible = True
If [G106] = "NON" Then Sheets("CAF").Visible = False Else Sheets("CAF").Visible = True
If [G107] = "NON" Then Sheets("TFT").Visible = False Else Sheets("TFT").Visible = True
If [G111] = "NON" Then Sheets("actif").Visible = False Else Sheets("actif").Visible = True
If [G112] = "NON" Then Sheets("passif").Visible = False Else Sheets("passif").Visible = True
If [G113] = "NON" Then Sheets("cdr1").Visible = False Else Sheets("cdr1").Visible = True
If [G114] = "NON" Then Sheets("cdr2").Visible = False Else Sheets("cdr2").Visible = True
If [G117] = "NON" Then Sheets("listeAjustements").Visible = False Else Sheets("listeAjustements").Visible = True
If [G118] = "NON" Then Sheets("NoteDeSynthese").Visible = False Else Sheets("noteDeSynthese").Visible = True
Application.ScreenUpdating = False
End If
End Sub
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
2
27 juil. 2017 à 14:45
27 juil. 2017 à 14:45
J'ai copié collé ton code
Quand j'exécute, Excel me dit qu'il est impossible d'exécuter car la macro n'est pas disponible dans ce classeur.
Effectivement, quand je vais dans
Développeur => Macro
Dans la liste des macros disponibles, je ne vois plus son nom ...
Quand j'exécute, Excel me dit qu'il est impossible d'exécuter car la macro n'est pas disponible dans ce classeur.
Effectivement, quand je vais dans
Développeur => Macro
Dans la liste des macros disponibles, je ne vois plus son nom ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mike-31
Messages postés
18345
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
5 104
Modifié le 27 juil. 2017 à 15:18
Modifié le 27 juil. 2017 à 15:18
Re,
c'est normal le code macro est à coller dans les propriétés de ta feuille pilote et non dans un module, exemple si tes commandes ou plutôt tes cellule G19 etc ... sont sur la feuille nommée ex. Feuil1
clic droit sur l'onglet de cette feuille "Feuil1"/Visualiser le code et colle la totalité de mon code (attention il ne peut y avoir qu'un seul code dont la syntaxe est (Private Sub Worksheet_Change(ByVal Target As Range)).
Lorsque tu saisiras et sélectionneras OUI ou NON dans une des cellules pilotes colonne G les onglets correspondant se masqueront ou s'afficheront suivant ta sélection
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
c'est normal le code macro est à coller dans les propriétés de ta feuille pilote et non dans un module, exemple si tes commandes ou plutôt tes cellule G19 etc ... sont sur la feuille nommée ex. Feuil1
clic droit sur l'onglet de cette feuille "Feuil1"/Visualiser le code et colle la totalité de mon code (attention il ne peut y avoir qu'un seul code dont la syntaxe est (Private Sub Worksheet_Change(ByVal Target As Range)).
Lorsque tu saisiras et sélectionneras OUI ou NON dans une des cellules pilotes colonne G les onglets correspondant se masqueront ou s'afficheront suivant ta sélection
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
2
Modifié le 27 juil. 2017 à 15:58
Modifié le 27 juil. 2017 à 15:58
d'accord j'ai fait ce que tu m'a dit
Mais après comment exécuter la macro ?
Dans "développeur" => "Macro" il n'y a plus le nom de la macro qui s'affiche
Et quand je met "OUI" ou "NON" dans les cellules de la colonne G ça n'affiche ou masque pas automatiquement
Je suis vraiment pas doué ...
[EDIT]
Je viens remarquer que ça se lance tout seul à un détail près :
La colonne G se remplit de OUI et NON via une formule. Je crois qu'il faut que je supprime les formules et que j'écrive OUI ou NON à la main sinon ça ne fonctionne pas.
Sinon le début du code est un peu chaud, je crois les intervalles sont pas géniales :
Par exemple si je mets OUI en G31 (ici intervalle [G31,G37]), ça affiche G31 mais dès G32 quand j'écris OUI, rien ne se passe, et de même jusque G37.
Du coup j'ai essayé ceci : [G31],[G32],[G33],[G34],[G35],[G36],[G37]
et ça fonctionne.
Mais après comment exécuter la macro ?
Dans "développeur" => "Macro" il n'y a plus le nom de la macro qui s'affiche
Et quand je met "OUI" ou "NON" dans les cellules de la colonne G ça n'affiche ou masque pas automatiquement
Je suis vraiment pas doué ...
[EDIT]
Je viens remarquer que ça se lance tout seul à un détail près :
La colonne G se remplit de OUI et NON via une formule. Je crois qu'il faut que je supprime les formules et que j'écrive OUI ou NON à la main sinon ça ne fonctionne pas.
Sinon le début du code est un peu chaud, je crois les intervalles sont pas géniales :
If Not Intersect(Target, Union([G19], [G20,G27], [G31,G37], [G41,G43], [G45], [G49,G55], [G59,G60], [G64,G75], [G79,G82], [G86], [G90], [G94,G96], [G100], [G103,G107], [G111,G114], [G117,G118])) Is Nothing Then
Par exemple si je mets OUI en G31 (ici intervalle [G31,G37]), ça affiche G31 mais dès G32 quand j'écris OUI, rien ne se passe, et de même jusque G37.
Du coup j'ai essayé ceci : [G31],[G32],[G33],[G34],[G35],[G36],[G37]
et ça fonctionne.
Mike-31
Messages postés
18345
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
5 104
27 juil. 2017 à 16:12
27 juil. 2017 à 16:12
Re,
le code s'exécute automatiquement dès que tu changes ta valeur OUI ou NON dans les cellules colonne G Feuil1
regarde l'exemple avec ce lien, il manque à créer quelques onglets mais il fonctionne
https://www.cjoint.com/c/GGBokKbH5hj
le code s'exécute automatiquement dès que tu changes ta valeur OUI ou NON dans les cellules colonne G Feuil1
regarde l'exemple avec ce lien, il manque à créer quelques onglets mais il fonctionne
https://www.cjoint.com/c/GGBokKbH5hj
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
2
27 juil. 2017 à 16:47
27 juil. 2017 à 16:47
Est-ce que le fait que tu me l'ai transmis en .xls change qqch sur le bon fonctionnement ?
Moi ça ne fait rien ...
Moi ça ne fait rien ...
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
2
Modifié le 27 juil. 2017 à 16:59
Modifié le 27 juil. 2017 à 16:59
Re,
Moi par exemple pour l'intervalle [G31,G37] ça va bien fonctionner pour les feuilles G31 et G37 mais pour celles du milieu, rien ne se passe.
[EDIT]
J'ai trouvé ! :)
Il faut écrire l'intervalle [G31:G37] et non [G31,G37]
Moi par exemple pour l'intervalle [G31,G37] ça va bien fonctionner pour les feuilles G31 et G37 mais pour celles du milieu, rien ne se passe.
[EDIT]
J'ai trouvé ! :)
Il faut écrire l'intervalle [G31:G37] et non [G31,G37]
Mike-31
Messages postés
18345
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
5 104
Modifié le 27 juil. 2017 à 17:13
Modifié le 27 juil. 2017 à 17:13
Re,
Ah oui bien sur qu'il faut un double point, à faire plusieurs choses en même temps.
merci Paul bien vu
remplace ou modifie la ligne de code comme cela
If Not Intersect(Target, Union([G19], [G20:G27], [G31:G37], [G41:G43], [G45], [G49:G55], [G59:G60], [G64:G75], [G79:G82], [G86], [G90], [G94:G96], [G100], [G103:G107], [G111:G114], [G117:G118])) Is Nothing Then
avec le fichier modifié
https://www.cjoint.com/c/GGBpmW0vsej
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
Ah oui bien sur qu'il faut un double point, à faire plusieurs choses en même temps.
merci Paul bien vu
remplace ou modifie la ligne de code comme cela
If Not Intersect(Target, Union([G19], [G20:G27], [G31:G37], [G41:G43], [G45], [G49:G55], [G59:G60], [G64:G75], [G79:G82], [G86], [G90], [G94:G96], [G100], [G103:G107], [G111:G114], [G117:G118])) Is Nothing Then
avec le fichier modifié
https://www.cjoint.com/c/GGBpmW0vsej
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
2
27 juil. 2017 à 17:15
27 juil. 2017 à 17:15
Nickel ça fonctionne comme je voulais ! :)
Merci à tous pour votre contribution !
Je vais pouvoir mettre le sujet en résolu
Merci à tous pour votre contribution !
Je vais pouvoir mettre le sujet en résolu
Mike-31
Messages postés
18345
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
5 104
27 juil. 2017 à 17:18
27 juil. 2017 à 17:18
Re,
tu as remarqué que vite fait je t'ai créé un bouton pour lister tes onglets visibles
tu as remarqué que vite fait je t'ai créé un bouton pour lister tes onglets visibles
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
2
27 juil. 2017 à 17:52
27 juil. 2017 à 17:52
Re,
Oui effectivement ça peut être utile
Il faut que je vois où je peux l'intégrer
Merci :)
Toute amélioration est la bienvenue
Oui effectivement ça peut être utile
Il faut que je vois où je peux l'intégrer
Merci :)
Toute amélioration est la bienvenue
Mike-31
Messages postés
18345
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
5 104
Modifié le 27 juil. 2017 à 18:24
Modifié le 27 juil. 2017 à 18:24
Re,
dans le code du bouton tu as également la ligne de code pour lister les onglets qui eux sont masqués si tu veux
dans le code du bouton tu as également la ligne de code pour lister les onglets qui eux sont masqués si tu veux
Mike-31
Messages postés
18345
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 novembre 2024
5 104
Modifié le 26 juil. 2017 à 12:13
Modifié le 26 juil. 2017 à 12:13
Bonjour,
Pour ma part je n'ai pas tout compris l'affichage de 10 onglets et sur quel critères
par contre tu peux simplifier ton code, exemple tu peux remplacer
If [G19] = "NON" Then
Worksheets("procedureCaisse").Visible = False
ElseIf [G19] = "OUI" Then
Worksheets("procedureCaisse").Visible = True
End If
par
If [G19] = "NON" Then Worksheets("procedureCaisse").Visible = False Else Worksheets("procedureCaisse").Visible = True
et idem pour les autres bouts, mais il serait préférable de faire une union ce qui simplifierai encore plus le code et supprimerait le risque d'erreur et plantage du code.
je reviens dans l'après midi avec un code
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
Pour ma part je n'ai pas tout compris l'affichage de 10 onglets et sur quel critères
par contre tu peux simplifier ton code, exemple tu peux remplacer
If [G19] = "NON" Then
Worksheets("procedureCaisse").Visible = False
ElseIf [G19] = "OUI" Then
Worksheets("procedureCaisse").Visible = True
End If
par
If [G19] = "NON" Then Worksheets("procedureCaisse").Visible = False Else Worksheets("procedureCaisse").Visible = True
et idem pour les autres bouts, mais il serait préférable de faire une union ce qui simplifierai encore plus le code et supprimerait le risque d'erreur et plantage du code.
je reviens dans l'après midi avec un code
A+
Mike-31
Je suis responsable de ce que je dis, pas de ce que tu comprends...
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
2
26 juil. 2017 à 14:20
26 juil. 2017 à 14:20
Bonjour, merci pour ta réponse.
J'ai une feuille sur laquelle de G19 à G118 je peux écrire "OUI" ou "NON".
Chaque cellule fait référence à un onglet du classeur.
Quand j'exécute la macro, Excel doit masquer tous les onglets où la cellule en question est écrit "NON" et afficher les onglets pour lesquelles la cellule en question est "OUI".
J'ai une feuille sur laquelle de G19 à G118 je peux écrire "OUI" ou "NON".
Chaque cellule fait référence à un onglet du classeur.
Quand j'exécute la macro, Excel doit masquer tous les onglets où la cellule en question est écrit "NON" et afficher les onglets pour lesquelles la cellule en question est "OUI".
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
2
Modifié le 26 juil. 2017 à 14:45
Modifié le 26 juil. 2017 à 14:45
J'ai essayé avec ton nouveau code et ça fonctionne merci ! :)
Par contre j'ai un autre soucis que je ne comprends pas. Quand j'exécute la macro, Excel m'emmène j'ai l'impression un peu au hasard sur le dernier ou l'avant dernier onglet qui s'est affiché.
J'aimerai rester sur l'onglet sur lequel j'ai le bouton avec la macro.
[EDIT]
Dernière question, si j'ai ce genre de code, si j'écris tout à la suite sur une seule ligne, j'ai une erreur qui s'affiche, comment y remédier ?
If [G45] = "NON" Then
Sheets("methodeDuResultat2").Visible = False
Sheets("methodeDuChiffreDAffaires2").Visible = False
Sheets("methodeDeLaCapaciteDInvt2").Visible = False
Sheets("evaluationSte2").Visible = False
ElseIf [G45] = "OUI" Then
Sheets("methodeDuResultat2").Visible = True
Sheets("methodeDuChiffreDAffaires2").Visible = True
Sheets("methodeDeLaCapaciteDInvt2").Visible = True
Sheets("evaluationSte2").Visible = True
End If
Par contre j'ai un autre soucis que je ne comprends pas. Quand j'exécute la macro, Excel m'emmène j'ai l'impression un peu au hasard sur le dernier ou l'avant dernier onglet qui s'est affiché.
J'aimerai rester sur l'onglet sur lequel j'ai le bouton avec la macro.
[EDIT]
Dernière question, si j'ai ce genre de code, si j'écris tout à la suite sur une seule ligne, j'ai une erreur qui s'affiche, comment y remédier ?
If [G45] = "NON" Then
Sheets("methodeDuResultat2").Visible = False
Sheets("methodeDuChiffreDAffaires2").Visible = False
Sheets("methodeDeLaCapaciteDInvt2").Visible = False
Sheets("evaluationSte2").Visible = False
ElseIf [G45] = "OUI" Then
Sheets("methodeDuResultat2").Visible = True
Sheets("methodeDuChiffreDAffaires2").Visible = True
Sheets("methodeDeLaCapaciteDInvt2").Visible = True
Sheets("evaluationSte2").Visible = True
End If
paul
>
F60lebaladinverni
Messages postés
128
Date d'inscription
samedi 28 janvier 2017
Statut
Membre
Dernière intervention
16 juin 2024
Modifié le 26 juil. 2017 à 15:22
Modifié le 26 juil. 2017 à 15:22
Bonjour F60lebaladinverni,
1) Pour rester sur la même feuille de départ :
a) En début de macro : Dim FX As Worksheet: FX = ActiveSheet
b) En fin de macro : FX.Select
2) Ton code peut être simplifié ainsi :
Dim b As Boolean: b = [G45] = "OUI" Worksheets("methodeDuResultat2").Visible = b Worksheets("methodeDuChiffreDAffaires2").Visible = b Worksheets("methodeDeLaCapaciteDInvt2").Visible = b Worksheets("evaluationSte2").Visible = b
Cordialement
26 juil. 2017 à 21:39
J'essaye demain matin au boulot et je te tiens au courant
Par contre je ne comprends pas la 3ème ligne :
Il faut que je continue comme ça jusque "G118" !?
26 juil. 2017 à 21:45
26 juil. 2017 à 21:53
Si je l'ai vu mais j'avoue ne pas avoir tout compris non plus (je suis vraiment novice en VBA ... :/)
En gros je dois écrire par exemple (en n'écrivant que quelques lignes) :
26 juil. 2017 à 22:04
Ton code VBA modifié :
Merci de me donner ton avis.
Modifié le 26 juil. 2017 à 22:15
Merci :)
[EDIT]
Cette partie de ton code sert à quoi ?