Copier/Coller en VBA Erreur 438 aléatoire ?

Creepy

XLDnaute Accro
Bonjour le Forum,

J'ai un souci, lors de l’exécution d'un code j'ai un erreur 438, mais aléatoire :mad: Cela me laisse perplexe et je n'arrive pas à la résoudre. Je pourrais procéder différemment mais je voudrais bien comprendre le pourquoi du comment et corriger pour le principe.

Sujet : Je copie/colle une grande quantité de données (17000 lignes et 29 colonnes) entre deux fichier, ouverts dans 2 sessions différentes.
Comme les colonnes ne se trouvent pas au même endroit dans mes fichiers, mais que les en-têtes sont les mêmes je fais cette action :
1. Récupération du libellé de la colonne X dans le fichier source, (à partir d'un tableau en mémoire)
2. Recherche de cette colonne dans le fichier destination (à partir d'un tableau en mémoire)
3. Select de mes datas ligne 2 à 17000 (fichier source) et collage dans le fichier destination.

Code :
Code:
For iBcl = LBound(TblHead) To UBound(TblHead) Step 1    iCpt = 0
    iCpt2 = 0
    For iBcl2 = LBound(TblHeadMod) To UBound(TblHeadMod) Step 1
        If TblHead(iBcl) = TblHeadMod(iBcl2) Then
            iCpt = iBcl
            iCpt2 = iBcl2
            Exit For
        End If
    Next iBcl2
    
    oWbkSrc.Sheets(1).Range(oWbkSrc.Sheets(1).Cells(2, iCpt + 1), oWbkSrc.Sheets(1).Cells(iFin, iBcl + 1)).Copy  ' REMONTE LA
    oXl.WindowState = xlNormal
    oWbkMdl.Sheets(sHRA).Select
    oWbkMdl.Sheets(sHRA).Cells(2, iCpt2 + 1).Select
    oWbkMdl.Sheets(sHRA).Paste
    oXlSrc.CutCopyMode = False ' ICI CA BUG PARFOIS 
Next iBcl

Le code plante aléatoirement au niveau du "paste" : Erreur 438 Propriété ou méthode non généré par cet objet.

Je ne trouve pas pourquoi. Quand je remonte en débogage à la ligne "REMONTE LA" et que je fais du pas à pas cela passe.

J'ai essayé 50 trucs pour solutionner cette erreur mais elle revient aléatoirement.
Pour info : 2 sessions Excel différente pour le oWbkMdl(oXL) et oWbkSrc (oXlSrc).

Merci de votre aide, j'espère avoir été clair, du moins j'ai essayé ! Je ne peux poster le code car d'une par c'est confidentiel et d'autre part, c'est un fichier énorme.

Merci d'avance, bonne journée.

Creepy
 

Pierrot93

XLDnaute Barbatruc
Re : Copier/Coller en VBA Erreur 438 aléatoire ?

Bonjour,

essaye peut être comme ceci :
Code:
oWbkSrc.Sheets(1).Range(oWbkSrc.Sheets(1).Cells(2, iCpt + 1), oWbkSrc.Sheets(1).Cells(iFin, iBcl + 1)).Copy _
    Destination:=oWbkMdl.Sheets(sHRA).Cells(2, iCpt2 + 1)

bonne journée
@+
 

Creepy

XLDnaute Accro
Re : Copier/Coller en VBA Erreur 438 aléatoire ?

Hello,

Merci Pierrot pour ta réponse, je ne savais plus si j'avais testé, j'ai fait tellement d'essais ...
J'ai donc reesayé et la j'ai un beau : Erreur 1004 : La méthode Copy de la Classe range à échoué !

Et si je rajoute mes sessions comme ceci :
Code:
oXlSrc.oWbkSrc.Sheets(1).Range(oXlSrc.oWbkSrc.Sheets(1).Cells(2, iCpt + 1), oXlSrc.oWbkSrc.Sheets(1).Cells(iFin, iBcl + 1)).Copy Destination:=oXl.oWbkMdl.Sheets(sHRA).Cells(2, iCpt2 + 1)

Rebelote erreur 438 : Propriété ou méthode non gérée par cet objet !!

une autre idée ?

Creepy
 

Creepy

XLDnaute Accro
Re : Copier/Coller en VBA Erreur 438 aléatoire ?

Re,

Hmmm j'aime bien distinguer les sessions, mais effectivement je pense que pour le fichier modèle et source je vais regrouper sur la même session. Je suis en train de faire le test, mais c'est un peu long !

Je vais voir cela !

Mais je suis preneur de la solution à 2 sessions si quelqu'un a, histoire de ne pas rester sur ma faim ...

Merci
 

Discussions similaires

Statistiques des forums

Discussions
314 491
Messages
2 110 165
Membres
110 688
dernier inscrit
hufav