Copier des tableaux dans un autre classeur

Fermé
Nicolas - Modifié par Nicolas le 12/11/2015 à 13:26
Bonjour à tous,

J'ai un soucis avec mon bout de code ci-dessous. Excel copie bien mon premier tableau (tableau_fixe) mais il ne semble pas vouloir copier mon second tableau (tableau_variable).
Si l'un d'entre vous sait m'éclairer sur mon/mes erreur(s), cela serait fort urbain de votre part ;-)


'---On crée le lien vers le fichier dans lequel on va aller chercher les infos.
Dim dossier, fichier_cherche, feuille_cherche, nom_cherche As String, resultat As String

dossier = f2.Cells(3, 7) & "\"
fichier_cherche = f2.Cells(5, 7)
feuille_cherche = f2.Cells(7, 7)
nom_cherche = ActiveSheet.Cells(1, 6)


'---Cette MsgBox me sert pour l'instant à vérifier si on va bien chercher les infos dans le bon fichier
resultat = nom_cherche & " se trouve dans la feuille : " & feuille_cherche & ", du fichier : " & fichier_cherche & ", dans le dossier : " & dossier
MsgBox resultat


Application.AskToUpdateLinks = False 'permet d'empêcher la demande de mise à jour (MàJ) et à priori effectue tout de même la MàJ.
Application.DisplayAlerts = False 'permet d'empêcher l'alerte signalant qu'Excel n'a pas su mettre tous les liens à jour.

'---Ouverture du fichier dans lequel on va aller chercher les infos.
Workbooks.Open Filename:=dossier & fichier_cherche

Application.DisplayAlerts = True 'réactive les messages d'alerte.
Application.AskToUpdateLinks = True 'réactive la demande de MàJ.


With Sheets(feuille_cherche)
'---On va chercher les différentes colonnes consécutives nécessaires
colonne_nom = Rows("1:1").Find(What:=nom_cherche, SearchDirection:=xlNext, SearchOrder:=xlByColumns).Column
colonne_initiale = colonne_nom
colonne_version = colonne_nom + 1
colonne_encours = colonne_nom + 2


Dim tableau_fixe, tableau_variable, Derling As Integer

'---Mémorisation des deux tableaux
Derlig = .Columns("A").Find(What:="*", SearchDirection:=xlPrevious).Row
tableau_fixe = .Range("A4:E" & Derlig)
tableau_variable = .Range(Cells(4, colonne_initiale), Cells(Derlig, colonne_encours))

End With

'---On ferme le fichier, pas besoin de l'enregistrer vu qu'il n'y a pas eu de modif
ActiveWorkbook.Close SaveChanges:=False

'---On va ouvrir le fichier temporaire
fichier_temporaire = "temp.xlsx"
Workbooks.Open Filename:=dossier & fichier_temporaire

'---Restitution des deux tableaux
With Sheets("feuil1")
.Range("A1:E" & Derlig) = tableau_fixe
.Range("F1:H" & Derlig) = tableau_variable
End With