Bonsoir,
Je bloque sur une macro que j'essaie de créer sous vba pour un tableau excel. Débutant en vba je galère un peu...
L'idée est de:
- Appliquer un filtre (date) sur la colonne O.
- Filtrer une colonne nom par nom (Colonne B) sachant que les noms se répètent un nombre aléatoire de fois et sont (évidemment) triés pas nom pour:
- Faire le sous total des colonnes I, J et K à chaque changement de type de données sur la colonne A.
- Exporter en pdf avec le nom apparaissant sur la colonneB en nom de fichier.
Je suis parti sur une boucle de type for ... each dont voici le code ci-dessous que j'ai pu avoir en glanant diverses informations ici ou là (dont notamment l'enregistrement de macros via le bouton excel):
Vous excuserez donc ce code qui n'est certainement pas des plus académique, comme dit plus haut je débute.
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 Sub Export () Dim NomPrénom As Range For Each NomPrénom In Range("B2:B6556").Cells ActiveSheet.Range("$A$1:$P$1339").AutoFilter Field:=2, Criteria1:= _ "NomPrénom" If NomPrénom.Value = "" Then Exit For Else Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(9, 10, 11) _ , Replace:=True, PageBreaks:=False, SummaryBelowData:=True Dim sFeuille As String, sChemin As String sChemin = "Dossier ciblé" sFeuille = "MOIS A CHOISIR" sFichier = sChemin & sFeuille & NomPrénom & ".pdf" Worksheets(sFeuille).ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFichier, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End If Next NomPrénom End Sub
Pour l'instant ma macro fonctionne pour l'export pdf (j'ai bien un fichier par créé par nom sur la colonne B) mais je n'ai pas le sous-total que je souhaiterai avoir. Je pense qu'il me manque une déclaration de variable ou bien que je ne déclarer la variable NomPrénom comme Range n'est finalement peut-être pas la bonne méthode.
Je mets un pj un exemple de ce à quoi peut ressembler le fichier sur lequel je travaille, j'espère que cela pourra vous donner une idée plus concrète de ce que je cherche à faire.
Voilà j'espère avoir été assez clair dans mes explications, n'hésitez pas à demander pour plus de précisions.
Merci d'avance à toute personne qui se penchera sur mon problème et m'apportera ne serait-ce qu'un début de solution car là je cale.
Partager