Erreur Macro que je ne comprends pas

Bonjour,

Je débute en VBA et je viens de créer une première macro.

Elle fonctionne mais elle est beaucoup trop longue car plusieurs actions répétées dans plusieurs feuilles.

Du coup j'essaie le système de boucle pour l'améliorer et j'ai rédigé ce code :

Sub Exe_en_cours()

 Dim sh As Worksheet
    For Each sh In ThisWorkbook.Worksheets
        If sh Like "RA*" Or sh = "ALEAS" Then
            ActiveSheet.Outline.ShowLevels rowlevels:=0, columnlivels:=2
            Columns("AI:AX").Select
            Selection.EntireColumn.Hidden = True
            Range("K13").Select
         End If
     Next sh

 End Sub

J'obtiens "l'erreur d'exécution '438' : propriété ou méthode non gérée par cet objet"

Je ne comprends pas vraiment...

Est-ce que quelqu'un peut m'aider pour faire fonctionner ma toute première macro, s'il vous plaît?

Merci d'avance

columnlEvels pardon

Bonjour,

sans fichier .....

et je m'attends à : "oui mais il est confidentiel" n'est ce pas ? donc une copie identique suffira

P.

21fichier-aide-vba.xlsm (325.41 Ko)

Bonjour patrick1957,

Bien vu, j'espérais ne pas avoir à en fournir un ^^ (en plus il est tellement lourd même vierge que j'ai dû supprimer beaucoup de choses pour pouvoir l'envoyer )

Du coup en voici une copie. L'original possède beaucoup d'autres feuilles mais avec des noms bien différents sur lesquels mes deux macros ne doivent pas s'appliquer.

Je ne sais pas si vous voyez les deux macros déjà existantes qui fonctionnent malgré le fait qu'elles ne soient pas très bien écrites

En gros l'idée est d'avoir dans la feuille SETUP deux boutons qui permettent une mise en forme de toutes les feuilles qui suivent.

Une mise en forme pour l'année N et une pour N + 1. Ainsi, dans les tableaux des feuilles "RA n" (dans l'original ("RA 1" : "RA 30")) + "ALEAS", des colonnes doivent être masquées/affichées (ces colonnes sont déjà groupées) pour présenter les bonnes données.

J'ai rajouté une petite commande de sélection de cellule après remise en forme pour se repositionner vers le début de chaque tableau (je l'ai fait par intuition mais il y peut-être une meilleure méthode pour cette action aussi )

Des macros étaient déjà présentes et je cherche juste à les faire évoluer mais en me renseignant sur VBA j'ai compris qu'il y avait de bien meilleures façons de le faire et c'est ce que j'ai tenté dans le code présenté dans mon premier message mais l'erreur d'exécution renvoyée reste un grand mystère pour moi qui débute à peine dans le code

J'espère que mes explications sont assez claires

Merci beaucoup pour votre aide

Bonjour,

sur ton fichier, j'ai essayé ceci: (tu n'as pas mis sh.name )

Sub test()
Dim sh As Worksheet
    For Each sh In ThisWorkbook.Worksheets
        If sh.Name Like "RA*" Or sh.Name = "ALEAS" Then
            sh.Outline.ShowLevels rowlevels:=0, columnlevels:=2
            Columns("AI:AX").Select
            Selection.EntireColumn.Hidden = True
            Range("K13").Select
         End If
     Next sh
End Sub

Patrick,

En effet je vois cette erreur. Merci beaucoup

Maintenant je vois le message "erreur d'exécution '13' : incompatibilité de type"

Je ne vois pas non plus ce que ça veut dire...

Erratum,

J'avais mis un "s" au premier worksheet mais du coup maintenant c'est l'erreur 438 : propriété ou méthode non gérée par cet objet

(Je vais faire toutes les erreurs d'exécution dès la première macro moi haha )

Rechercher des sujets similaires à "erreur macro que comprends pas"