macro ne s'active pas "correctement"

charette63

XLDnaute Occasionnel
Bonsoir à tous et toutes,

j'ai créé une macro via l'éditeur vba, ci dessous les actions effectuées:

je suis sur une feuille appelée "Horaire"
je lance l'enregistrement de la macro
je sélectionne toute les feuilles de mon classeur (excepté "horaire")
je sélectionne le colonnes T:AK que je masque
je sélectionne la cellule A1 (juste pour etre dans la premiere cellule à l'ouverture du classeur)
je retourne sur la feuille "Horaire" (pour sortir du groupe de travail)
je termine l'enregistrement de la macro

je vérifie toutes mes feuilles, le colonnes T:AK sont bien masquées.


Mon problème, est que lorsque je lance la macro, les colonnes T:AK sont masquées uniquement sur la premiere feuille (appelée ici "Dupont A")

je dépose le code:

Code:
Sub masquer_colonne1()
'
' masquer_colonne Macro
' Macro enregistrée le 5/05/2011 par thierry
'

'
   Sheets("Dupont A").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets(Array("Dupont A", "Dupont B", "Dupont C", "Dupont D", "Dupont E", _
"Dupont F", "Dupont G", "Dupont H", "Dupont I", "Dupont J", "Dupont K", _
"Dupont L", "Dupont M", "Dupont N", "Dupont O", "Dupont P", "Dupont Q", "Dupont R", _
"Dupont S", "Dupont T", "Dupont U", "Dupont V", "Dupont W", "Dupont X", "Dupont Y", _
"Dupont Z", "Remplacement 1", "Remplacement 2", _
"Remplacement 3", "Remplacement 4", "Remplacement 5", "Remplacement 6")).Select _
Replace:=False

    Columns("T:AK").Select
    Selection.EntireColumn.Hidden = True
    ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
    ActiveWindow.ScrollColumn = 14
    ActiveWindow.ScrollColumn = 13
    ActiveWindow.ScrollColumn = 12
    ActiveWindow.ScrollColumn = 11
    ActiveWindow.ScrollColumn = 10
    ActiveWindow.ScrollColumn = 9
    ActiveWindow.ScrollColumn = 8
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Range("A1").Select
    Sheets("Horaire").Select
End Sub

Pouvez vous m'aider
Merci
 

Gorfael

XLDnaute Barbatruc
Re : macro ne s'active pas "correctement"

Salut charette63 et le forum
Code:
Sub masquer_colonne1()
Dim F As Worksheet
For Each F In Sheets(Array("Dupont A", "Dupont B", "Dupont C", "Dupont D", "Dupont E", _
            "Dupont F", "Dupont G", "Dupont H", "Dupont I", "Dupont J", "Dupont K", _
            "Dupont L", "Dupont M", "Dupont N", "Dupont O", "Dupont P", "Dupont Q", "Dupont R", _
            "Dupont S", "Dupont T", "Dupont U", "Dupont V", "Dupont W", "Dupont X", "Dupont Y", _
            "Dupont Z", "Remplacement 1", "Remplacement 2", _
            "Remplacement 3", "Remplacement 4", "Remplacement 5", "Remplacement 6"))

    .Columns("T:AK").Hidden = True
    .Range("A1").Activate
Next F
Sheets("Horaire").Activate
Range("A1").Select
End Sub
Faut pas croire tout ce que raconte Excel ;)
Comme tu as mis les noms des feuilles, je m'en suis servi. Sinon j'aurais mis
Code:
for each F in thisworkbook.sheets
    if F.name<>"Horaire" then
        'masquage colonnes
    end if
next F
Je n'ai pas testé la macro.
A+
 
Dernière édition:

charette63

XLDnaute Occasionnel
Re : macro ne s'active pas "correctement"

Bonjour carcharodon-carcharias, Gorfael et le forum,

Pour carcharodon-carcharias, le code que tu m'as transmis ne s'applique pas à mes besoins, le bout de code que je recherche est associé dans une macro plus complexe qui comprend une "déprotection" du classeur, ouverture des onglets autre que "Horaire",et mise en page avant impression. Et c'est cette mise en page qui pose problème (masquage des colonnes dans tout les classeurs).

Pour Gorfael, ton premier code me donne une erreur d'execution 9:" l'indice n'appartient pas à la selection" et c'est toute la partie des "noms" qui est jaunie dans le Visual basic editor.
J'ai essayé ton deuxieme code:

Code:
Sub masquer_colonne1()

Dim F As Worksheet
For Each F In ThisWorkbook.Sheets
    If F.Name <> "Horaire" Then
    Columns("T:AK").Hidden = True
    Range("A1").Activate
    End If
Next F
Sheets("Horaire").Activate
Range("A1").Select
End Sub

Je n'ai plus de message d'erreur, mais les colonnes sont masquées uniquement dans la feuille "Horaire".

Merci à vous deux pour votre collaboration
 

Gorfael

XLDnaute Barbatruc
Re : macro ne s'active pas "correctement"

Salut charette63 et le forum
Mon premier code est issu directement du tien pour les noms. Et si j'avais pas oublié "F."...
Code:
Sub masquer_colonne1()
Dim F As Worksheet
For Each F In ThisWorkbook.Sheets
    If F.Name <> "Horaire" Then
        F.Columns("T:AK").Hidden = True
        F.Range("A1").select
    End If
Next F
Sheets("Horaire").Activate
Range("A1").Select
End Sub
Il est a des soir où il vaut mieux dormir ;)
(je comprenais pas le poste de carcharodon-carcharias)
A+
 
Dernière édition:

Discussions similaires

Réponses
10
Affichages
519

Statistiques des forums

Discussions
312 196
Messages
2 086 097
Membres
103 116
dernier inscrit
kutobi87