Supprimer des lignes de plusieurs feuilles à partir d'une liste donnée
Bonjour à vous:
Étant donné une liste composée de 3 colonnes, j'aimerais bien trouver un code VBA qui parcoure la feuille « Liste » et supprime de la feuille « classe 1 » ,« classe2 », « classe 3 » et « classe 4 » les élèves (toute la ligne) qui n'ont pas fait partie de la feuille « Liste », exemple en PJ
En vous remerciant par avance
Salut,
Je suis parti du principe que toutes les feuilles sur lesquelles il faut supprimer des données commencent par le mot ''Classe''. Si tu sélectionnes une de ces feuilles, une macro événementielle contrôle si les élèves qui y sont inscrits sont bien présents sur la feuille ''Liste '', autrement ils sont effacés.
Pour l'exemple, j'ai indiqué qu'il y avait les élèves 1 à 5 sur la feuille ''Liste '' et tu vois que sur la feuille ''Classe 1'' qui est visible à l'ouverture du fichier, tu as d'autres élèves. Si tu quittes cette feuille ''Classe 1'' et que tu y reviens, les élèves en trop sont effacés.
J'espère que tu n'es pas prof de français, car ton fichier est assez mal foutu au niveau de l'orthographe.
Cordialement.
Je tiens à te remercie pour ta réponse, en fait, ce fichier a été fait vite fait, sans corriger les fautes d'orthographe et non je ne suis ni un prof de français ni pour d'autres matières :D :D
On peut partir du principe que tous les noms de feuilles souhaitées être parcouru composés que de trois lettres
pour le fichier xlsm que tu viens m'envoyer, je ne trouve aucun code VBA
Bien cordialement
Tu ne me dis pas si le résultat obtenu correspond (au moins un peu) à ton attente ! Ce serait déjà un bon point de départ.
Ensuite, si les noms de tes feuilles ne correspondent pas à ceux que tu as indiqués dans ton premier fichier, merci de me fournir un fichier avec des noms de feuilles correspondant à la réalité. Pour cela prend mon fichier, renomme-le en incrémentant la version (exemple_v2) et renvoies-le-moi. Le nom de ta feuille ''Liste '', avec un espace inutile, me semble également douteux.
Le code que j'ai placé dans mon fichier se trouve dans ThisWorkbook, selon l'image ci-dessous.
Amicalement.
Salut Henri,
Merci de rester sur le fil pour continuer la discussion.
Tu ne peux pas déplacer un code événementiel de ThisWorkbook à un module.
C'est dommage que tu n'aies pas fourni immédiatement ton fichier réel, ça me fait créer des codes qui s'avèrent inutiles par la suite.
En privé, tu me dis : "la colonne A 'Type Matériel ' de la feuille "Matériels" corresponde au nom des feuilles (trois caractères)". Mais il n'y a pas de feuille ''Matériels'' dans ton fichier !!!!
Merci de me fournir alors un fichier qui tienne la route et indique moi avec précision quelle est la liste de base à partir de laquelle je dois comparer les données à supprimer des feuilles à trois lettres. Si tu places quelques données exemples sur la feuille qui contient la liste de base ainsi que sur les feuilles à trois lettres, ce serait un plus.
Peux-tu me confirmer aussi qu'aucune autre feuille ne comportera seulement 3 lettres dans sont nom ? Je pourrais alors utiliser cette particularité afin de savoir quelles feuilles traiter ou non. Autrement, si d'autres feuilles à ne pas traiter peuvent également avoir seulement 3 lettres dans leur nom, il faudra trouver une autre manière de différencier les feuilles à traiter ou non.
Si toutes les feuilles à traiter sont facilement reconnaissables – par exemple car elles ont 3 lettres dans leur nom – je trouve bien de placer ce code dans ThisWorkbook et qu'il se déclenche à chaque fois que nécessaire, c’est-à-dire au moment où tu consultes une de ces feuilles (c'est quand même à ce moment qu'elles doivent être actualisées, non ?). Autrement, peux-tu me préciser comment tu veux déclencher ce code ?
A te relire.
Je t'ai fait perdre du temps et je te prie de m'excuser.
Dans Le fichier joint, tu trouveras la feuille "Matériels", c'est la liste de base à partir de laquelle je dois comparer les données à supprimer des feuilles à trois lettres (feuilles souhaitées être parcourue) ce sont les seules feuilles dans mon fichier qui sont composées de trois caractères, aucune autre feuille ne comportera seulement 3 lettres dans son nom.
le code devrait remplir la colonne E "Matériel trouvé (Oui/Non)" avec oui si le trio (tenant/matériel/aboutissant) est trouvé dans une des feuilles traitées et Non dans le cas contraire et supprimer ces lignes dans les feuilles traitées.
Avec mes remerciements pour ton soutien
Salut,
Ta manière de m’aider à t’aider est du grand ‘’n’importe quoi’’
Je t’ai demandé de placer quelques données sur les feuilles à traiter (celles à 3 lettres dans leur nom), mais elles sont plus vides que ce qu’on n’avait encore jamais vu
Tu dis que : ‘’le code devrait remplir la colonne E Matériel trouvé (Oui/Non)’’, mais la colonne E est absolument vide, sans titre. Bon, je vois un titre ‘’Matériel trouvé ( Oui/Non )’’ dans la colonne C, mais ce n’est pas la colonne E
Tu me demandes de comparer les indications ‘’Matériel’’, ‘’Tenant’’ et ‘’Aboutissant’’. Si je trouve bien ces dénominations sur les feuilles ‘’à 3 lettres’’, elles ne sont cependant pas visibles sur la feuille ‘’Matériel’’
Tu me demandes de chercher si tel ou tel matériel est trouvé ou non et que je le supprime s’il n’est pas trouvé. Comment puis-je supprimer un matériel qui n’a pas été trouvé ?
Amicalement.