XL 2016 macro IF et commandes filtre avancé

aragdur

XLDnaute Junior
Salut,

Je monte un fichier avec macro.
Grosso modo, j'ai une table de saisi et le but, via macro c'est d'arriver à extraire des données.
Par exemple, si je veux tous les animaux standards qui sont en catégorie junior femme, je fais un filtre avancé sur SJF.
Seulement, comme c'est une opération récurrente et dont les données de la base change fréquemment, je souhaite repartir de 0 à chaque fois.
Raison pour laquelle je fais une macro avec d'abord un effacement des filtres, puis un effacement des données et enfin, l'extraction.

Je bloque donc sur l'effacement des filtres. Si je n'ai pas fait de filtres avant ça coince. Je veux que Excel aille à la fonction suivante si l'effacement des filtres ne fonctionne pas ou s'il n'a pas lieu de se faire.

Un extrait de mon code :
VB:
sheets("SJF").Select
 
ActiveSheet.ShowAllData
 
Rows("2:1048576").Select
 
Selection.Clearcontents
 
Range("A2").Select

Ci-joint, mon fichier pour mieux comprendre :)

merci pour votre aide.

cdlt
 

Pièces jointes

  • Inscriptions Show.xlsm
    2.1 MB · Affichages: 30

vgendron

XLDnaute Barbatruc
et la version allégée pour les filtres
si j'ai bien compris tu appliques un filtre sur la colonne G uniquement
et le critère est: les deux dernières lettres du nom de la feuille.
 

Pièces jointes

  • Inscriptions Show.xlsm
    2.1 MB · Affichages: 54

aragdur

XLDnaute Junior
et la version allégée pour les filtres
si j'ai bien compris tu appliques un filtre sur la colonne G uniquement
et le critère est: les deux dernières lettres du nom de la feuille.

En fait, mon filtre avancé devait me permettre d'extraire toutes les données vers les différents onglets correspondants.
Le but est d'avoir une extraction complète avec toutes les données du tableau de saisie sans s'embêter.
L'extraction dépend de la colonne G et E.

En effet, tu as S ou P ou A en colonne E.

Après, je ferai le regroupement de ces 3 macros sous une seule macro.
ça sera plus simple et plus rapide (je pense ^^').

Le but final de ces onglets différents, c'est de pouvoir créer un catalogue sur word (comme du publipostage mais juste avec les champs) qui m'afficherait la liste des animaux participants à tel ou tel concours.
Par exemple, 1 animal femelle junior participe à de l'Agility (donc A).

Enfin, question, sais-tu comment je peux incrémenter une série de nombre dans la colonne A tout en sachant que ça doit être des chiffres (001, 002, ...) et qu'ils doivent être classés de 1 à la fin de la saisie des animaux (ex : s'il y a 3 animaux, les chiffres se mettront automatiquement de 001 à 003).

@+
 

chris

XLDnaute Barbatruc
Bonjour à tous

Pour du publipostage, il n'est pas nécessaire d'extraire : tu peut filtrer depuis Word les colonnes voulues, voire prévoir en plus dans la base Excel une colonne supplémentaire pour un critère supplémentaire (participe ou pas, par exemple).

Pour la numérotation tu en as déjà une.
Soit tu peux la faire par formule comme tu as fait (celle-là ou une autre) mais dans ce cas, en cas de tri, le numéro ne reste pas lié à l'animal... Donc VBA si ce doit suivre l'animal.

Tu aurais aussi intérêt à utiliser un tableau structuré plutôt qu'une plage classique ce qui simplifierai les formules et le code
 

aragdur

XLDnaute Junior
Bonjour

Pour du publipostage, il n'est pas nécessaire d'extraire : tu peut filtrer depuis Word les colonnes voulues, voire prévoir en plus dans la base Excel une colonne supplémentaire pour un critère supplémentaire (participe ou pas par exemple).

Pour la numérotation tu en as déjà une.
Soit tu peux la faire par formule comme tu as fait mais dans ce cas, en cas de tri, le numéro ne reste pas lié à l'animal... Donc VBA si ce doit suivre l'animal.

Tu aurais aussi intérêt à utiliser un tableau structuré plutôt qu'une plage classique

Salut,
Ce n'est pas vraiment du publipostage.
Le résultat doit ressembler à :
SJF 001
"Affixe" "nom"
"couleur, type de poil et ainsi de suite à la chaine"

SJF 002
"Affixe" "nom"
"couleur, type de poil et ainsi de suite à la chaine"
...

Ma numérotation ne me convient pas. Celle de tableau de saisi est ok mais dans les autres onglets, les chiffres doivent se suivre en commençant par 001 et finissant au dernier enregistrement.

qu'entends-tu par tableau structuré ?

pour vous rendre compte du contexte, imaginez 2000 animaux inscrits à un concours.
Je me dois d'automatiser le maximum et si possible, ne quasi rien faire sur Word.
ou juste fusionner et hop :)
 

vgendron

XLDnaute Barbatruc
Hello Chris

@aragdur : Je pense que Chris parle de table excel (voir PJ)
dans la feuille "Tableau de saisie", la zone A1:X11 est une table excel (nom TableauSaisie)
il te suffit alors d'écrire sous la table, pour qu'une ligne complète (avec formule) soit automatiquemnt ajoutée
ex: tapes Paris en B12 et hop !! :)

pour les filtres.. j'ai ajouté la condition sur la colonne E (1ere lettre du nom de la feuille. si j'ai bien compris)
==> j'ai aussi modifié ta feuille "Tableau de données" en colonnes K:AH : qui.. ne sert plus à rien finalement..

