Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
Sur ton dernier fichier, pourrais-tu nous donner le résultat attendu sur les feuilles de destinations (Attestations et reliquat).
 

Hasco

XLDnaute Barbatruc
Repose en paix
- Dans ATTESTATIONS,
DATE en G et NOTE >10 en H => JAUNE

- Dans RELIQUAT,
ni DATE en G, ni NOTE en H => BLEU
pas de DATE en G, NOTE en H => ROSE
DATE en G, pas de NOTE en H => MARRON
DATE en G, NOTE <10 en H => VER
RE,

Voyez, cela semble correspondre.

Cordialement
 

Pièces jointes

  • General-DRAFT-3 - test.xlsm
    55.3 KB · Affichages: 7

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…