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

Copier/Coller colonnes classeur 1 à 6 vers classeur cible [Résolu]

  • Initiateur de la discussion Initiateur de la discussion webdo87
  • Date de début Date de début

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 !

webdo87

XLDnaute Nouveau
Bonjour la communauté,

Je dois réaliser une macro permettant de copier/coller plusieurs colonnes à la suite provenant de plusieurs classeurs dans un classeur cible et je souhaiterais avoir de l'aide de votre part.

Merci de suivre la discussion à partir du 3ème message.

Meilleures salutations,

J.S
 
Dernière édition:
Re : Copier/Coller colonnes classeur 1 à 6 vers classeur cible

Bonjour

Il faut que la taille de Source1 et Cible soit identique.

Donc pour cela il faudrait faire quelque chose comme ceci ? :

Code:
Source1 = Array("J", "H", "I", "AG", "AB", "V", "W", "Y", "Z")
CibleSource1 = Array("A", "B", "C", "D", "E", "F", "G", "H", "I")

Source2 = Array("AK", "AM", "W", "X", "Y", "Z", "AI", "AJ", "AP", "AS", "AE", "AG")
CibleSource2 =  Array("J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V")

Merci encore à toi, Staple1600. Personne d'autre de la communauté pour me donner un coup de main svp ?


Cordialement,

J.S
 
Re : Copier/Coller colonnes classeur 1 à 6 vers classeur cible

Bonjour

Merci encore à toi, Staple1600. Personne d'autre de la communauté pour me donner un coup de main svp ?


Cordialement,

J.S

Faut croire que non 😉

Ou alors c'est parce que nous sommes en week-end et que la communauté privilégie la vie de famille 😉
(ce en quoi elle a pas tort 😉 )

Pour ma part, je suis chargé du barbecue, donc je serai aléatoirement présent sur XLD entre deux merguez 😉
 
Re : Copier/Coller colonnes classeur 1 à 6 vers classeur cible

Si quelqu'un pourrait m'aider ce serait vraiment super..je suis coincé et je dois trouver une solution pour cette semaine.

Merci d'avance à la communauté.


Cordialement,

J.S
 
Re : Copier/Coller colonnes classeur 1 à 6 vers classeur cible

Bonjour

Ca coince ou exactement?
Republie ton code VBA tel que tu l’utilises actuellement (avec tes dernières modifs)
 
Dernière édition:
Re : Copier/Coller colonnes classeur 1 à 6 vers classeur cible

Bonjour,

Je suis toujours coincé à l'étape de la copie..comment dire de prendre source 1 -> cible puis source 2 -> cible avec les mêmes grandeurs de tableau.

VBA :

Code:
Sub a()
Dim Test$, arrWBK
Dim Source1(), Source2(), Cible()
Dim MaPlage As Range, DerLig As Long, Wk5 As Workbook
'Ajout
Dim Ws5 As Worksheet
arrWBK = Array("classeur1.xls", "classeur2.xls","classeur3.xls", "classeur4.xls")
'Ajout
Set Wk5 = Workbooks("classeur5.xls")
'Ajout
Set Ws5 = Wk5.Worksheets("Feuil1")
    Source1 = Array("J", "H", "I", "AG", "AB", "V", "W", "Y", "Z")
    Source2 = Array("AK", "AM", "W", "X", "Y", "Z", "AI", "AJ", "AP", "AS", "AE", "AG")
    Cible = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V")
    'A remanier
    For i = 0 To UBound(arrWBK)
        For j = 0 To UBound(Source1)
        With Workbooks(arrWBK(i)).Sheets(1)
            DerLig = .Cells(65536, Source1(j)).End(xlUp).Row
            MsgBox "Derlig= " & DerLig
            Set MaPlage = Cells(2, CStr(Source1(j))).Resize(DerLig)
            Test = Workbooks(arrWBK(i)).Name & ": " & .Name & ": " & MaPlage.Address
            MsgBox Test
            'Ajout
            MaPlage.Copy Destination:=Ws5.Range(Cible(j) & 2)
            Set MaPlage = Nothing
        End With
        Next j
    Next i
    'Ajout
    Set Ws5 = Nothing
    'Ajout
    Set Wk5 = Nothing
End Sub

Cordialement,

J.S
 
Re : Copier/Coller colonnes classeur 1 à 6 vers classeur cible

Re

