Supprimer des lignes suivant certaines conditions

Vu le système de repérage des lignes à supprimer toutes les conditions ne sont pas réunies en un seul passage.

Voici un programme qui refait la procédure tant qu'il reste des marqueurs de suppression. Mes tests donne un résultat correct. Voyons donc sur les données réelles

Merci beaucoup,

Je vais essayer et je vous tiendrai au courant.

Merci

Bonne idée

Bonjour,

J'ai enfin trouvé un peu de temps pour essayer cette nouvelle macro sur mon véritable fichier. Il y a du mieux , mais toutes les lignes marquées S, H ou SH ne sont pas supprimées. Il en reste quelques-unes.

Je ne comprends pas pourquoi il y a toujours des problèmes, étant donné qu'il y a une boucle qui doit tourner tant qu'il reste des marqueurs de suppression.

Si vous avez une idée, je suis preneur.

Encore merci pour votre aide qui m'est très précieuse.

Je viens juste de me rendre compte que dans le fichier que vous m'avez préparé, il y a 2 modules contenant des macros.

A quoi correspond le module 1 ? Ça ressemble à une macro enregistrée involontairement avec l'enregistreur de macro...

Merci

Désolé mais avec le peu de données dont je dispose je ne peux pas faire plus de tests et donc je n'ai aucune réponse.

En effet le module1 peut être supprimé sans risque, il ne sert à rien.

Je vais voir pour vous fournir un fichier plus représentatif. J'espère que cela pourra vous aider.

Je vous tiens au courant.

Merci

Voici en pièce jointe mon véritable fichier dans lequel j'ai effacé beaucoup de données.

Les fameux articles à supprimer (que je nommais S, H, ou SH), avec leurs décompositions, sont marqués A, N ou NA dans la colonne Q (MarchVrc). Si vous voulez un rappel sur ce que j'appelle la décomposition, dites-le moi.

Je n'ai pas mis la macro dans le fichier, et vous pourrez remarquer qu'il y a des mises en forme conditionnelles dans la colonne K (je ne pense pas que cela dérange le fonctionnement de la macro).

Merci

1binome18.xlsx (41.28 Ko)

Il semble que vous ayez fait une erreur en recopiant le code. Probablement dans

    tb1 = tb2 ' Réinitialise le tableau source
    ctVide = 0 ' Réinitialise le compteur des marqueurs de suppression
    For i = 1 To UBound(tb1)
      If (tb1(i, colArticle) = "A" Or tb1(i, colArticle) = "N" Or tb1(i, colArticle) = "NA") Then ctVide = ctVide + 1
    Next i

vers la fin de la macro.

Voici un fichier qui fonctionne avec les données fournies. Les lignes vides dans un tableau sont souvent sources de problème. J'ai donc intégré une routine de suppression des lignes vides.

Si vous m'aviez transmis le code que vous avez utilisé je pourrais sans doute être plus affirmatif.

Bonjour,

Parfait, le fonctionnement me semble correct.

Un immense MERCI

J'ai besoin de continuer à travailler sur ce tableau et à faire des mises en forme. Pour certains points, je pense que je vais revenir vers vous.

Bonjour,

Comme je vous le disais dans le précédent message, je reviens vers vous concernant une mise en forme sur le même fichier. Faut-il que je créé un nouveau sujet étant donné que la problématique est différente ? mais le fichier reste le même...

Vous trouverez le fichier en pièce jointe.

Je souhaite faire une mise en forme conditionnelle dans la dernière colonne du tableau (colonne AT). En fait je veux remplir en rouge les cellules de cette colonne, mais suivant plusieurs conditions. Pour qu'une cellule soit coloriée, il faut que l'article soit de type "DEFI" (colonne J), ET que le type appro soit "F" (colonne K), ET que la hiérarchie (colonne F) soit différente de titi et tata, ET que la valeur dans la colonne AT soit vide ou autre que "1". Jusque-là, pas de problème particulier, j'ai d'ailleurs fait la mise en forme.

Là où le sujet se complique pour moi, c'est qu'il peut être normal que la cellule soit vide. C'est le cas où l'article "père" a la valeur 1 dans la colonne AT. Si cet article n'a également pas de valeur en colonne AT, on remonte d'un cran, je vais dire au "grand-père".

Pour exemple, prenons le cas de la ligne 9. L'article est bien de type DEFI et F, d'une autre hiérarchie que titi et tata, et sa cellule de la colonne AT est vide. Elle doit donc être rempli en rouge sauf si l'article père (en ligne 8) contient la valeur 1. Si c'est le cas, on laisse la cellule vide et sans remplissage. Si ce père a aussi une cellule vide (ou autre que "1") en colonne AT, on remonte au "grand-père" (ici en ligne 6), et on regarde la valeur de la cellule en colonne AT... et ainsi de suite. Dans mon exemple, on voit qu'il faut remonter de la sorte jusqu'à la ligne 4. La cellule AT4 contient la valeur "2", donc la cellule AT9 (cellule de départ dans mon exemple) doit être coloriée en rouge. Et si AT4 contient "1", on laisse la cellule AT9 vide et sans couleur.

Vous pourrez aussi remarquer qu'on retrouve les références "père" des articles, dans la colonne H. J'avais essayé d'utiliser cette colonne pour faire des recherches et les inclure dans la formule de mise en forme conditionnelle, mais je n'ai pas réussi.

Je souhaiterais que ce repérage soit fait en mise en forme conditionnelle, mais je ne sais pas si c'est faisable.

Si vous trouvez que je n'étais pas assez clair dans mes explications ou que vous avez besoin de plus d'infos, n'hésitez pas à me poser des questions.

Merci d'avance à tous ceux qui pourrons m'aider.

Bonjour

Le problème n'a rien à voir avec le sujet de départ, peu importe le fichier, donc oui vous devriez créer un nouveau fil.

OK, je fais ça de suite.

Merci

Rechercher des sujets similaires à "supprimer lignes suivant certaines conditions"