Bonjour,
Je me permets de vous appeler à l'aide car après avoir cherché deux jours sur les forums, l'aide, etc... je dois me rendre à l'évidence : mon code a un problème (au minimum) et ce n'est visiblement pas moi qui vais le voir
En deux mots, j'essaye de séparer en plusieurs fichiers (un par centre) les données de centres en utilisant une macro VBA excel 2007. Le numéro de centre est indiqué dans une colonne.
Dans un premier temps je cherche la zone dans lequel sont les données, je recopie le titre "cid" et la valeur du centre que je cherche dans la colonne après la zone qui contient les données (et cela en ligne 1 et 2).
Alors vient le plus grand moment... Plantage sur "AdvancedFilter" avec un code d'erreur 1004 "nom de champ introuvable ou incorrect dans la plage d'extraction". Lorsque j'essaye avec des range de type range("A1:Z34"), je n'ai pas de problème mais ici j'essaie d'avoir un code plus générique...
Voici le code où se situe le problème
Voilà, si vous avez des idées...
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 'création des ranges des données Set range_data_global = Worksheets(feuille_data).Range(Worksheets(feuille_data).Cells(ligne_debut_comptage, colonne_debut_comptage), Worksheets(feuille_data).Cells(derniere_ligne, derniere_colonne)) Set range_selector = Worksheets(feuille_data).Range(Worksheets(feuille_data).Cells(1, derniere_colonne + 1), Worksheets(feuille_data).Cells(2, derniere_colonne + 1)) 'pour chaque centre, création d'un fichier avec ses données... For Each element In tableau_cles 'cree fiche pour resultat Sheets.Add ActiveSheet.Name = "tmp" 'critere de selection Worksheets(feuille_data).Cells(2, derniere_colonne + 1).value = element 'filtre de la zone des données range_data_global.AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=range_selector, _ CopyToRange:=Worksheets("tmp").Range("A1"), Unique:=False ActiveSheet.Copy ActiveWorkbook.SaveAs Filename:=element 'nom_fichier = element ActiveWorkbook.Close ActiveSheet.Delete Sheets(feuille_data).Select Next element
Un grand merci à tous ceux qui se pencheront sur le problème!
Bonne journée
Partager