XL 2013 Macro : Dispatcher un tableau dans d'autres feuilles

Mak_tarmak

XLDnaute Junior
Bonjour,

Pour le contexte, je débute dans le monde VBA. Je comprends le code mais je n’arrive pas encore à créer tout seul.

J’ai un traitement à faire sur la feuille « Worksheet » d’un fichier (extraction d’une appli web) qui m’est fourni par un collègue.
Dans ce fichier, seules les colonnes B à H m’intéressent.
Dans ce fichier, j’ai créé une feuille ATTESTATIONS et une feuille RELIQUAT qui va accueillir les données de « Worksheet » selon des critères.
Je crée deux feuilles différentes car les données de ATTESTATIONS serviront à alimenter une base de données (autre onglet) pour faire du publipostage et RELIQUAT me sert à avoir la liste des personnes qui ne répondaient pas aux critères et qui seront relancés par mail ou servira à faire un listing des personnes.
Tout ce qui va dans ATTESTATIONS c’est la recopie de B à H de la feuille « Worksheet » pour les personnes qui ont une date dans la colonne G et une note supérieure à 10 dans la colonne H.
Tout ce qui va dans RELIQUAT, c’est tout le reste des personnes même si une des deux colonnes est vide voire les deux.
Je dois retrouver dans ces deux feuilles toutes les personnes de Worksheet.et les entêtes de colonne.

Dans ma macro TraitementDATA() :
Je commence par supprimer la ligne qui contient « MOYENNE/THÉMATIQUE » dans « Worksheet » (cette ligne peut se trouver à n’importe quelle ligne)
je tri la colonne B par ordre alphabétique
je fais un petit nettoyage pour enlever l’image qui se nomme « General » mais elle n’est pas toujours présente
je dispatche les données dans ATTESTATIONS et RELIQUAT en fonction des critères énoncés plus haut. (j’ai mis un DoEvents après Activesheet.Paste car j’ai souvent une erreur 1004 mais ça plante toujours)
je supprime les lignes vides


Ma problématique première c’est la procédure FiltreWS mais aussi l’optimisation globale de mon code car j’ai utilisé l’enregistreur de macro par moment et le code est sûrement « sale ».
J’ai adapté un code trouvé sur le forum pour FiltreWS.
Vous verrez dans le fichier mais cette procédure lit ma feuille Worksheet de haut en bas et recopie les données dans les autres feuilles mais la feuille RELIQUAT n’a pas d’entête de colonne.
Peut-être que j’ai choisi la mauvaise procédure ou que je l’ai mal adapté. De plus, j’ai le problème sur la méthode Activesheet.Paste et je ne comprends pas pourquoi.

J’espère avoir été clair dans mes propos.

Merci pour votre aide,
Kader
 

Pièces jointes

  • 1.General-DRAFT-test.xlsm
    152.9 KB · Affichages: 4

cp4

XLDnaute Barbatruc
Re,

Merci pour ces explications.
Je ne demande que ça de faire mes essais mais j'avais besoin d'éclaircissements et vos explications m'ont aidé en cela.
Avec aussi l'aide de cp4, j'ai retravaillé mon fichier pour qu'il soit épuré avec juste 3 cas par conditions et des couleurs pour que cela soit plus visuel.

Merci encore pour votre aide.
Sur ton dernier fichier, pourrais-tu nous donner le résultat attendu sur les feuilles de destinations (Attestations et reliquat).
 

Mak_tarmak

XLDnaute Junior
RE,

Voyez, cela semble correspondre.

Cordialement
Bonjour Hasco,

Merci beaucoup, ça correspond parfaitement.
Je comprends mieux maintenant comment vous avez posé les critères. Ce n'était pas clair dans ma tête.
J'ai beaucoup appris, notamment à mieux explicité mon besoin et à préparer un fichier allégé avec des cas illustrés.
Merci de votre patience et de votre aide,
A bientôt pour de nouveaux apprentissages.
 

Discussions similaires