Erreur d'exécution Erreur automation "l'objet invoqué s'est déconnecté ..."

Bonjour à tous et merci pour votre aide

Je ne suis pas du tout familier de VBA et je me contente d'enregistrer .

EXCEL 2013

J'essaie vainement d'enregistrer une macro (dans PERSONNAL. XLSB ) qui me semble pourtant simple:

Le classeur a plusieurs onglets, chacun représentant 1 mois de l'année: JANV , FEV, MARS, etc... + le dernier qui s'appelle DETAIL et qui doit regrouper tous les mois

En bref il s'agit donc de copier les données d'un mois et de les insérer sur la feuille DETAIL puis de faire pareil avec les autres mois.

La macro s'exécute (les données copiées et insérées apparaissent bien sur la feuille DETAIL mais tout se bloque et j'ai la fenêtre suivante:

image

Je suis obligé de tout fermer avec le gestionnaire de tâches. Quelques fois la macro fonctionne jusqu'à ce qu'apparaisse à nouveau le problème

J'ai enregistré plusieurs fois la macro avec de légères variantes mais le problème persiste. Je note que lorsque j'utilisais EXCEL 2003 les enregistrements ne buguait jamais.

Voici la macro:

Sub Macro3DET()

'

' Macro3DET Macro

' DET

Range("E11:N200").Copy

Sheets("DETAIL").Select

Range("E11").Select

Selection.Insert Shift:=xlDown

End Sub

Bonjour,

Recopiez ceci et remplacez le nom de la feuille "Feuil1" par le nom de votre feuille contenant les données à recopier.

Sub Macro3DET()
    Sheets("Feuil1").Range("E11:N200").Copy
    Sheets("DETAIL").Range("E11").Insert Shift:=xlDown
End Sub

Cdlt

Bonjour Arturo83

Merci beaucoup ça marche sauf qu'en remplaçant "Feuille1" par le nom de la feuille contenant les données "JANV" ça ne fait qu'insérer toujours la même feuille

Or je veux ensuite activer la macro pour les feuilles suivantes "FEV", "MARS", "AVR", ainsi de suite jusqu'à "DEC"

Est ce que je peux copier 12 fois (12 mois) les 2 lignes en changeant le nom "feuill1" chaque fois par le mois concerné. J'ai peur de tout casser

 Sheets("JANV").Range("E11:N200").Copy
 Sheets("DETAIL").Range("E11").Insert Shift:=xlDown

 Sheets("FEV").Range("E11:N200").Copy
 Sheets("DETAIL").Range("E11").Insert Shift:=xlDown

 Sheets("MARS").Range("E11:N200").Copy
 Sheets("DETAIL").Range("E11").Insert Shift:=xlDown

 "
 "
 "
 End Sub

Alors comme ceci:

Sub Macro3DET()
    Dim i As Long
    Application.ScreenUpdating = False
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "DETAIL" Then
            Sheets(i).Range("E11:N200").Copy
            Sheets("DETAIL").Range("E11").Insert Shift:=xlDown
        End If
    Next i
End Sub

Bonjour Arturo83

Mille mercis parce que là tout marche parfaitement.

Je suis vraiment nul en VBA mais je vois qu'il y a des cours. Peut être que je m'aventurerai.

Si je comprends bien quand ça bugue c'est que c'est mal écrit.
Je faisais confiance à l'enregistreur qui marchait très bien avec Excel 2003. Avec 2013 ça à l'air beaucoup plus délicat.

Heureusement qu'il y a des Cadors sur ce site

Très bonne soirée

Guy

Rechercher des sujets similaires à "erreur execution automation objet invoque deconnecte"