Pour la numérotation..dans chaque feuille, suite au filtre, on recommence à 001 puis 002... ?
donc. un animal n'aura pas le meme numéro entre les feuilles "Tableau de saisie" et xxx ?
 

Pièces jointes

  • Inscriptions Show.xlsm
    2.1 MB · Affichages: 25

chris

XLDnaute Barbatruc
Re
Coucou vgendron :)

Pour moi c'est bien du publipostage : on ne fait pas que du courrier en publipostage...
Il existe d'ailleurs une forme catalogue dans le publipostage...

Pour automatiser : je ferais plus simple.
Je créerais un modèle de catalogue par concours avec les filtres positionnés (le même document Word, juste le filtre sauvegardé dedans diffère).

Ainsi rien à faire dans Excel : on lance la publication souhaitée, point barre...
 

aragdur

XLDnaute Junior
Hello Chris

@aragdur : Je pense que Chris parle de table excel (voir PJ)
dans la feuille "Tableau de saisie", la zone A1:X11 est une table excel (nom TableauSaisie)
il te suffit alors d'écrire sous la table, pour qu'une ligne complète (avec formule) soit automatiquemnt ajoutée
ex: tapes Paris en B12 et hop !! :)

pour les filtres.. j'ai ajouté la condition sur la colonne E (1ere lettre du nom de la feuille. si j'ai bien compris)
==> j'ai aussi modifié ta feuille "Tableau de données" en colonnes K:AH : qui.. ne sert plus à rien finalement..

Pour la numérotation..dans chaque feuille, suite au filtre, on recommence à 001 puis 002... ?
donc. un animal n'aura pas le meme numéro entre les feuilles "Tableau de saisie" et xxx ?

Salut,
ok je vois le principe pour la table.
Je ne connaissais pas.
par quel module passe t on exactement svp ?

J'ai bien tapé paris, mais seule la couleur bleue est apparue :'(

Merci pour les filtres :)

Pour la numérotation, Dans tableau de saisie, ça restera 1 puis 2 puis 3, ...
Pour les autres tableaux, ça sera une nouvelle numérotation mais toujours 1, 2, 3 ...

par exemple, l'animal "John" apparaît en 2 sur le tableau de saisie, mais sera peut être en 1 sur le tableau SVM ou alors en 5 si je décide de modifier le tri.
 

aragdur

XLDnaute Junior
Re
Coucou vgendron :)

Pour moi c'est bien du publipostage : on ne fait pas que du courrier en publipostage...
Il existe d'ailleurs une forme catalogue dans le publipostage...

Pour automatiser : je ferais plus simple.
Je créerais un modèle de catalogue par concours avec les filtres positionnés (le même document Word, juste le filtre sauvegardé dedans diffère).

Ainsi rien à faire dans Excel : on lance la publication souhaitée, point barre...


T'es sérieux ? Je ne me suis pas assez intéressé aux possibilités de Word dans ce cas.
Je vais voir ça demain ou ce week end pour word. Comme ça je pars sur un catalogue filtré et y a plus qu'à.
Pour Excel, ça me servira toujours si je veux faire des impressions, extractions juste sur une partie.

en revanche, je ne comprends pas pourquoi le système de table ne veut pas copier toutes mes formules ...
Il me copie la moitié des trucs quand j'écris soit paris en B12, soit le nom ...
 

vgendron

XLDnaute Barbatruc
par quel module passe t on exactement svp ?

J'ai bien tapé paris, mais seule la couleur bleue est apparue :'(

tu cliques dans le tableau
menu "Accueil" - Style - Mettre sous forme de tableau

pour les formules. effectivement.. je pense que Excel ne recopie pas toutes les formules. car dans une meme colonne, il en voit deux différentes ==> donc, il ne sait pas. donc il ne fait rien
exemple Colonne C Date: en C2: tu as tapé la date manuellement
puis en C3, tu as mis une formule..

par contre. pour la colonne A: comme c'est la meme formule du début à la fin, il recopie
 

chris

XLDnaute Barbatruc
Re

Le principe des tableaux structurés est le suivant : toute nouvelle ligne hérite :
  • du format (MFC et validation éventuelles incluses)
  • des formules
ceci sous réserve d'être homogène.
C'est le principe des bases de données : aucune ligne n'est prépondérante sur une autre.

Je comprends ton intérêt de ne pas réécrire Paris ou autre mais ce n'est pas du tout dans la logique base de données d'utiliser une formule pour une donnée caractérisant l'individu.
Et si tu fais un tri, ou filtre, une suppression, tu vas avoir des soucis car les infos vont se mélanger.

Le raccourci CTRL B permet de recopier la valeur saisie au dessus.
Tu peux aussi, si ces données sont systématiques et non propres à un individu, les mettre dans des cellules hors tableau et mettre une formule pour les dupliquer dans le tableau (comme tu avais fait)

Je t'ai simplifié tes formules...

J'en ai aussi enlevé le test d'âge vide au début des formules car dans un tableau tu n'auras pas de ligne d'avance mais si préfères le garder, tu peux...

Edit Oups Vgendron a répondu plus vite mais on est d'accord...
 

Pièces jointes

  • InscriptionsShow.xlsm
    2.2 MB · Affichages: 38
Dernière édition:

Discussions similaires

Réponses
8
Affichages
891

Statistiques des forums

Discussions
315 089
Messages
2 116 098
Membres
112 661
dernier inscrit
ceucri