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

Copier plages d'un classeur fermé

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 !

kadelmalin

XLDnaute Occasionnel
Bonjour chers amis,
Je recours à votre aide pour résoudre un problème de copie des plages A2:I30 et L2:Q30 du classeur cible fermé dans le classeur cible qui contient les mêmes colonnes mais vierges. Merci de votre assistance.
 

Pièces jointes

Bonjour malin,
Essaie ceci macro à mettre dans un module
Bien modifier le nom du fichier Source
les 2 fichiers doivent être dans le même dossier.
Bruno
VB:
Sub ouverture()
'vu
Application.ScreenUpdating = False
For Each Wb In Workbooks
  If Wb.Name = "XLC_Source.xls" Then 'modifier nom du fichier..........
    Workbooks(Wb.Name).Activate: k = 1
  End If
Next
If k = "" Then
chemfich = ThisWorkbook.Path & "\XLC_Source.xls.xls" 'ici aussi.........
On Error Resume Next
Workbooks.Open chemfich
If Err <> 0 Then MsgBox "XLC_Source.xls non trouvé": Exit Sub 'là aussi..
End If
ActiveWindow.WindowState = xlMinimized
ThisWorkbook.Activate
ActiveWindow.WindowState = xlMaximized
With Workbooks("XLC_Source.xls").Sheets(1) 'encore ici...................
'Feuil1.[A2:Q1000].Clear
Feuil6.[A2:I30].Value = .[A2:I30].Value
Feuil6.[L2:Q30].Value = .[L2:Q30].Value
End With
Workbooks("XLC_Source.xls").Close False 'encore ici.......................
End Sub

Edit: A rectifier dans le code
With Workbooks("XLC_Source.xls").Sheets("Mouv")
 
Dernière édition:
Bonsoir kadelmalin 🙂, Bruno 🙂

Une autre façon, sans ouvrir le fichier source. Change le chemin du classeur.

VB:
Sub Copie_Donnees()

  Application.ScreenUpdating = False

  [A2:I30].ClearContents
  [L2:Q30].ClearContents

  On Error Resume Next

  With [A2:I30]
  .Formula = "='C:\Users\TOTO\Desktop\[XLC_Source]Feuil6'!A2:I30"
  .AutoFill [A2:I30]
  .Value = .Value
  End With

  With [L2:Q30]
  .Formula = "='C:\Users\TOTO\Desktop\[XLC_Source]Feuil6'!L2:Q30"
  .AutoFill [L2:Q30]
  .Value = .Value
  End With

End Sub
 
Dernière édition:
Salut !
Me voilà de retour ! Le post #1 était parfait mais j'ai opté pour le post #2 qui m'évitait d'ouvrir le classeur source; seulement je suis obligé de lui indiquer le chemin. Y a-t-il un moyen pour qu'il prenne en compte le dossier actif ou se trouve les 2 classeurs. Merci et pardonnez si j'abuse de votre temps.
 
Hééé,
Salut Jacky et kadelmalin,
On peut très bien indiquer le chemin du classeur par la commande ThisWorkbook.Path
donc .Formula = "=' " & ThisWorkbook.Path & "\[XLC_Source]Feuil6'!A2:I30"
Je n'ai pas testé mais ça doit faire l'affaire.
Bruno
 
Re

Bruno, le classeur receveur est sur le bureau, les classeurs sources sont dans D:\xxx - E:\xxx -F:\xxx par exemple, de plus
" J'ignore dans quel dossier l'utilisateur va mettre son classeur"; et si ils sont en réseau, je ne suis pas vraiment certain avec ThisWorkbook.Path. Ce qu'il doit faire, c'est connaître le chemin des dossiers, ensuite il pourrat faire comme ceci

VB:
Option Explicit

Public Const chemin1 As String = "D:\Users\Salam\OK\"
Public Const chemin2 As String = "E:\Users\Alei\D'ACCORD\"
Public Const chemin3 As String = "F:\Users\Coum\J'AI COMPRIS\"
 
Dernière édition:
Salut,
Pardonnez mon intrusion. J'ai testé le path proposé par Bruno ; çà a presque marché mais comme le classeur contient plusieurs feuilles c'est la première qui a été remplie et non la feuille 6. Jacky ne m'en veux pas s'il te plait.
 
- 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

Réponses
9
Affichages
824
Réponses
4
Affichages
913
Réponses
5
Affichages
625
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…