Macro insertion ligne, erreur 1004

Bonjour à tous,

J'utilise la macro suivante afin d'ajouter une ligne à ma base de donnée. (Elle copie les formules, mais pas le contenu)

Sub insertionLigne()

    Dim derligne
        derligne = Range("A3").End(xlDown).Row

            Application.EnableEvents = False
            Rows(derligne).Copy
            Rows(derligne + 1).Insert
            Rows(derligne + 1).PasteSpecial xlPasteFormulas
            Rows(derligne + 1).SpecialCells(xlCellTypeConstants, 23).ClearContents

            Application.CutCopyMode = False
            Application.EnableEvents = True

End Sub

Jusqu'à présent ça fonctionnait bien. Sauf que, lorsque j'ai voulu créer une seconde base de données sur un tableau vierge, et que je veux agrandir celui-ci avec cette macro je me prends une "erreur d'éxécution 1004, erreur définie par l'application ou par l'objet"

En faisant plusieurs tests, j'ai remarqué que les deux premières lignes (A3 et A4) de mon tableau devaient être remplies. Si elles sont vides, j'ai l'erreur citée plus haut.

Je précise que ce n'est pas un tableau à proprement parlé, je l'ai créé avec des bordures.

Si quelqu'un à une soluce...

Merci à vous,

Lucas

Salut Lucas,

en effet, si A3 et A4 sont vides, ton instruction renseignera le fond de ta feuille : derligne + 1 sort de la feuille = erreur!

Ceci, par contre,...

derligne = Range("A" & Rows.Count).End(xlUp).Row

... te renseignera 1 si A3 et A4 sont vides.

Il faut alors appliquer un contrôle sur derligne pour forcer un départ de calcul à partir de la ligne souhaitée.

If derligne = 1 Then derligne = 3

A+

Aaaaaaah ça marche beaucoup mieux comme ça

Merci beaucoup curulis57.

Belle journée,

Lucas

Rechercher des sujets similaires à "macro insertion ligne erreur 1004"