erreur 1004 sur macro de concaténation

pepsister

XLDnaute Junior
Bonjour,
j'ai crée une macro qui concatène une cinquantaine de cellules pour ensuite les comparer à un autre fichier.
Dans un premier temps ma macro ouvre et le fait pour un premier fichier de 107 477 lignes tout est ok.
Je fais la même chose avec mon deuxième fichier 107 240 qui a un peu moins de lignes et là erreur 1004 sur ma ligne 4 de ma macro.

Voici le code:
Worksheets("preprod").Activate
For J = 1 To Range("AW110000").End(xlUp).Row '65536
For B = 1 To 49
Cells(J, "AX") = Cells(J, "AX") & Cells(J, B).Value
Next B
Next J

Je l'ai exécuté 3 fois cette macro, la 1ere fois l'erreur se faisait à la 86 000lignes la 2eme fois à la 50 000 et la dernière à 97 000. C'est vraiment très aléatoire.
Ce qui est assez drole c'est que je peux continuer en faisant du pas à pas détaillé mais dès que je passe en mode exécution il me met l'erreur.
Et au lieu de concaténer quand il affiche l'erreur en pas a pas détaillé il supprime et remplace.
Savez vous pourquoi ca me fait ca? Est ce que ca peut etre du à la taille trop importante du fichier? Je n'ai jamais eu ce problème depuis 3j que je l'utilise mais les fichiers étaient plus petits.
C'est aussi régulier qu'après l'erreur j'ai excel qui m'affiche:
Microsoft office excel a cessé de fonctionner
Et je suis obligée de tout fermer.

Si quelqu'un peut m'aider.

Merci à vous.
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : erreur 1004 sur macro de concaténation

Bonjour,

Peut-être qu'en utilisant des tableaux VBA???

Essaie ainsi, mais avec 100 000 lignes, pas sûr...

Code:
Sub ee()
Dim Tblo1
Dim DerLig As Long, I As Long
DerLig = Cells(Rows.Count, "AX").End(xlUp).Row
Tblo1 = Range("AX1:AX" & DerLig)
ReDim Tblo2(1 To DerLig)
For I = LBound(Tblo1) To UBound(Tblo1)
    Tblo2(I) = Tblo1(I, 1) & Join(Application.Transpose(Application.Transpose(Cells(I, 1).Resize(1, 49))), "")
Next I
Cells(1, "AY").Resize(DerLig) = Application.Transpose(Tblo2)
End Sub

Peut-être....

Bon courage
 

pepsister

XLDnaute Junior
Re : erreur 1004 sur macro de concaténation

il me met une erreur sur la dernière ligne avec incompatibilité de types.
En plus je ne comprends pas bien le rôle du tableau 1 et 2. Le tableau 1 correspond à la colonne que je cherche à remplir par une concaténation et qui ne marche pas. Du coup là on définit un tableau 1 vide alors que je cherche à le remplir.
IL doit me manquer quelques éléments là mais je ne comprends pas bien ta fonction.
Merci de ton aide
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : erreur 1004 sur macro de concaténation

Bonjour,

J'ai travaillé sur ton code, sans voir la structure de ton fichier....

Effectivement, j'ai mal défini Tblo1, j'ai pris la colonne AX...

Modifie :

Code:
Sub v2()
Dim DerLig As Long, I As Long
DerLig = Cells(Rows.Count, "AW").End(xlUp).Row
ReDim Tblo1(1 To DerLig)
For I = 1 To DerLig
    Tblo1(I) = Join(Application.Transpose(Application.Transpose(Cells(I, 1).Resize(1, 49))), "")
Next I
Cells(1, "AX").Resize(DerLig) = Application.Transpose(Tblo1)
End Sub

Et je viens de comprendre ce que tu voulais....:rolleyes:

Par contre, sur plus de 100 000 lignes.....:confused:

Bon courage
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA