Copier des tableaux dans un autre classeur

Nicolas DC

XLDnaute Nouveau
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 ;-)

Pour infos, tableau_fixe comprendra toujours les colonnes "A:E", par contre tableau_variable comme son nom l'indique peut varier de colonnes (mais sera toujours composé de 3 colonnes consécutives).

Sub ()

'---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

End Sub
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas