Problème d'éxécution de macros

Bonjour,

J'ai deux macros :

  • La 1ère (Actualiser_classeur) doit juste actualiser un TCD et le classeur : son problème est qu'elle ne s'éxécute pas dès le 1er clic, je suis toujours amené à cliquer 2 ou 3 fois pour la mancer !!
  • La 2ème doit créer des nouvelles feuilles selon les données du fichier source :son problème est qu'elle prend beaucoup de temps à tourner surtout lorsque le nombre de feuilles dépasse le 10

les 2 macros fonctionnent correctement mais présentent les problèmes indiqués ci-dessus, pouvez vous m'aider à les améliorer svp ?

Ci-joint un exemple de fichier simplifié

Merci d'avance

17fichier-test.xlsm (73.79 Ko)

Bonjour

- La 1ère (Actualiser_classeur) doit juste actualiser un TCD et le classeur : son problème est qu'elle ne s'éxécute pas dès le 1er clic, je suis toujours amené à cliquer 2 ou 3 fois pour la mancer !!

Je ne comprends pas au sujet du clic. La macro ne peut être exécutée à l'aide du click mais depuis le module VBA.

Merci d'expliquer ce que tu fais exactement. Je corrigerai le code

Crdlt

Edit : Essaie ceci. Le nom du TCD tableau croisé...4 n'est nécessaire si tu n'as qu'un TCD

Sub Actualiser()
With Sheets("TAB_CTR").PivotTables(1)
    .PivotFields("SIREN").CurrentPage = "(All)"
    .PivotFields("SIREN").PivotItems("(blank)").Visible = False
    .PivotFields("SIREN").EnableMultiplePageItems = True
    .PivotCache.Refresh
End With
With Sheets("TAB_CTR")
    .Rows("9:10").EntireRow.Hidden = True
    .Columns("C:C").EntireColumn.AutoFit
    .Columns("B:B").EntireColumn.AutoFit
End With
End Sub

La macro ActualiserTCD fait doublons et ne te sert pas ici

Bonjour et merci pour votre retour,

Je viens de rajouter les boutons d'éxécution des macros que je les avais avant

En fait la macro 'Actualiser_classeur' ne fonctionne pas dès le 1er clic, mais surtout le grand problème concerne la macro 'Ajout_feuilles' qui tourne longtemps surtout lorsque j'ai des centaines de lignes dans mon fichier source

J'espère que c plus clair

19fichier-test.xlsm (77.06 Ko)

Re

Supprime la macro "actualiser classeur" et associe ton bouton à la macro "Actualiser" que je t'ai donnée dans mon post précédent

Je vais regarder l'autre macro

La macro Ajout feuilles ne sert qu'une fois non ??

Donne moi des explications sur ce que tu fais exactement

Crdlt

Re

Remplace ta macro Ajout feuilles par celle ci-dessous

Sub Ajout_feuilles()
Application.ScreenUpdating = False
With Sheets("TAB_CTR")
    .Visible = True
    .Select
End With

Dim curRange As Range
Set curRange = Sheets("Fichier source").Range("A2:A" & Sheets("Fichier source").Range("C" & Sheets("Fichier source").Rows.Count).End(xlUp).Row)

For Each cel In curRange
    Dim sheetName As String
    sheetName = cel

    If Not SheetExists(sheetName) Then
        Sheets("TAB_CTR").Copy After:=Sheets(Sheets.Count)
        Sheets(Sheets.Count).Name = sheetName
    End If

    With ActiveSheet
        .PivotTables(1).PivotFields("Code").ClearAllFilters
            On Error Resume Next
        .PivotTables(1).PivotFields("Code").CurrentPage = ActiveSheet.Name
        .PivotTables(1).PivotCache.Refresh
        .Columns("C:C,B:B").EntireColumn.AutoFit
        .Columns("B:B").EntireColumn.AutoFit
        .Rows("9:10").EntireRow.Hidden = True
    End With
Next
Application.ScreenUpdating = True
MsgBox ("Les tableaux sont crées")

End Sub

Bien que dans ton cas je comprends que tu mettes des boutons sur chaque feuille, garde à l'esprit que cela va probablement alourdir le fichier.

Sinon c'est un joli fichier..

A te relire

Crdlt

Bonjour,

Merci pour votre réponse

la macro fonctionne correctement et plus rapide qu'avant

Merci

Rechercher des sujets similaires à "probleme execution macros"