Excel 2003

Bonjour,

J'ai une macro qui copie un contenu d'un fichier.xls à un autre et elle se bloque quand elle rencontre un contenu de cellule trop volumineux, l'erreur est ici :

ThisWorkbook.Sheets(1).Cells(v, j) = Workbooks(Wk.Name).Sheets(1).Cells(i, j)

C'est hyper urgent,

merci

5 réponses

  1. envoi ton fichier via cjoint.com et donne le lien donné ici
    0
    1. le probleme c'est que c'est un fichier tres confidentiel et mon patron n'accepte pas ca :(
      0
      1. Modérateur
        Bonjour,
        Si le fichier est confidentiel, merci tout de même de :
        1- nous donner le message d'erreur entier
        2- nous donner le code en entier.
        0
        1. bonjour,

          Voici le message d'erreur :

          Sub ConsoSloi()
          ' Efface et consolide une SLOI a partir des autres SLOI présentes dans le répertoire
          ' Les nomns de fichiers doivent contenir "SLOI" ou "PSLI"
          ' Déclaration des variables entières de boucle
          Dim i As Integer
          Dim v As Integer
          Dim j As Integer

          'Declaration des classeurs folders et chaines associées
          Dim Wk As Object
          Dim rep As Object
          Dim Chemin As String
          Dim Fichier As String

          ThisWorkbook.Activate
          Chemin = ThisWorkbook.Path
          Set rep = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)

          v = 3

          For Each Wk In rep.Files
          If Wk.Name <> ThisWorkbook.Name Then
          If InStr(Wk.Name, "SLOI") <> 0 Or InStr(Wk.Name, "SLI") <> 0 Or InStr(Wk.Name, "OIL") <> 0 Then
          Fichier = Chemin & "\" & Wk.Name
          Workbooks.Open Fichier
          Workbooks(Wk.Name).Activate
          For i = 3 To 10000
          If IsEmpty(Workbooks(Wk.Name).Sheets(1).Cells(i, 3)) Then Exit For
          For j = 2 To 34
          ThisWorkbook.Sheets(1).Cells(v, j) = Workbooks(Wk.Name).Sheets(1).Cells(i, j)
          Next j
          v = v + 1
          Next i
          ActiveWorkbook.Close SaveChanges:=False
          End If
          End If
          Next

          For i = v To 10000
          If IsEmpty(ThisWorkbook.Sheets(1).Cells(i, 3)) Then Exit For
          For j = 2 To 34
          ThisWorkbook.Sheets(1).Cells(v, j) = ""
          Next j
          Next i

          ThisWorkbook.Activate

          End Sub


          Le message d'erreur :

          >>>>>>erreur d'execution "1004"
          erreur définie par l'application ou par l'objet<<<<<<

          Le probleme se situe à la ligne :

          <gras>ThisWorkbook.Sheets(1).Cells(v, j) = Workbooks(Wk.Name).Sheets(1).Cells(i, j)

          Merci de m'aider car c'est ma place qui est en jeu :)
          0
          1. j'ai oublié de préciser ce que fait ma MACRO:

            Elle consolide plusieurs fichiers excel pour mettre tout le contenu dans un seul fichier, sachant que les ficihiers ont tous la meme forme.

            Le hic, c'est qu'il commence à copier et dés qu'il arrive à une cellule qui comporte un nombre de caracteres important, il bug.

            Merci mes amis
            0