Bonjour,
Avant de commencer, je precise que je suis newbie en vba. CA va peut etre eviter qu'on me balance des tomates si la reponse etait evidente
Je cherche à executer une macro sur un ensemble de fichiers excel.
J'ai donc un premier bout de code qui va m'ouvrir mes fichiers via une dialog box, qui me lance ma macro puis qui sauve et quitte le fichier.
Ce premier bout de code fonctionne, le voici :
Là où ça ne marche plus c'est l'execution de la macro...
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 Sub test() Const type_fichier As String = "tous fichiers, *.*" Dim FichierChoisi As String 'Choisir un fichier FichierChoisi = Application.GetOpenFilename("Fichiers Excel, *.xlsx") If FichierChoisi = "" Then Exit Sub 'ouvrir le fichier Workbooks.Open (FichierChoisi) 'traitement Call V_uniques 'puis à la fin fermer et enregistrer le fichier ActiveWorkbook.Close savechanges:=True End Sub
Ce qu'elle fait, c'est rajouter l'autofiltre, et filtrer 3 colones
puis en copier une dans un nouvel onglet
et garder que les valeurs uniques de cette colonne du nouvel onglet.
Avec F8 le plantage se fait au niveau du Rows("1:1").Select avec le message Run-time error '1004': Application-defined or object-defined error
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 Sub V_uniques() ' ' V_uniques Macro ' ' Rows("1:1").Select Selection.AutoFilter Range("BY1").Select ActiveSheet.Range("$A$1:$CS$101425").AutoFilter Field:=71, Criteria1:= _ "Confirmed" ActiveSheet.Range("$A$1:$CS$101425").AutoFilter Field:=72, Criteria1:="=4" _ , Operator:=xlOr, Criteria2:="=5" ActiveSheet.Range("$A$1:$CS$101425").AutoFilter Field:=73, Criteria1:=Array _ ("Active", "New", "Re-Opened"), Operator:=xlFilterValues Range("BR1").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets.Add After:=ActiveSheet ActiveSheet.Paste Columns("A:A").Select Application.CutCopyMode = False ActiveSheet.Range("$A$1:$A$839").RemoveDuplicates Columns:=1, Header:=xlYes End Sub
C'est pour un rendu demain au boulot...
Pour info, si j'enregistre ma macro dans chacun de mes fichiers et l'execute, ca marche.
C'est juste que j'ai +2000 fichiers...
Mille mercis !
Partager