Copie d'un classeur à un autre "VBA"

Résolu/Fermé
Alex_HX8XF Messages postés 340 Date d'inscription mercredi 26 février 2014 Statut Membre Dernière intervention 30 octobre 2018 - 19 juin 2018 à 15:03
Alex_HX8XF Messages postés 340 Date d'inscription mercredi 26 février 2014 Statut Membre Dernière intervention 30 octobre 2018 - 19 juin 2018 à 18:00
Bonjour,

Je souhaite copier des cellules d'un classeur à un autre:

de: "Classeur1:A83:A2000;G83:H2000"
vers:"Classeur2:A83:A2000;B83:C2000" (Les cellules de G&H du classeur1 se retrouvent en B&C)

Sachant aussi que dans le classeur1 j'insert souvent une ligne entre A83 et A84 (cela vas poser un problème?).
Donc est-ce possible?
Merci ;)


3 réponses

danielc0 Messages postés 830 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 17 avril 2024 74
19 juin 2018 à 15:21
Bonjour,

Donne un nom aux deux plages source. Ils intégreront les lignes insérées.

Pour la destination, ne précise que la première cellule.

Cordialement.

Daniel
0
Alex_HX8XF Messages postés 340 Date d'inscription mercredi 26 février 2014 Statut Membre Dernière intervention 30 octobre 2018 417
19 juin 2018 à 16:46
Donc j'ai renommer la plage "A83:A2000" en A_END

Voici mon code vba: (il y as une erreur mais où?)

Sub SelectFichier()
    Dim MonFichier
    MonFichier = Application.GetOpenFilename("E:\Users\Marco\Desktop\Classement.xlsm")
    If MonFichier <> False Then
           
        Copie (MonFichier)
           
    Else
        MsgBox "Vous n'avez pas sélectionné de fichier"
    End If
End Sub
   
Sub Copie(MonFichier)
Dim nomUn, NewBook As Workbook
Set nomUn = ThisWorkbook
  
Set NewBook = Workbooks.Open(MonFichier)
NewBook.Activate
  
Sheets("Feuil1").Range("A_END").Copy
   
nomUn.Activate
Worksheets("Feuil1").Range("B5").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
Application.CutCopyMode = False
  
NewBook.Close False
  
End Sub
0
danielc0 Messages postés 830 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 17 avril 2024 74
19 juin 2018 à 17:32
La méthode GetOpenFileName n'est pas correcte. Qu'est-ce que tu cherches à faire ?.

Daniel
0
Alex_HX8XF Messages postés 340 Date d'inscription mercredi 26 février 2014 Statut Membre Dernière intervention 30 octobre 2018 417
19 juin 2018 à 17:35
Je cherche à copier "A_END" qui est dans "Feuil1" du classeur "Classement"
Vers "B5" qui est dans "Feuil1" du classeur ou se trouve le code.
0
danielc0 Messages postés 830 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 17 avril 2024 74
19 juin 2018 à 17:49
Ca devrait suffire (non testé) :

Sub Copie()
Dim nomUn, NewBook As Workbook
Set nomUn = ThisWorkbook

Set NewBook = Workbooks.Open("E:\Users\Marco\Desktop\Classement.xlsm")
NewBook.Activate

Sheets("Feuil1").Range("A_END").Copy

nomUn.Activate
Worksheets("Feuil1").Range("B5").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Application.CutCopyMode = False

NewBook.Close False

End Sub


Daniel
0
Alex_HX8XF Messages postés 340 Date d'inscription mercredi 26 février 2014 Statut Membre Dernière intervention 30 octobre 2018 417
19 juin 2018 à 18:00
Génial merci!!!!
0