Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copier des tableaux dans un autre classeur

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Copie des données
Réponses
0
Affichages
607
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…