bonjour à tous
Je suis nouveau ici, et je me permets de solliciter votre aide.
Pour ma part, j'utilise excel au uotidien, mais je n'ai aucune connaissance de VBA ; aussi désolé si ma question semble un peu futile.
Je vous explique mon probleme :
Pour un besoin de reporting, je dois avoir un fichier avec un onglet source où je vois tous les departements mais chaque departement ne voit que le sien.
Aussi, j'ai crée 6 fichier avec l'onglet source 1 et source 2;
Aujourd'hui , je copie colle 6 fois l'onglet 1 et 6 fois l'onglet 2 ; sauf que le fochier fait des milliers de lignes et une fois sur 2 tout plante.
pourriez vous m'aider s'il vous plait à :
Créer une macro ui dirait
Dans le fichier global qui est à cette adresse, prendre l'onglet 1 et 2 et les coller dans les fichiers
Departement 1
Department 2 etc
le nom du departement est un code que je mets dans unnglet administration (poru qu'il ne colle que les données du 1 & du 2)
je suis ensuite arrivé à créer des TCD/gcD , sauf que je dois tout remettre à la main pour les changer. Afin d'aller plus vite, j'ai ecris janvier et l'année dans deux colonnes séparées avec un format texte/nombre mais pas calendrier.
Du coup , j'aimerais lancer une macro depuis le fichier global qui fait un copier coller vers le fichier du departement 1.
lancer une seconde macro depuis le fichier departement 1 qui supprime toutes les données ne lui appartenant pas et qd je choisis la colonne mois année me met à jour tous mes TCD.
Je me suis permis de mettre en pj deux fichiers poru vous montrer à quoi cela ressemble , ainsi que ma tentative de code
Ficheir Global exemple.xlsx
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 Mois_analyse = Cells(3, 5) If Month(Mois_analyse) < 10 Then DateCube = Year(Mois_analyse) & "0" & Month(Mois_analyse) Else DateCube = Year(Mois_analyse) & Month(Mois_analyse) End If ligne = 4 While Not Cells(ligne, ) = "" Activite = Cells(ligne, 3) Sheets(Activite).PivotTables("Tableau croisé dynamique").PivotFields("[Temps].[Calendrier-Mois].[Annee]").CurrentPageName = _ "[Temps].[Calendrier-Mois].[Mois].&[" & DateCube & "]" ligne = ligne + 1 Wend End Sub
Ficheir departement 2.xlsx
je sais que ce n'est pas le projet du siecle, mais par avance merci pour votre aide
J'ai essayé de faire ce code pour le copier-coller , mais j'avoue avoir du mal. Si qqun peut m'aider svp?
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 Option Explicit Sub Tst() Dim LastRow As Long Dim WsDepart As Worksheet Dim WsDestination As Worksheet Set WsDestination = Sheets("Source1") Set WsDestination = Sheets("Source2") Set WsDepart = Sheets("Source1) --> Du nouveau fichier , mais je ne sais pas où mettre l'adresse LastRow = WsDestination.Range("A:D" & Rows.Count).End(xlUp).Row Application.ScreenUpdating = False WsDepart.Range("A:D").Copy WsDestination.Range("A:D" & LastRow + 1).PasteSpecial xlPasteValues --> La je veux dire que si dans la colonne D, je vois les données des autres départements alors il faut les enlever. J'essaye avec If D=value cel "Administration_A1" then true If false = Delete Set WsDestination = Nothing Set WsDepart = Nothing End Sub
Partager