VBA Copier valeur

Bonjour,

J'ai une macro VBA qui a cessé de fonctionner lorsque je suis passé de la version EXCEL 2003 à 2010.

J'avais récupéré cette macro sur internet il y a quelques années.

Sub Bouton1_Cliquer()

' Copier coller en valeur l'ensemble du classeur

Dim Feuille As Worksheet
Dim FeuilleRef As Worksheet

    Application.ScreenUpdating = False

    ' mémorisation de la feuille active
    Set FeuilleRef = ActiveSheet

    ' parcours des feuilles de travail
    For Each Feuille In ActiveWorkbook.Worksheets
        With Feuille

           ' coeur de la macro
           .Select
           .Cells.Copy
           .Cells.PasteSpecial Paste:=xlPasteValues
           .Range("A1").Select

        End With

    Next Feuille

    ' réactivation de la feuille active initiale
    FeuilleRef.Activate

    Application.CutCopyMode = False
    Application.ScreenUpdating = True

End Sub

C'est la partie "Coeur de la macro" qui est identifié en bug.

Pourriez-vous m'expliquer pourquoi svp ? le langage a-t-il changé ?

Bonjour,

as-tu un message d'erreur ? sur quelle instruction ?

Bonjour,

Oui d'abord sur:

.Select

et

.Range(A1).Select

Je vous met un fichier exemple en copie.

Bonsoir,

Peux-tu nous dire, qu'est-ce qu'on copie et où on colle les valeurs tout simplement.

Bonjour,

pas de changement entre 2003 et 2010 sur ce point.

Si ce n'est un éventuel problème de mémoire, les feuilles étant beaucoup plus grande.

Tu peux remplacer avantageusement par :

    For Each Feuille In ActiveWorkbook.Worksheets
        With Feuille.UsedRange
            ' coeur de la macro
            .Value = .Value
        End With
    Next Feuille

eric

Rechercher des sujets similaires à "vba copier valeur"