Fais l'essai en faisant exprès d'avoir taille Source1 = taille Cible
Source1 = Array("J", "H", "I", "AG", "AB", "V", "W", "Y", "Z")
Cible = Array("A", "B", "C", "D", "E", "F", "G", "H", "I")

Est-ce que la copie se fait?
 
Re : Copier/Coller colonnes classeur 1 à 6 vers classeur cible

Re,

Fais l'essai en faisant exprès d'avoir taille Source1 = taille Cible
Source1 = Array("J", "H", "I", "AG", "AB", "V", "W", "Y", "Z")
Cible = Array("A", "B", "C", "D", "E", "F", "G", "H", "I")

Est-ce que la copie se fait?

Non pas de changement...ça plante à la fin de la macro
 
Re : Copier/Coller colonnes classeur 1 à 6 vers classeur cible

Bonsoir


Je viens de faire un test rapide (avec 3 classeurs ouverts mais non enregistrés)
Code:
Sub ab()
Dim arrWBK, derligg&, Ws5 As Worksheet
Dim Source1(), Cible()
Dim MaPlage As Range, derlig As Long, Wk5 As Workbook
arrWBK = Array("classeur2", "classeur3")
Set Wk5 = ThisWorkbook 'Workbooks("classeur5.xls")
Set Ws5 = Wk5.Worksheets("Feuil1")
    Source1 = Array("H", "I", "J")
    Cible = Array("A", "B", "C")
    'A remanier
    For i = 0 To UBound(arrWBK)
        For j = 0 To UBound(Source1)
        With Workbooks(arrWBK(i)).Sheets(1)
            derlig = .Cells(65536, Source1(j)).End(xlUp).Row
            Set MaPlage = .Cells(2, CStr(Source1(j))).Resize(derlig)
            derligg = Ws5.Cells(65536, Cible(j)).End(xlUp).Row
            MaPlage.Copy Destination:=Ws5.Cells(derligg + 1, Cible(j))
            Set MaPlage = Nothing
        End With
        Next j
    Next i
    Set Ws5 = Nothing: Set Wk5 = Nothing
End Sub

La recopie se fait bien sur mon pc
Le code de la macro est dans le classeur1.
 
Re : Copier/Coller colonnes classeur 1 à 6 vers classeur cible

Bonjour,

C'est super ça marche très bien 🙂 Je te remercie beaucoup pour ton aide. Mon problème est résolu. Si dessous Le code remanié pour 4 classeurs enregistrés :

Code:
Sub ab()
Dim arrWBK, arrWBK2, derligg&, Ws5 As Worksheet
Dim Source1(), Source2(), Cible()
Dim MaPlage As Range, derlig As Long, Wk5 As Workbook
arrWBK = Array("classeur1.xls", "classeur2.xls")
arrWBK2 = Array("classeur3.xls", "classeur4.xls")
Set Wk5 = ThisWorkbook 'Workbooks("classeur5.xls")
Set Ws5 = Wk5.Worksheets("Feuil1")
    Source1 = Array("J", "H", "I", "AG", "AB")
    Source2 = Array("Z")
    Cible = Array("A", "B", "C", "D", "E")
    Cible2 = Array("F")
    'A remanier
    For i = 0 To UBound(arrWBK)
        For j = 0 To UBound(Source1)
        With Workbooks(arrWBK(i)).Sheets(1)
            derlig = .Cells(65536, Source1(j)).End(xlUp).Row
            Set MaPlage = .Cells(2, CStr(Source1(j))).Resize(derlig)
            derligg = Ws5.Cells(65536, Cible(j)).End(xlUp).Row
            MaPlage.Copy Destination:=Ws5.Cells(derligg + 1, Cible(j))
            Set MaPlage = Nothing
        End With
        Next j
    Next i
    For i = 0 To UBound(arrWBK2)
        For j = 0 To UBound(Source2)
        With Workbooks(arrWBK2(i)).Sheets(1)
            derlig = .Cells(65536, Source2(j)).End(xlUp).Row
            Set MaPlage = .Cells(2, CStr(Source2(j))).Resize(derlig)
            derligg = Ws5.Cells(65536, Cible2(j)).End(xlUp).Row
            MaPlage.Copy Destination:=Ws5.Cells(derligg + 1, Cible2(j))
            Set MaPlage = Nothing
        End With
        Next j
    Next i
    Set Ws5 = Nothing: Set Wk5 = Nothing
End Sub

Cordialement,

J.S
 
- 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

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