Copier coller cellule de plusieurs classeurs à un autre classeur
Résolu
she
-
skk201 Messages postés 942 Date d'inscription Statut Membre Dernière intervention -
skk201 Messages postés 942 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai plusieurs fichiers excels dans un même dossier dans lequels je dois copiers des cellules precise dans un autre classeur cible (situé dans le même dossier).
Pour l'instant j'ai utilisé un simple copier coller en vba, mais j'aimerai connaitre un autre moyen (j'ai essayé d'autre code trouvé sur internet mais je n'y comprend pas grand chose)
1) j'aimerai pouvoir copiers les cellules sans avoir à ouvrir les classeurs source à chaque fois.
2) Dans un classeur source j'aimerai pouvoir changer la cellule qui change selon le mois choisi(au niveau vertical) de façon plus simple.
3)Je veux copier une cellule qui correspond par exemple à la colonne E et à la ligne 114
et trouver la cellule correspondant à un autre service pour cela je dois ajouter de 112 lignes
à chaque fois. puis copier ces cellules dans un autre classeur Range("B6:W6").
voici mon code
Private Sub CommandButton1_Click()
Set Wbk2 = Workbooks("Stat_metiers.xls")
Set Wbk3 = Workbooks("fichier.xls")
'pour cellule violette
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B2:X2") = Wbk2.Sheets("Feuil1").Range("C45:X45").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B3:X3") = Wbk2.Sheets("Feuil1").Range("C47:X47").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B4:X4") = Wbk2.Sheets("Feuil1").Range("C50:X50").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B5:X5") = Wbk2.Sheets("Feuil1").Range("C51:X51").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B7:X7") = Wbk2.Sheets("Feuil1").Range("C54:X54").Value
'pour cellule grise
'changer range de wbk3 par E pour Janvier; G pour Mars; J pour juin; M pour Septembre; P pour Décembre.
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B6") = Wbk3.Sheets("Feuil1").Range("E114").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("C6") = Wbk3.Sheets("Feuil1").Range("E226").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("D6") = Wbk3.Sheets("Feuil1").Range("E338").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("E6") = Wbk3.Sheets("Feuil1").Range("E450").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("F6") = Wbk3.Sheets("Feuil1").Range("E562").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("G6") = Wbk3.Sheets("Feuil1").Range("E674").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("H6") = Wbk3.Sheets("Feuil1").Range("E786").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("I6") = Wbk3.Sheets("Feuil1").Range("E898").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("J6") = Wbk3.Sheets("Feuil1").Range("E1010").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("K6") = Wbk3.Sheets("Feuil1").Range("E1122").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("L6") = Wbk3.Sheets("Feuil1").Range("E1234").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("M6") = Wbk3.Sheets("Feuil1").Range("E1346").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("N6") = Wbk3.Sheets("Feuil1").Range("E1458").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("O6") = Wbk3.Sheets("Feuil1").Range("E1570").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("P6") = Wbk3.Sheets("Feuil1").Range("E1682").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("Q6") = Wbk3.Sheets("Feuil1").Range("E1794").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("R6") = Wbk3.Sheets("Feuil1").Range("E1906").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("S6") = Wbk3.Sheets("Feuil1").Range("E2018").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("T6") = Wbk3.Sheets("Feuil1").Range("E2130").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("U6") = Wbk3.Sheets("Feuil1").Range("E2242").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("V6") = Wbk3.Sheets("Feuil1").Range("E2354").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("W6") = Wbk3.Sheets("Feuil1").Range("E2466").Value
End Sub
merci d'avance de votre aide :-)
j'ai plusieurs fichiers excels dans un même dossier dans lequels je dois copiers des cellules precise dans un autre classeur cible (situé dans le même dossier).
Pour l'instant j'ai utilisé un simple copier coller en vba, mais j'aimerai connaitre un autre moyen (j'ai essayé d'autre code trouvé sur internet mais je n'y comprend pas grand chose)
1) j'aimerai pouvoir copiers les cellules sans avoir à ouvrir les classeurs source à chaque fois.
2) Dans un classeur source j'aimerai pouvoir changer la cellule qui change selon le mois choisi(au niveau vertical) de façon plus simple.
3)Je veux copier une cellule qui correspond par exemple à la colonne E et à la ligne 114
et trouver la cellule correspondant à un autre service pour cela je dois ajouter de 112 lignes
à chaque fois. puis copier ces cellules dans un autre classeur Range("B6:W6").
voici mon code
Private Sub CommandButton1_Click()
Set Wbk2 = Workbooks("Stat_metiers.xls")
Set Wbk3 = Workbooks("fichier.xls")
'pour cellule violette
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B2:X2") = Wbk2.Sheets("Feuil1").Range("C45:X45").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B3:X3") = Wbk2.Sheets("Feuil1").Range("C47:X47").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B4:X4") = Wbk2.Sheets("Feuil1").Range("C50:X50").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B5:X5") = Wbk2.Sheets("Feuil1").Range("C51:X51").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B7:X7") = Wbk2.Sheets("Feuil1").Range("C54:X54").Value
'pour cellule grise
'changer range de wbk3 par E pour Janvier; G pour Mars; J pour juin; M pour Septembre; P pour Décembre.
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B6") = Wbk3.Sheets("Feuil1").Range("E114").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("C6") = Wbk3.Sheets("Feuil1").Range("E226").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("D6") = Wbk3.Sheets("Feuil1").Range("E338").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("E6") = Wbk3.Sheets("Feuil1").Range("E450").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("F6") = Wbk3.Sheets("Feuil1").Range("E562").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("G6") = Wbk3.Sheets("Feuil1").Range("E674").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("H6") = Wbk3.Sheets("Feuil1").Range("E786").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("I6") = Wbk3.Sheets("Feuil1").Range("E898").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("J6") = Wbk3.Sheets("Feuil1").Range("E1010").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("K6") = Wbk3.Sheets("Feuil1").Range("E1122").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("L6") = Wbk3.Sheets("Feuil1").Range("E1234").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("M6") = Wbk3.Sheets("Feuil1").Range("E1346").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("N6") = Wbk3.Sheets("Feuil1").Range("E1458").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("O6") = Wbk3.Sheets("Feuil1").Range("E1570").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("P6") = Wbk3.Sheets("Feuil1").Range("E1682").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("Q6") = Wbk3.Sheets("Feuil1").Range("E1794").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("R6") = Wbk3.Sheets("Feuil1").Range("E1906").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("S6") = Wbk3.Sheets("Feuil1").Range("E2018").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("T6") = Wbk3.Sheets("Feuil1").Range("E2130").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("U6") = Wbk3.Sheets("Feuil1").Range("E2242").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("V6") = Wbk3.Sheets("Feuil1").Range("E2354").Value
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("W6") = Wbk3.Sheets("Feuil1").Range("E2466").Value
End Sub
merci d'avance de votre aide :-)
A voir également:
- Copier coller cellule de plusieurs classeurs à un autre classeur
- Retrouver un copier-coller android - Guide
- Style d'écriture a copier coller - Guide
- Copier coller pdf - Guide
- Copier-coller - Accueil - Informatique
- Symbole clavier copier coller - Guide
1 réponse
Bonjour
Comme ça c'est déjà un peu plus simple
Et si tu veux importer des données d'un classeur sans l'ouvrir voici une bonne astuce :
Cela importe dans la cellule A1, la Cellule A1 du classeur "ABBA.xlsm" Dans le réertoire \C:\
N'hésitez pas a poser des questions
*Pensez mettre vos messages en [Résolu] et cliquer sur le + des conseil qui vous ont été utils"
Private Sub CommandButton1_Click() Set Wbk2 = Workbooks("Stat_metiers.xls") Set Wbk3 = Workbooks("fichier.xls") Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B2:X2") = Wbk2.Sheets("Feuil1").Range("C45:X45").Value Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B3:X3") = Wbk2.Sheets("Feuil1").Range("C47:X47").Value Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B4:X4") = Wbk2.Sheets("Feuil1").Range("C50:X50").Value Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B5:X5") = Wbk2.Sheets("Feuil1").Range("C51:X51").Value Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range("B7:X7") = Wbk2.Sheets("Feuil1").Range("C54:X54").Value For i = 1 to 22 Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range(Chr(65+i)&"6") = Wbk3.Sheets("Feuil1").Range("E"&(i*112)+2).Value Next End Sub
Comme ça c'est déjà un peu plus simple
Et si tu veux importer des données d'un classeur sans l'ouvrir voici une bonne astuce :
Dim Classeur_Chemin as string Classeur_Chemin = "C:" Dim Classeur_Nome as String Classeur_Nome = "ABBA.xlsm" Cells(1, 1) = ExecuteExcel4Macro("'" & Classeur_Chemin & "\[" & Classeur_Nome & "]" & "Feuil1'!R1C1")
Cela importe dans la cellule A1, la Cellule A1 du classeur "ABBA.xlsm" Dans le réertoire \C:\
N'hésitez pas a poser des questions
*Pensez mettre vos messages en [Résolu] et cliquer sur le + des conseil qui vous ont été utils"
merci de votre réponse skk201
le code marche comme je voulais.
Par contre, comme je suis nulle en vba.
j'ai donc ,qq question concernant le code, j'ai pas tous compris.
Dans la ligne
Workbooks("Ind_metiersES.xlsm").Sheets("Feuil1").Range(Chr(65+i)&"6") =Wbk3.Sheets("Feuil1").Range("E"&(i*112)+2).Value
que veut dire Range(Chr(65+i)&"6") et pourquoi avoir mis p + 2 ici dans
Range("E"&(i*112)+2).Value
merci
merci encore pour votre réponse