Range(Cells.Select - 1004 Erreur définie par

Bonjour,

Depuis maintenant quelques jours, je me heurte à un problème. J'ai beaucoup cherché mais, malgré le fait qu'il y ait beaucoup de cas similaires sur le web, je n'ai rien trouvé... Voici les faits :

Je cherche à faire une sélection de cellules afin de les couper et les déplacer. Malheureusement, une erreur apparaît et je n'arrive vraiment pas à comprendre pourquoi... (1004 : Erreur définie par l'application ou par l'objet).

Voici mon code :

Sub ajoutMois(feuille, nbMois, numeroLigne, numeroColonne)

    Sheets(feuille).Activate

    ' On déplace la colonne Production
    ActiveSheet.Range(Cells(7, numeroColonne), Cells(10, numeroColonne + 1)).Select ' L'erreur arrive ici
    Selection.Cut
    ActiveSheet.Cells(7, numeroColonne + 3).Select
    ActiveSheet.Paste

    MsgBox ("Colonne prod")

    ' On copie/colle la colonne du mois précédent
    ActiveSheet.Range(Cells(7, (numeroColonne - 3)), Cells(numeroLigne, (numeroColonne - 1))).Select
    Selection.Copy
    ActiveSheet.Cells(7, numeroColonne).Select
    ActiveSheet.Paste

    MsgBox ("Mois précédent")

    ' On grise le mois d'avant
    ActiveSheet.Range(Cells(9, numeroColonne - 3), Cells(numeroLigne, numeroColonne - 1)).Style = "Grisé"

    MsgBox ("Grisé")

    ' On modifie le texte et on supprime les contenus
    mois = Worksheets("Données").Range("E" & nbMois + 1).Value
    ActiveSheet.Cells(7, numeroColonne).Value = "Production du mois de " & mois

    MsgBox ("Modification texte")

    ActiveSheet.Range(Cells(9, (numeroColonne)), Cells(numeroLigne, (numeroColonne + 2))).Select
    Selection.ClearContents

    MsgBox ("Clear")

End Sub

Et j'appelle la macro plusieurs fois dans une boucle :

    ' Quelques données
    nbFeuilles = ActiveWorkbook.Sheets.Count
    numeroLigne = Sheets(1).Range("J" & Rows.Count).End(xlUp).Row
    numeroColonne = 10 + (nbMois * 3)

    For i = 1 To nbFeuilles - 1 ' On ne prend pas la feuille Données
        Call ajoutMois(2, nbMois, numeroLigne, numeroColonne)
    Next

Voilà... Donc à priori l'erreur apparaît à partir du ActiveSheets....Select.

Si quelqu'un a une idée, je suis preneur...

Merci d'avance !

Bonjour Polo, bonjour le forum,

C'est bien joli ton laïus mais ça ne nous permet pas de vérifier la valeur des variables !... Tu dois vérifier la valeur de la variable numeroColonne au moment du plantage. Et, pour éviter toute confusion si tu travailles dans plusieurs onglets, le code correct devrait être :

ActiveSheet.Range(ActiveSheet.Cells(7, numeroColonne), ActiveSheet.Cells(10, numeroColonne + 1)).Select

Salut ThauThème,

En effet tu ne peux pas vérifier avec ce code là.

Mais je l'ai fait et pas qu'une fois crois moi ! Dans le cas présent, numeroColonne vaut 16. Je n'ai pas le code à te fournir sous la main là de suite mais je te le transmets dès que je peux !

PoloRelou a écrit :

Mais je l'ai fait et pas qu'une fois crois moi !

C'est pas parce que tu fais des conneries 10 fois que ça finit pas par te retomber sur le coin de la figure....

La bonne syntaxe est celle donnée pat Totem !

Après, les ActiveSheet, et autre Select, Selection c'est un peu relou ! (euphémisme...)

Mébon...

A+

Yo !

En effet, j'ai simplement rajouter le ActiveSheet devant les Cells et ça fonctionne...

Grazie

Rechercher des sujets similaires à "range select 1004 erreur definie"