Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Erreur 1004 à la recopie de cellules

  • Initiateur de la discussion Initiateur de la discussion jdmuys
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jdmuys

XLDnaute Nouveau
Bonjour,

J'ai la redoutée erreur 1004 dans une macro, sur une ligne qui se contente de recopier une cellule d'un onglet sur un autre:

Code:
    Let Sheets("Archive").Range("Ident_").Cells(line, 1).Value = Sheets("Régression").Range("E36").Value
    Let Sheets("Archive").Range("Date").Cells(line, 1).Value = Sheets("Régression").Range("E37").Value

Notez que l'erreur se produit sur la 2e ligne ci-dessus. La première, similaire, passe sans erreur.

Plus étrange encore: tout fonctionnait bien avant une modification simple. Ma macro recopie environ une trentaine de cellules. En mode de calcul automatique, cela était sensiblement trop long. J'ai donc voulu encadrer ma routine par un appel à CalcMan et CalcAuto dont le code est le suivant:

Code:
Sub CalcMan()
    With Application
        .Calculation = xlManual
        .MaxChange = 0.001
    End With
    ActiveWorkbook.PrecisionAsDisplayed = False
End Sub

Sub CalcAuto()
    With Application
        .Calculation = xlAutomatic
        .MaxChange = 0.001
    End With
    ActiveWorkbook.PrecisionAsDisplayed = False
End Sub

Donc: en mode calcul manuel ca plante. En mode calcul auto, ca marche.

Encore plus étrange: cela ne plante que si la variable line ci dessus vaut 1. Pour les lignes suivantes, elle est incrémentée, et là ça ne plante plus du tout, même en calcul manuel!

Je me cogne la tête sur les murs.

Merci pour toute suggestion.
 
Re : Erreur 1004 à la recopie de cellules

bonjour et bienvenue

Date est un mot reservé en VBA et une Fonction sur Excel, je ne sais pas si ca vient de la, mais personnellement, j'evite de prendre des mots reservés ou des noms de fonction comme nom de plage

pour la suite, il serait interressant de voir le fichier, y aurait il des calculs qui se fassent au fure et à mesure des mise à jour et qui modifieraient certaines valeurs à transferer, qui finalement avec le calcul manuel ne se mettent pas à jour

@ te lire
 
Re : Erreur 1004 à la recopie de cellules

"Date" est entre guillemet, ce qui devrait exclure tout risque de collision avec des mots réservés. Mais comme c'est du logiciel Microsoft, j'ai quand même changé le nom de la plage: même erreur.

Concernant le flot des calculs, il n'y a aucun impact:

- la feuille régression calcule une régression linéaire sur des valeurs expérimentales et est totalement indépendante.

- la feuille archive sert à stocker l'historique de ces valeurs expérimentales de la feuille régression dans des lignes successives par l'exécution de ma routine, qui est appelée par un clic dans un bouton "Mémoriser". Elle ne dépend de rien du tout, puisque seules les valeurs de la feuille régression y sont recopiées par la routine.

- une troisième feuille analyse fait des calculs statistiques sur les lignes de la feuille archive. elle dépend seulement de la feuille archive. Elle ne plante jamais, même si les lignes de l'archive ne sont que partiellement remplies. Par contre, ses calculs sont relativement lourds ce qui explique la relative lenteur de ma routine en mode calcul auto.
 
Re : Erreur 1004 à la recopie de cellules

Oui: ca plante avec line=1

Ce ne peut donc pas être directement cela la source du problème (d'autant plus que ca marche en mode auto)

Mon hypothèse la moins invraisemblable pour l'instant: line=1 représente le moment ou l'archive est vide. Beaucoup de formule retournent alors des valeurs d'erreurs normales, genre #NA, ou DIV/ZERO. Remplir une seule ligne provoque alors une vague de transformations. Beaucoup de cases deviennent invalidées. On atteint alors une sorte de "plafond" de complexité qui fait rendre l'âme au moteur de dépendances d'Excel.

Je n'ai évidemment pas de preuve.

Excel n'est bien sûr d'aucune aide pour débugger le problème.
 
Re : Erreur 1004 à la recopie de cellules

J'ai contourné le problème pour l'instant en appelant CalcMan de manière conditionnelle:

Code:
if line > 1 then CalcMan

Evidemment, ce n'est pas satisfaisant.

Je n'ai pas encore essayé de danser devant Excel avec un poulet égorgé. J'aurais peut-être dû...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…