Se connecter avec
S'enregistrer | Connectez-vous
Votre question
Résolu

[RESOLU] [VBA] Créer un nouvel onglet pour chaque lignes répondant à un critère unique

Tags :
  • Microsoft Excel
  • Programmation
Dernière réponse : dans Programmation
Partagez
5 Février 2013 12:26:30

Bonjour,
Voilà, je suis encore un peu débutant sur VBA, même si je progresse de plus en plus.

J'ai un fichier Excel, avec un nombre assez important de lignes, où chaque ligne est caractérisée (entre autre) par la colonne A, qui défini la direction auquelle est ratachée la facture (1 ligne = 1 facture).
Il y a bien entendu plusieurs factures par directions.
Il a de plus un nombre assez important de direction et si le référentiel complet est toujours le même (41 au dernier relevé je crois), le relevé de factures mensuel ne concerne pas toujours toutes les directions (certaines directions n'ont pas de factures certains mois).

Ce que je cherche, c'est de copier dans une nouvelle feuille (ou encore mieux, dans un nouveau tableur) l'ensemble des lignes correspondant à une direction.

Un exemple pour mieux visualiser:

Direction ID doc Sté Nº pièce Ex.
DFI 195667 4000 2300000278 2013
DHA C 195654 4000 2300000275 2013
DFI 196858 4000 2300000268 2013
DIRCOM 196315 4000 2300000263 2013
ANCI 196165 4000 2300000262 2013
ANCI 196163 4000 2300000260 2013
DHA C 195655 4000 2300000258 2013
DHA C 195653 4000 2300000257 2013
ANCI 194122 4000 2300000255 2013
ANCI 195967 4000 2300000253 2013
DIRCOM 196406 4000 2300000243 2013
DCR 191858 4000 2300000227 2013
ANCI 195089 4000 2300000225 2013
DIRCOM 194601 4000 2300000223 2013
DFI 193637 4000 2300000207 2013

A partir de cet extrait, le résultat attendu serai 5 feuilles (ou tableurs) différents:
- Un nommé DFI avec les 3 lignes correspondantes
- Un nommé DHA C avec les 3 lignes correspondantes
- Un nommé DIRCOM avec les 3 lignes correspondantes
- Un nommé ANCI avec les 5 lignes correspondantes
- Un nommé DCR avec la ligne correspondante

Sur un petit nombre de directions, qui sont toujours les même, je sais le faire, mais sur un plus grand nombre, je suis perdu.

Si vous souhaitez plus d'informations, n'hésitez pas à poser la question, de même que si un extrait est nécessaire.

Merci d'avance.
Ruhtra

[EDIT]
Je viens d'avoir une idée (toute bête en vérité), mais qui pourrai peut être marcher: Faire un filtre sur ma colonne A, puis choisir 1 à 1 les critères (directions) et à chaque filtre, copier la feuille dans une nouvelle feuille.
Quelque chose du genre:

  1. Sub Test1()
  2. ActiveSheet.Range("$A$1:$BJ$10000").AutoFilter Field:=1, Criteria1:="DHA C"
  3. Sheets("FI").Rows("1:10000").EntireRow.Copy Sheets("FI DHA C").Range("A1")
  4. End Sub


Et ainsi de suite pour l'ensemble des directions.
C'est moche mais ça pourrai marcher.
Mais reste le problème que certaines directions sont parfois pas représentées, et qu'il y aurait donc une création de feuilles vides...

Cdlt.

Autres pages sur : resolu vba creer nouvel onglet lignes repondant critere unique

Meilleure solution

8 Février 2013 09:18:42

Même si Zeb t’aidera pour que cela fonctionne en vba (mais surtout de t'avoir d'abord demandé "gentillement" de mettre ton code entre balise), il me semble que ce que tu veux faire est parfaitement réalisable en utilisant l'outil de tableau croisé dynamique qu'excel te propose. Tu devrais essayer de regarder par là si tu ne trouves pas ton bonheur.
Bien entendu, rien ne t'empêche de le faire en VBA, qui est tout aussi réalisable

partage
12 Février 2013 10:20:57

En effet, il semble que le TCD résolve mon problème!

Merci beaucoup ! (et je prends note de la remarque concernant les balises)
m
0
l