Macro VBA qui ne fonctionne pas dans tous les fichiers Excel

Bonjour.

Pour mon association, j'ai un fichier de banque. Pour la nouvelle saison, j'ai fait une macro pour que ma trésorière puisse effacer, sans se tromper, les anciennes données (Elle a des doutes et m'a demandé).

J'ai repris une macro VBA d'un autre fichier qui fonctionne et l'ai copier/coller dans mon fichier de trésorerie, mais il ne fonctionne pas, il me met :

Erreur de compilation

Fonction ou variable attendue

Et dans la macro ci-dessous, il surligne le 1er "Selection".

J'ai effectué la manip suivante :

Les deux fichiers sont ouverts (Mon fichier "trésorerie" et le fichier où j'ai copier cette macro). Je travail sur une page de mon fichier "trésorerie".

Dans mon fichier trésorerie, je lance la macro ci-dessous depuis l'autre fichier et ça fonctionne. Je lance la macro recopié dans le fichier "trésorerie" (La même), ça ne fonctionne pas.

Je ne vois pas le problème, merci pour votre aide.

Sub RAZ()
'
' Effacement des anciennes données
'
    Range("I9:J208,L9:M208").Select
    selection.ClearContents
'
' Effacement du gris des colonnes précédement colorées.
'
    Columns("I9:J208,L9:M208").Select
    With selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
End Sub

Bonjour,

Votre problème vient du fait que vous nommez une macro en utilisant le mot "selection" qui est une instruction faisant partie des instructions VBA d'Excel.... A ne jamais faire...

La macro RAZ s'applique à quelle feuille ?

Si c'est à la feuille "tenue comptabilité" faites comme ceci :

Sub RAZ() 'Effacement

With Sheets("Tenue comptabilité")
    With .Range("I9:J208,L9:M208")
        .ClearContents ' Effacement des anciennes données
        With .Interior ' Effacement du gris des colonnes précédement colorées.
            .Pattern = xlNone
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
    End With
End With
End Sub

Maintenant vos code Auto_open et Auto_close font partie de l'antiquité excel (Excel 2000, 97...
On pourrait utiliser les fonctionnalités qui sont utilisée partout aujourd'hui
Si vous voulez je propose de les modifier

Bonjour

A tout hasard

Effacement couleur:

Columns("I9:J208,L9:M208").Select

remplacer Columns par Range...

FINDRH

Merci à vous deux d'avoir répondu aussi vite, se soir je ne pourrais pas essayer mais je m'y mets demain.

Pour Dan, oui, c'est bien "tenue comptabilité" et pour les antiquités, je veux bien apprendre ce qui se fait maintenant.

Bonne soirée.

Pour Dan, oui, c'est bien "tenue comptabilité" et pour les antiquités, je veux bien apprendre ce qui se fait maintenant.

1. Dans votre module remplacez le code compte par celui-ci

Sub compte()
' Cette macro sélectionne la page des comptes.
Dim ligne As Integer

With Sheets("Tenue comptabilité")
    ligne = .Range("C" & Rows.Count).End(xlUp).Row
    If ligne < 9 Then ligne = 9
    .Range("C" & ligne).Select
End With
End Sub

2. Toujours dans le mdoule, supprimez les deux codes Auto_open et Auto_close

3. Dans l'éditeur VBA à gauche et juste au dessus du dossier, vous verrez un objet nommé THISWORKBOOK
Faites un double click dessus et dans la fenêtre mettez les deux codes ci-dessous

Private Sub Workbook_Open()
Sheets("Tenue comptabilité").Select
Call compte
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
End Sub

Rem : je vous conseille d'éviter les accents et espaces dans le nom des feuilles. Avec VBA pensez toujours Anglais. Si vous préférez conserver "Tenue Compatbilité", vous pouvez remplacez dans tous les codes --> Sheets("Tenue comptabilité") par ceci --> Feuil4

Dites moi si ok

Cordialement

Bonsoir.

Je vais voir ça ce weekend, j'aurai plus de temps.

Merci pour les infos.

Bonsoir.

J'ai été surbooké ces dernières semaines, et donc pas pris le temps de prendre le temps d'essayer les macros de Dan.

C'est OK, ça fonctionne bien.

Merci.

Rechercher des sujets similaires à "macro vba qui fonctionne pas tous fichiers"