Excel afficher masquer un onglet
Résolu
F60lebaladinverni
Messages postés
128
Date d'inscription
Statut
Membre
Dernière intervention
-
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
J'avais une macro dont voici un extrait du code en fin d'article qui me permet d'afficher ou de masquer un ou plusieurs onglets.
Je viens de changer de version d'Excel (je suis passé à la plus récente) et depuis j'ai un bug : je peux tout à fait masquer les onglets sans problème, mais quand je veux afficher 10 onglets en même temps, il me les affiche que de 2 en 2 (à chaque fois il faut ré-exécuter la macro).
Est-ce dû à la mise à jour de Excel et comment y remédier ?
D'avance merci.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Sub changer()
If [G19] = "NON" Then
Worksheets("procedureCaisse").Visible = False
ElseIf [G19] = "OUI" Then
Worksheets("procedureCaisse").Visible = True
End If
If [G20] = "NON" Then
Worksheets("cadrageClients").Visible = False
ElseIf [G20] = "OUI" Then
Worksheets("cadrageClients").Visible = True
End If
If [G21] = "NON" Then
Worksheets("cadrageChiffreDAffaires").Visible = False
ElseIf [G21] = "OUI" Then
Worksheets("cadrageChiffreDAffaires").Visible = True
End If
...
...
...
...
...
If [G117] = "NON" Then
Sheets("listeAjustements").Visible = False
ElseIf [G117] = "OUI" Then
Sheets("listeAjustements").Visible = True
End If
If [G118] = "NON" Then
Sheets("NoteDeSynthese").Visible = False
ElseIf [G118] = "OUI" Then
Sheets("noteDeSynthese").Visible = True
End If
End Sub
J'avais une macro dont voici un extrait du code en fin d'article qui me permet d'afficher ou de masquer un ou plusieurs onglets.
Je viens de changer de version d'Excel (je suis passé à la plus récente) et depuis j'ai un bug : je peux tout à fait masquer les onglets sans problème, mais quand je veux afficher 10 onglets en même temps, il me les affiche que de 2 en 2 (à chaque fois il faut ré-exécuter la macro).
Est-ce dû à la mise à jour de Excel et comment y remédier ?
D'avance merci.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Sub changer()
If [G19] = "NON" Then
Worksheets("procedureCaisse").Visible = False
ElseIf [G19] = "OUI" Then
Worksheets("procedureCaisse").Visible = True
End If
If [G20] = "NON" Then
Worksheets("cadrageClients").Visible = False
ElseIf [G20] = "OUI" Then
Worksheets("cadrageClients").Visible = True
End If
If [G21] = "NON" Then
Worksheets("cadrageChiffreDAffaires").Visible = False
ElseIf [G21] = "OUI" Then
Worksheets("cadrageChiffreDAffaires").Visible = True
End If
...
...
...
...
...
If [G117] = "NON" Then
Sheets("listeAjustements").Visible = False
ElseIf [G117] = "OUI" Then
Sheets("listeAjustements").Visible = True
End If
If [G118] = "NON" Then
Sheets("NoteDeSynthese").Visible = False
ElseIf [G118] = "OUI" Then
Sheets("noteDeSynthese").Visible = True
End If
End Sub
A voir également:
- Excel afficher masquer un onglet
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Trier un tableau excel - Guide
- Rouvrir un onglet fermé - Guide
- Déplacer colonne excel - Guide
9 réponses
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...
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...
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
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()
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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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...
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.
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
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...
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...
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".
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
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
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" !?
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) :
Ton code VBA modifié :
Merci de me donner ton avis.
Merci :)
[EDIT]
Cette partie de ton code sert à quoi ?