Résolu XL 2013 Tri automatique en VBA et exportation sur plusieurs fichiers

Lhomheureux

XLDnaute Nouveau
Bonsoir à tous.
J'ai besoin de votre aide pour effectuer le tri et l'importation en VBA des données d'un tableau pour que se soit automatique.
le fichier excel est fourni en annexe avec un détail du rendu attendu se trouvant dans la feuille "SOCIETE". j'avoue que là c'est un peu un casse-tête pour moi.

Je vous remercie de prendre du temps pour y apporter de votre "code".
 
Ce fil a été résolu! Aller à la solution…

Fichiers joints

goube

XLDnaute Occasionnel

laurent3372

XLDnaute Occasionnel
Supporter XLD
Bonjour,

Voici une solution en VBA, facilement adaptable à l'ajout de nouvelles feuilles de répartition.
NB: la feuille Localisation par zone est inutile, elle fait double emploi avec lla (les) feuille(s) de répartition.
J'espère que ça vous conviendra.

Cordialement,
- LR
 
Ce message a été identifié comme étant une solution!

Fichiers joints

Lhomheureux

XLDnaute Nouveau
Bonjour,

Voici une solution en VBA, facilement adaptable à l'ajout de nouvelles feuilles de répartition.
NB: la feuille Localisation par zone est inutile, elle fait double emploi avec lla (les) feuille(s) de répartition.
J'espère que ça vous conviendra.

Cordialement,
- LR
Merci beaucoup pour ce point de départ qui est génial.
Néanmoins, il y a quelques erreurs au niveau du tri. Des éléments d'autres zones se retrouvent dans la "zone PK". J'aimerais que tu puisses un peu mieux m'expliquer ce que tu as fais dans la partie "INIT.CRITERES". Je crois que c'est à ce niveau que tu détermines les critères de tri, mais je ne comprends pas très bien les (i3).

Concernant la feuille "localisation par zone" je l'ai mis parce que c'est sur l'ensemble de ses zones que doivent se faire le tri. J'ai mis le tri final de la "zone PK" afin que je puisse moi même étendre la procédure aux autres localisations après.
 

laurent3372

XLDnaute Occasionnel
Supporter XLD
VB:
    wsSource.[i3].FormulaLocal = "=NON(ESTNA(EQUIV(F3;'" & wsRep.Name & "'!" & rSearch.Address & ";0)))"
    rSource.AdvancedFilter Action:=xlFilterInPlace, criteriarange:=wsSource.[i2:i3]
Dans cette partie de code :
  • j'initialise la cellule I3 avec la formule =NON(ESTNA(EQUIV(F3;'" & wsRep.Name & "'!" & rSearch.Address & ";0))) qui vérifie si le nom de quartier existe dans la table spécifiée par wsRep et nomZone (voir plus haut initialisation wsRep et rSearch ). La cellule I2 reste vide (nom de critère facultatif)
  • Puis j'applique la méthode AdvancedFilter avec comme paramètre la zone de critère (I2:I3) initialisée par la ligne précédente. AdvancedFilter affiche toutes les lignes pour lesquelles la formule en I3 est VRAI, c'es-à-dire toutes celles dont la localisation figure dans la table spécifiée par wsRep/rSearch.

Comme tu vois, je ne recherche jamais dans la feuille LOCALISATION PAR ZONE. C'est uniquement d'après les feuilles REPARTITION xx que je fais le tri. S'il y a des erreurs de tri, c'est à cause du contenu des tables figurant dans LOCALISATION PK.

Cordialement,
--
LR
 
Ce message a été identifié comme étant une solution!

Lhomheureux

XLDnaute Nouveau
VB:
    wsSource.[i3].FormulaLocal = "=NON(ESTNA(EQUIV(F3;'" & wsRep.Name & "'!" & rSearch.Address & ";0)))"
    rSource.AdvancedFilter Action:=xlFilterInPlace, criteriarange:=wsSource.[i2:i3]
Dans cette partie de code :
  • j'initialise la cellule I3 avec la formule =NON(ESTNA(EQUIV(F3;'" & wsRep.Name & "'!" & rSearch.Address & ";0))) qui vérifie si le nom de quartier existe dans la table spécifiée par wsRep et nomZone (voir plus haut initialisation wsRep et rSearch ). La cellule I2 reste vide (nom de critère facultatif)
  • Puis j'applique la méthode AdvancedFilter avec comme paramètre la zone de critère (I2:I3) initialisée par la ligne précédente. AdvancedFilter affiche toutes les lignes pour lesquelles la formule en I3 est VRAI, c'es-à-dire toutes celles dont la localisation figure dans la table spécifiée par wsRep/rSearch.

Comme tu vois, je ne recherche jamais dans la feuille LOCALISATION PAR ZONE. C'est uniquement d'après les feuilles REPARTITION xx que je fais le tri. S'il y a des erreurs de tri, c'est à cause du contenu des tables figurant dans LOCALISATION PK.

Cordialement,
--
LR

Merci Laurent pour ton aide et tes explications.
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas