Copier cellule d'un classeur fermé

Bonjour,

je voudrais copier les cellules (d'un classeur fermé qui est sur le bureau) A1,B1,C1D1

sur un classeur qui se nomme ( classeur à copier )qui lui est ouvert

avec une macro et il y aura environ 20 lignes a faire aussi ( de 1 à 20 )

merci de votre réponse.

Hello, je ne suis pas un expert mais j'ai des exemples dans mon catalogue

Tu es obligé d'ouvrir le fichier pour récolter les infos

Sub Macro2()
Application.CutCopyMode = False
Application.DisplayAlerts = False
Application.ScreenUpdating = False

 MaMacro = ThisWorkbook.Name
 Nom = "classeur-ferme-sur-bureau.xlsm"
 fichier = ThisWorkbook.Path & "\" & Nom
 Workbooks.Open Filename:=fichier
    Range("A1:D1").Select
    Selection.Copy
    Windows(MaMacro).Activate
    Range("A1").Select
    ActiveSheet.Paste
    Windows(Nom).Activate
    Range("A1").Select
    ActiveWindow.Close
Range("A1").Select
Application.CutCopyMode = True
Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

merci mais je ne veut pas l'ouvrir .

?? qu'est ce que tu ne peux pas ouvrir ?

Ton fichier ou celui que j'ai mis dans mon message précédent ?

re,

ce n'est pas que je ne peut pas ouvrir,

c'est que je ne veut l'ouvrir, je veut qu'il reste fermé !

Edit modo : image supprimé

@Benoist

C'est nouveau ça de coller une image du texte copier

Merci d'éditer votre post et de mettre votre texte au propre SVP
https://forum.excel-pratique.com/post/editer/1078356

Bonjour,

ok donc je reposte,

voila un code qui me convient et qui copie des lignes dans un classeur fermé (qui est sur le bureau)

comment je peut faire, pour aller chercher le classeur dans mes documents et un dossier a la place du bureau

j'ai recopier le code dans le développeur du classeur ci-joint.

merci de votre réponse

1essai.xlsm (30.63 Ko)
code dépouillé de ThauThème (link de hier 20:27)
Sub Import()
     Dim Chemin, Fichier, Feuille, Plage, c, c1

     'PREPARATION
     Chemin = Environ("USERPROFILE") & "\Desktop\"     'chemin vers le bureau
     Fichier = "classeur-ferme-sur-bureau.xlsm"     'nom du fichier
     Feuille = "Feuil1"     'nom de la feuille
     Set c = Range("D20:G39")  'la plage a recuper dans la feuille de ce fichier fermé
     ThisWorkbook.Names.Add "Plage", RefersTo:="='" & Chemin & "[" & Fichier & "]" & Feuille & "'!" & c.Address(1, 1)    'nom défini

     'EXECUTION
     With Sheets("DESTINATION")     'sheet
          Set c1 = .Range(c.Address)     'pour savoir les dimensions de la plage à copier
          With .Range("G20").Resize(c1.Rows.Count, c1.Columns.Count)     'la plage où les données doivent arriver
               .ClearContents     'vider
               .Cells(1).Formula2R1C1 = "=Plage"     'la formule
               .Value = .Value     'remplacer la formule par le valeur
          End With
     End With

End Sub

re,

j'ai mis ton code dans le classeur, mais j'ai pas tout compris ,

j'ai mis la plage à copier, le reste je sais pas voici les 2 classeurs

le premier fichier est au bureau et fermé et le 2ième vous voulez que les données de A1:D20 se copient vers par exemple G20 de Feuil1

Si cela cause des problème verifiez le valeur de "chemin", c'est quoi chez vous ?

Sub Import()
     Dim Chemin, Fichier, Feuille, Plage, c, c1

     'PREPARATION
     Chemin = Environ("USERPROFILE") & "\Desktop\"     'chemin vers le bureau
     Fichier = "classeur-ferme-sur-bureau.xlsm"     'nom du fichier
     Feuille = "Feuil1"     'nom de la feuille
     Set c = Range("a1:d20")  'la plage a recuper dans la feuille de ce fichier fermé
     ThisWorkbook.Names.Add "Plage", RefersTo:="='" & Chemin & "[" & Fichier & "]" & Feuille & "'!" & c.Address(1, 1)    'nom défini

     'EXECUTION
     With Sheets("Feuil1")     '<<<<<<< LE NOM DE LA FEUILLE O% VOUS VOULEZ COLLER
          Set c1 = .Range(c.Address)     'pour savoir les dimensions de la plage à copier
          With .Range("G20").Resize(c1.Rows.Count, c1.Columns.Count)     '<<<<<<<< G20 EST LA CELLULE EN HAUT & GAUCHE DE LA PLAGE OU LES DONNEES DOIVENT ARRIVER
               .ClearContents     'vider
               .Cells(1).Formula2R1C1 = "=Plage"     'la formule
               .Value = .Value     'remplacer la formule par le valeur

               .Columns(1).NumberFormat = "ddd dd mmm yy"     'comme dessert les formats de cette plage
               .Offset(, 2).Resize(, 2).NumberFormat = "#,##0.00 €"
               .EntireColumn.AutoFit
          End With
     End With

End Sub

re,

suis pas plus avancé, j'ai du mal à comprendre

Bonjour Benoist,

Voici un code qui fonctionne chez moi

Sub ImportBM()
  Dim CheminBur As String, FicImport As String
  Dim sFeuil As String, sPlage As String
  Dim NbLig As Long, NbCol As Long
  ' Vrai chemin d'accès au bureau
  CheminBur = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\"
  ' Information sur l'import
  FicImport = "classeur-ferme-sur-bureau.xlsm"
  sFeuil = "Feuil1": sPlage = "A1:D20"
  NbLig = Range(sPlage).Rows.Count: NbCol = Range(sPlage).Columns.Count
  ' Importer les éleménts
  With Sheets("DESTINATION")
    With .Range("A1").Resize(NbLig, NbCol)
      .FormulaLocal = "='" & CheminBur & "[" & FicImport & "]" & sFeuil & "'!" & sPlage
      .Value = .Value
    End With
  End With
End Sub

A+

j'ai mis le code sur le classeur, ça fonctionne pas !

Re,

Désolé, mais le code n'y est pas et le dernier donnée fonctionne

Rappel :

Le fichier 1 "classeur-a-copier.xlsm" est celui qui devrait se nommer plutôt "classeur-avec-copie.xlsm" et qui contient le code
Le fichier 2 "classeur-ferme-sur-bureau.xlsm" est celui qui se trouve directement sur le bureau (je parle bien du bureau Windows)

Donc si tel est bien le principe, lancer la macro du fichier 1 recopie les valeur du fichier 2 de la feuille et de la plage indiqué

Ensuite dire "ne fonctionne pas", ne veut rien dire... qu'est-ce qui ne fonctionne pas ? Quel est le message d'erreur ?

Bref c'est un dialogue de sourd j'ai l'impression

oui pardon, voila je viens de mettre le code ( je n'avais pas enregistrer )

quand je l'execute, j'ai un message d'erreur !

Re,

Vouloir faire du VBA et ne pas savoir ce que veut dire ce message.. comment dire, arf non je l'ai déjà dit

image

Et sur la ligne

image

La feuille du nom "DESTINATION" n'existe pas !!!

Vous voyez avec des copies d'écrans c'est plus simple

Formez vous !

re

Voila c'est plus simple et merci à vous.

Rechercher des sujets similaires à "copier classeur ferme"