Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Faire une action sur plusieurs onglets

Elo6b

XLDnaute Nouveau
Bonjour,
Sur cette action :
With Sheets("A-1")
Select Case n
Case 1
.Columns("h:gz").Hidden = False
.Columns("I:L").Hidden = True
.Columns("o").Hidden = True
.Columns("T:Y").Hidden = True
.Columns("AA:AC").Hidden = True
.Columns("AE:EZ").Hidden = True
.Columns("FC:FF").Hidden = True
.Columns("FH:FK").Hidden = True
.Columns("FM:FP").Hidden = True
.Columns("FR:FU").Hidden = True
.Columns("FW:fz").Hidden = True
Range("G9").Select
End Select
End With

Je voudrai également le faire sur un autre onglet "A prévisionnelle". Comment l'intégrer en même temps que le With Sheets("A-1") ?
En vous remerciant de votre aide!
 

tototiti2008

XLDnaute Barbatruc
Re : Faire une action sur plusieurs onglets

Bonjour Elo6b, Bonjour natorp, Bonjour stefan,

à tester

Code:
Dim Sht As Worksheet, n As Long
    For Each Sht In Sheets(Array("A-1", "A previsionnel"))
        With Sht
        Select Case n
            Case 1
                .Columns("h:gz").Hidden = False
                .Range("I:L,o:P,T:Y,AA:AC,AE:EZ,FC:FF,FH:FK,FM:FP,FR:FU,FW:fz").EntireColumn.Hidden = True
                .Activate
                .Range("G9").Select
            End Select
        End With
    Next
 

stefan373

XLDnaute Occasionnel
Re : Faire une action sur plusieurs onglets

Re,

Bonjour tototiti2008,

Je réédite ma réflexion , si on met
Code:
select case n
puis
Code:
case 1
cela va t'il fonctionner ?
Ne faut-il pas mettre ?
Code:
case n

Merci et a plus Stéfan
 

stefan373

XLDnaute Occasionnel
Re : Faire une action sur plusieurs onglets

Re, re,

Effectivement il y a peut-être une partie du code non dévoilée, mais en l'état du code envoyé, je pense qu'il ne ce passerai rien. et j'avais bien lu 1 et pas l.

Merci pour votre réponse.

A + Stéfan
 

tototiti2008

XLDnaute Barbatruc
Re : Faire une action sur plusieurs onglets

Re,

Oui, il doit nous manquer du code

Code:
Select Case n
    Case 1

Signifie : teste la valeur de la variable n
Si elle vaut 1, fait ce qui suit, jusqu'au prochain Case ou jusqu'au End Select
En général on fait un Select Case quand il y a beaucoup de cas, le fait qu'il n'y en ait qu'un veut surement dire qu'il ne nous a pas fourni les autres cas
Je ne sais pas si je répond à ta question, je ne sais pas ce qui te gène dans l'écriture...

Edit : si n n'est pas défini dans la première partie du code, en effet, il ne se passera rien puisque n ne sera pas égal à 1, d'accord avec toi
 

stefan373

XLDnaute Occasionnel
Re : Faire une action sur plusieurs onglets

Re, re, re,

C'est bien ce que ma pensée me disait, mais effectivement vous avez encore une fois raison car aucun intérêt d'utiliser le Case avec une seule possibilité.

Un grand merci pour votre explication.

A + Stéfan
 

Elo6b

XLDnaute Nouveau
Re : Faire une action sur plusieurs onglets

Effectivement j'ai 11 cas qui s'imbriquaient.
Si n=1 alors c'est le cas que j'avais mis.
Par contre si n=2, colonnes différentes masquées, etc...
Comment dois-je faire après le next? Faut-il reprendre :
Dim Sht As Worksheet, n As Long
For Each Sht In Sheets(Array("A-1", "A previsionnel"))
With Sht
Select Case n
Case 2
.Columns("h:gz").Hidden = False
.Range("I:L,o,T:Y,AA:AC").EntireColumn.Hidden = True
.Activate
.Range("G9").Select
End Select
End With
Next
Et refaire pareil pour chaque n?
En vous remerciant de votre aide!
 

tototiti2008

XLDnaute Barbatruc
Re : Faire une action sur plusieurs onglets

Re,

Si tu vas en mode avancé quand tu écris ton message, tu as une balise code (#) qui permet de poster du code de façon plus lisible

ça devrait donner un truc comme ça


Code:
For Each Sht In Sheets(Array("A-1", "A previsionnel"))
        With Sht
        Select Case n
        Case 1
         .Columns("h:gz").Hidden = False
         .Range("I:L,o:P,T:Y,AA:AC,AE:EZ,FC:FF,FH:FK,FM:FP,FR:FU,FW:fz").EntireColumn.Hidden = True
         .Activate
         .Range("G9").Select
            Case 2
                .Columns("h:gz").Hidden = False
                .Range("I:L,o:P,T:Y,AA:AC").EntireColumn.Hidden = True
                .Activate
                .Range("G9").Select
            End Select
        End With
    Next
 

Elo6b

XLDnaute Nouveau
Re : Faire une action sur plusieurs onglets

Ca ne fonctionne pas... Bug au niveau de la ligne
Code:
For Each Sht In Sheets(Array("A-1", "A previsionnelle"))
Je mets le fichier en pièce jointe
Merci de vos aides!
 

Pièces jointes

  • PDE Forum Excel.zip
    255.3 KB · Affichages: 20
  • PDE Forum Excel.zip
    255.3 KB · Affichages: 23
  • PDE Forum Excel.zip
    255.3 KB · Affichages: 18

kjin

XLDnaute Barbatruc
Re : Faire une action sur plusieurs onglets

Bonsoir, salut Tototiti
Cette discussion aurait-elle une vague ressemblance avec celle de ce fil
Si c'est le cas, je m'interroge et je me demande pourquoi D...se décarcasse t-il !

A+
kjin
 

Elo6b

XLDnaute Nouveau
Re : Faire une action sur plusieurs onglets

Bonsoir kjin,
C'est le même fichier mais avec des soucis différents!
Sur la précédente discussion, le but était de faire un affichage dépend de 2 cellules.
ici, j'y arrive (grâce à vous!) sur un onglet mais pas sur 2 à la fois (les 2 onglets sont construits de manière identiques).
Je n'arrive pas à faire parcourir l'action sur les 2 onglets.
Merci de votre aide et bonne soirée!
 

kjin

XLDnaute Barbatruc
Re : Faire une action sur plusieurs onglets

Bonsoir,
C'est le même fichier mais avec des soucis différents!
Mouais ! Inutile de multiposter sur le même sujet, on fini par ne plus suivre le fil...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$24" Or Target.Count > 1 Then Exit Sub
n = [choix_actuel]
For Each ws In Sheets
    Select Case ws.Name
    Case "A-1", "A Prévisionnelle"
    With ws
        Select Case n
        Case 1 To 5
            .Columns("H:FZ").Hidden = True
            x1 = (n * 30) - 22
            x2 = (n * 30) + 6
            .Range(.Columns(x1), .Columns(x2)).Hidden = False
            For x3 = 1 To 5
                .Columns(x3 * 5 + 152 + n).Hidden = False
            Next
        Case 6
            .Columns("H:FZ").Hidden = False
        End Select
    End With
    End Select
Next
End Sub
Mais il est vrai que je n'ai pas traité les cas > 6 car je pensais que tu pourrais compléter (je t'ai répondu sur ce fil)
Reviens si ce n'est pas le cas
A+
kjin
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…