Recherche conditions

Résolu
Bonjour,

<Bonjour,

Je travail avec excel 2002. J'ai un gros fichier de données de comptabilité transféré dans Excel. J'ai des lignes avec des montants de marchandises et des sous-totaux. Les lignes de marchandises sont séparé du sous-total par une cellule contenant des tirets. Mes chiffres (total et sous-totaux) sont tous dans la colonne.
Dans mon fichier j'ai 42000 lignes contenant des centaines de sous-totaux. Certains sous-totaux sont à 0 et d'autre ont des montants. Je dois effacer tous ceux dont le sous-total est à 0 et garder les sous-totaux avec des montants.
Est-ce possible de faire une recherche rapide avec conditions suivantes : dans la colonne 0 recherche les cellules contenant "----------" si le chiffre dans la cellule en-dessous est différent de o arrêté la recherche, sinon continuer ?
Donc l'action est d'arrêté si le sous-total (chiffre sous la cellule contenant les tirret n'est pas 0.
Cela m'éviterais de regarder chacun rang voir si le sous-total est différent de 0.

merci

13 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    bonjour,,

    difficile à comprendre...

    tu supprimes que les zéros ou toutes les marchandise donnant un sous-total=0?

    combien de colonnes concernées et lesquelles?

    il faut passer par du vba et toute imprécision est rédhibitoire...

    au besoin

    pour joindre une pièce
    mettre un extrait du classeur( 150 à 300lignes) avec au moins un cas "zéro" sans données confidentielles en pièce jointe (format XL97-2003) sur
    https://www.cjoint.com/
    et faire un clic droit sur le lien proposé puis "copier l'adresse du lien" et coller dans le message de réponse

    et bien préciser ce que tu veux obtenir

    1. Comme je ne connait rien au vba ou à la programmation, créer une recherche avec conditions (avec la fonction recherche ou formule par exemple rechercheH) serait plus facile pour moi.
      Le but c'est que la fonction s'arrête là où le sous-total est différents de 0. Car ça peut-être un chiffre positif ou négatif. Le sous-total est dans la colonne o. Je préfère supprimer moi-même les lignes dont le montant est à 0.
      C'est pour cela que je demandais ce genre de formule avec conditions:
      "Recherche dans la colonne 0 les cellules contenant "----------" si le chiffre dans la cellule en-dessous est différent de 0 arrêté la recherche, sinon continuer ?
      Donc la recherche s'effectue seulement dans la colonne 0 et il n'y a rien a effacer.
      Mon problème c,est comment indiqué que je cherche la cellule sous une donné x.

      merci
      1. Contributeur
        rien compris à ta réponse et comme aucun classeur joint pour peut-^tre éclairer tes propos

        juste au passage 42000 à traiter ==> VBA envisagé

        désolé, abandon du suivi
    2. désolé, je croyais que c'étais plus clair.
      J'ai mis une partit du fichier joint.
      Exemple de ce que j'aimerais que la recherche donne:
      La recherche débute dans le haut du fichier et s'arrête à la cellule O24, puis à O30, O34, O38 puis à O73, car le item subtotal est différent de 0. Elle n,arrête pas à O51, O56 ET o63 car le subtotal est à 0.
      Par la suite j'effacerai mauellement les lignes 42 à 65 (car le subtotal est 0)

      Donc lorsque le montant dans la colonne O de la ligne Item Subtotal (inscrit dans la colonne I) est différent de 0, la recherche s'arrête.

      Est-ce plus clair ?

      https://www.cjoint.com/?3JnrksoeV7G

      merci
      1. Contributeur
        bien reçu, merci

        question : ne serait pas plutôt le POsubtotal (colonne I) =0 qui ferait supprimer les ligne s 42 à 65
        ou si pa exemple subtotal ligne 51=0 alors je supprime de 42 à 51?

        que veux tu dire par "s'arrête à la cellule XY" ? comment signale tu cet arrêt ?
    3. bonjour
      j'ai peur que michel ait laissé tomber
      une solution
      1. Alt-F11 pour accéder à l'éditeur de macro/insertion/module
      2. Copier/colle ce code
      3. modifier éventuellement les constantes
      4. retour à la feuille
      5. outils/macro/choisir la macro/option/donner un raccourci clavier (ctrl+t par ex)
      6. / se placer dans la colonne O puis ctrl+t

      Option Explicit
      
      Const trait As String = "----------------"
      
      Public Sub ChercheTrait()
      Dim co As Long, li As Long
      With ActiveSheet
        li = ActiveCell.Row
        co = ActiveCell.Column
        While (.Cells(li, co) <> trait) Or (.Cells(li + 1, co) <> 0)
          li = li + 1
        Wend
        .Cells(li + 1, co).Select
      End With
      End Sub

      bonne suite
      1. bonjour michel,
        désolé, avec ce temps, le rafraichissement à trainé !!!
      2. Contributeur
        bonsoir,
        ok, mais j'ai pas compris la m^me chose. on verra demain suivant la réponse de mb22
    4. Pour répondre à Michel,
      J,ai vraiement besoin de me référer à la ligne Item subtotal, c'est cele là qui me sert de référence..
      Lorsque j'inscrit "s'arrête à la cellule x" c'est que j'aimerais que le résultat de recherche se positionne sur la cellule du résultat de item subtotal cellule ayant un montant.
      Dans l'exemple joint, dans le bas du fichier les lignes 1 à 20 & 67 à 73 ne doivent pas être effacées (article + subtotal) . Lorsque le résultats de itemsubtotal est différent de 0 je doit garder les lignes supérieur ayant un lien avec le total.
      Donc les lignes que j'effacerais : 42 à 65, car le itemsubtotal est à 0 j'efface l'itemsubtotal ainsi que les articles précédent lié à ce subtotal.
      Je préfère que les chiffres ne soit pas effacer automatique pour vérifier en cas d'exeption.

      Désolé ça l'air plus compliqué à expliquer par ecrit que verbal.
      Y-a-t-il possibilité d,avoir une formule avec conditions indiquant que lorsqu'il trouve dans la colonne I "Item Subtotal" que si le montant dans la colonne O est différent de 0 qu'il se positionne dans la cellule ou s'il est égal à 0 qu'il recherche le suivant.
      Je peux trouver comment faire une recherche pour I avec "item subtotal" mais je ne sais pas comment lui indiqué que la valeur de la colonne 0 de la même ligne doit être différent de 0.

      merci
      1. WOW MERCI BEAUCOUCP BEAUCOUP ÇA MARCHE.

        GROS MERCI
        1. de rien,
          et une mention à michel pour son oeil de lynx

          bonne fin de journée
      2. Merci, ma collègue était aussi très heureuse de cela. Elle désire savoir si c'est possible (ou comment modifier la macro) pour effacer les données que l'on ne veut pas.
        Nous gardons seulement le item subtotal avec un chiffre différent de 0 ainsi que les données au dessus. Le po subtotal est effacer peut importe le chiffre
        Comme c'est compliqué à expliquer je te joint le fichier. J'ai mis en couleur ce que l'on doit garder et d'une autre couleur ce qu'il y a à effacer.

        https://www.cjoint.com/?3Jorf0DIL6O
        merci infiniement, cela nous sauvera beaucoup de temps.
        1. quand tu dis effacer, c'est supprimer les lignes?
          1. est ce que la feuille s'arrete colonne O ?
        2. oui la colonne O est la dernière colonne contenant des info.
          Mais contrairement au fichier joint le vrai contien des infos dans la colonne A, B, G & H (des numéros de Po et de commande), j'ai simplement effacer le contenu des colonnes.
          1. bon, il n'y a plus qu'à

            par contre ce ne sera pas pour tout de suite, le devoir m'appelle
        3. Un gros gros merci.
          Ça marche.

          Tu nous sauve des heures de travail.
          Effectivement ça prend quelques minute, mais pendant ce temps je pourrai faire autre chose.

          merci encore.
          1. de rien

            peux tu mettre le sujet à Résolu (je crois que tu dois t'inscrire comme membre avant)

            bonne journée