Bonjour à tous,
Perdu après 48h de recherches et à cours de doliprane, je viens demander de l'aide.
J'ai créé le code ci dessous dans le but de copier dans un classeur excel dis "résumé", les uns en dessous des autres, les plannings de chaque formateurs présent dans un autre classeur (dans lequel chaque onglet est un formateur). Le planning étant modifié chaque jour, j'ai fait le choix de remettre à zéro le classeur "résumé" à chaque fois pour copier ensuite les sélections. Quelques petits détails:
- j'apprends sur le tas et il s'agit de ma première vrai macro, je suppose qu'il n'est pas très élégant et optimisé (je me pencherai dessus quand il marchera)
- si je pars complétement dans le mauvais sens n'hésitez pas à me le dire!
- le classeur des formateurs peut être modifié à tout moment, des onglets peuvent être rajoutés/supprimés, donc j'ai laissé tombé les références aux nom de feuille et de N° de feuille
La boucle s'arrête après 3 copier/coller, sans raison apparente. Je me demandais si il existait des "maximum" (1 copier/coller représente environs 80 lignes sur 250 colonnes)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Sub MAJ() Dernierecolonne = ActiveSheet.UsedRange.Columns.Count DerniereLigne = ActiveSheet.UsedRange.Rows.Count ' Initialisation(effacement des anciennes données de A3 à AX [X= N°dernière ligne utilisée) ' -------------- Workbooks("tableau statistique formation 2016.xlsm").Activate Sheets("statistiques").Select Range(Cells(3, 1), Cells(DerniereLigne, Dernierecolonne)).Delete ' Ouverture du fichier planning ' ----------------------------- Workbooks.Open "Z:\DOCS\PLANNINGS\Planning 2016\Planning 2016.xlsm" ' Création de la boucle ' ----------------------------- Dim Ws As Worksheet For Each Ws In ThisWorkbook.Worksheets ' Copie des cellules cibles Range(Cells(3, 1), Cells(DerniereLigne, Dernierecolonne)).Copy ' retour sur fichier principal Workbooks("tableau statistique formation 2016.xlsm").Activate Sheets("statistiques").Activate ' sélection de la dernière ligne vide (pour coller les infos les unes dessous les autres) Range("A" & Rows.Count).End(xlUp).Select ActiveCell.Offset(1, 0).Select ActiveSheet.Paste ' retour sur le fichier source et aller à l'onglet suivant Workbooks("Planning 2016.xlsm").Activate ActiveSheet.Next.Select Next Ws End Sub
Merci d'avance pour ceux qui se pencherons sur la question
Partager