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

copier/coller une plage variable d'un classeur à un autre

taupivin

XLDnaute Junior
Bonjour les développeurs,

Peut-être pourrez-vous m'aider sur mon problème.
Je souhaite réaliser un :
--> copier une plage de cellules (nb de colonnes fixes et nb de ligne variables) depuis un classeur "source"
Règle : si la cellule de la colonne A est NON-VIDE alors copier de Ai à Zi

--> Coller cette plage vers la première ligne vide d'un classeur "cible".

Vous trouverez mes deux classeurs en pièce jointe.

Ci-dessous le code que je n'arrive pas à faire fonctionner (entre les ****) :

Code:
Private Sub CommandButton5_Click()
 
Dim Msg, Style, Title
 
Dim MaPlage As Range
Dim DernLigne As Long

 
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
 
If IsFileOpen("C:\WINXP\Profiles\25003880\Desktop\Macro MR-GLS\BDD_MR.xlsx") Then
MsgBox "Fichier ouvert par un autre utilisateur" & Chr(13) & "Merci d'essayer plus tard"
Else
Workbooks.Open "C:\WINXP\Profiles\25003880\Desktop\Macro MR-GLS\BDD_MR.xlsx"
 
Workbooks("Mondial Relay Vtest").Worksheets("essai").Visible = True

'***************************************************************************************
With Workbooks("Mondial Relay Vtest").Worksheets("essai") 'Ceci est pour le classeur 1

Set MaPlage = Workbooks("Mondial Relay Vtest").Worksheets("essai").Range("A" & DernLigne & ":Z" & DernLigne)
MaPlage.Copy

End With

ActiveSheet.Paste Destination:=Workbooks("BDD_MR").Worksheets("Database").Range("A1") 'Copie vers le classeur 2
Application.CutCopyMode = False
'***************************************************************************************

Workbooks("Mondial Relay Vtest").Worksheets("essai").Visible = False
 
End If

End Sub


Le fichier source ne nomme "Mondial Relay Vtest2"
Le fichier cible se nomme BDD_MR

Merci par avance pour votre aide.
 

Pièces jointes

  • BDD_MR.xlsx
    17.9 KB · Affichages: 24
  • Mondial Relay Vtest2.xlsm
    253.3 KB · Affichages: 40

taupivin

XLDnaute Junior
Re : copier/coller une plage variable d'un classeur à un autre

Re, j'ai trouvé pourquoi rien ne se passait avec mon code.
Après une petite modification, je n'arrive qu'a copier la première ligne.
La plage selectionnée est uniquement la première ligne ????

Code:
Private Sub CommandButton5_Click()
 
Dim Msg, Style, Title
 
Dim MaPlage As Range
Dim DernLigne As Long
Dim i As Integer
 
'************************************************************************************************
If IsFileOpen("C:\WINXP\Profiles\25003880\Desktop\Macro MR-GLS\BDD_MR.xlsx") Then
MsgBox "Fichier ouvert par un autre utilisateur" & Chr(13) & "Merci d'essayer plus tard"
Else
Workbooks.Open "C:\WINXP\Profiles\25003880\Desktop\Macro MR-GLS\BDD_MR.xlsx"
 
Workbooks("Mondial Relay Vtest").Worksheets("essai").Visible = True

'****************************************************************************************************

With Workbooks("Mondial Relay Vtest").Worksheets("essai") 'Ceci est pour le classeur 1
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
Set MaPlage = Workbooks("Mondial Relay Vtest").Worksheets("essai").Range("A" & DernLigne & ":F" & DernLigne)
MaPlage.Copy

End With

ActiveSheet.Paste Destination:=Workbooks("BDD_MR").Worksheets("Database").Range("A1") 'Copie vers le classeur 2
'Application.CutCopyMode = False
'***************************************************************************************************

Workbooks("Mondial Relay Vtest").Worksheets("essai").Visible = False
 
End If

End Sub
 

taupivin

XLDnaute Junior
Re : copier/coller une plage variable d'un classeur à un autre

Bonjour à tous,

je viens de modifier la ligne suivante
Code:
Set MaPlage = Workbooks("Mondial Relay Vtest").Worksheets("essai").Range("A2:F" & DernLigne)

Maintenant cela "copie-colle" la première et la 7 lignes -____-'

Bizarre !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…