Je voudrais deux conditions dans une formule

Résolu
senga15 Messages postés 18 Statut Membre -  
senga15 Messages postés 18 Statut Membre -
bonjour,
j'ai un fichier avec une première colonne comportant le n° de dossier et une autre colonne avec le prix unitaire.
Pour un même numéro de dossier je peux avoir plusieurs lignes.
Le résultat que je voudrais obtenir est :
Si dans mon dossier j'ai au moins une ligne avec un prix à 0,00 je garde le dossier si non je supprime le dossier et donc au final il devrait me rester que les dossiers avec au moins un prix à 0,00.
Pouvez-vous m'aider car je ne suis pas une pro d'Excel

12 réponses

  1. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Essayer simplement avec l'outil [Filtrer] et ensuite supprimer les lignes avec la valeur 0 ... !

    0
  2. senga15 Messages postés 18 Statut Membre
     
    bonsoir,
    je me suis mal expliquée
    voici un exemple :
    Dossier Prix
    A 0,00
    A 12,00
    A 24,00
    B 30,00
    B 25,00
    C 0,00
    C 22,00
    C 28,00
    C 35,00

    Ce que je veux c'est une formule ou quelque chose d'autres qui me dise de garder le dossier A et le dossier C.

    Ai-je été plus claire.
    Salutations
    Senga15
    0
  3. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Pourquoi vouloir utiliser une macro alors que l'outil [Filtrer] suffit largement.
    La solution est valable avec l'outil [Filtrer] il faut simplement filtrer sur >0 et supprimer les lignes ... !

    Salutations.
    Le Pingou
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. senga15 Messages postés 18 Statut Membre
     
    Ce que je veux c'est ceci :
    A 0,00 Je garde
    A 12,00 Je garde
    A 24,00 Je garde
    B 30,00 Je supprime car pas de ligne à 0,00 dans ce dossier
    B 25,00 Je supprime car pas de ligne à 0,00 dans ce dossier
    C 0,00 Je garde
    C 22,00 Je garde
    C 28,00 Je garde
    C 35,00 Je garde

    Cordialement
    Senga15
    0
    1. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      Oui c'est tout clair maintenant.
      Alors prenez la proposition de Frenchie83 qui devrait vous convenir.
      Salutations.
      Le Pingou
      0
  6. senga15 Messages postés 18 Statut Membre
     
    Bonjour,
    La proposition de Frenchie83 supprime les lignes dont le prix est différent de 0 et ce n'est pas ce que je veux.
    Ce que je souhaites est :
    A 0,00 Je garde
    A 12,00 Je garde
    A 24,00 Je garde
    B 30,00 Je supprime car pas de ligne à 0,00 dans ce dossier
    B 25,00 Je supprime car pas de ligne à 0,00 dans ce dossier
    C 0,00 Je garde
    C 22,00 Je garde
    C 28,00 Je garde
    C 35,00 Je garde
    Cordialement
    0
  7. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour

    Curieux, je viens de refaire tourner et ça marche bien

    "si un code est égal à 0 alors je conserve toutes les lignes concernant ce code, sinon je supprime."

    re-vérifie, ou alors il y a un problème ailleurs

    si tu peux, exécute le programme en pas à pas

    on en rediscute

    cdlt
    0
  8. senga15 Messages postés 18 Statut Membre
     
    Bonsoir,

    Merci beaucoup.

    J'ai essayé et cela fonctionne.

    Travaillant actuellement sur mon ordinateur perso comment je fais pour enregistrer la macro sur un autre ordinateur ?

    Cordialement

    Senga15
    0
  9. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonsoir

    1) il faut avoir accès à VBA
    pour cela, on va afficher le bouton "Developpeur" dans le ruban
    -cliquer sur bouton office
    -cliquer sur Options excel
    -selectionner Standard
    -dans le 1er paragraphe, cocher Afficher développeur dans le ruban
    -ok

    dans le ruban, cliquer sur le bouton développeur
    -cliquer sur visual basic
    -cliquer sur insertion, et sélectionner insérer un module
    et y coller le code ci-dessous

    Sub SuppressionDossier()
    Application.ScreenUpdating = False
    Range("A2").Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range("A2").Select
    Do While Not IsEmpty(ActiveCell)
    If ActiveCell.Offset(1, 0).Value = ActiveCell.Value Then
    deb = ActiveCell.Row
    Do While ActiveCell.Offset(1, 0).Value = ActiveCell.Value
    ActiveCell.Offset(1, 0).Select
    Loop
    Fin = ActiveCell.Row

    For i = deb To Fin
    If Cells(i, 2).Value = 0 Then
    Cells(Fin, 1).Select
    GoTo Suivant
    End If
    Next i
    Rows(deb & ":" & Fin).Delete
    Cells(deb - 1, 1).Select
    GoTo Suivant
    Else
    If Cells(ActiveCell.Row, 2).Value <> 0 Then
    ActiveCell.EntireRow.Delete
    Cells(deb - 1, 1).Select
    GoTo Suivant
    End If
    End If
    Suivant:
    ActiveCell.Offset(1, 0).Select
    Loop
    End Sub

    2) sur la feuille Excel, insérer un objet quelconque (un bouton, un dessin ou autre..)
    clic droit sur l'objet, y affecter la macro "SuppressionDossier"

    voilà c'est tout

    bonne continuation

    Cdlt
    0
  10. senga15 Messages postés 18 Statut Membre
     
    Bonsoir,

    Est-ce que je peux encore profiter de ton savoir car j'ai encore un autre fichier a traiter.

    Cette fois-ci il faut que jme garde les dossiers ayant un prix inférieur ou égal à 26 €.

    Ne connaissant rien aux macros qu'est-ce que je dois modifier dans la macro que tu m'as envoyer.

    Peux-tu me la renvoyer en marquant en couleur les modifications que tu auras apporté.

    Après cela je pense que je ne t'embêterais plus.

    Merci encore

    Cordialement
    0
  11. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour

    N'étant pas sûr d'avoir bien compris ta question, voici 2 macros,
    la première identique à celle d'origine, on remplace la valeur 0 par <=6

    '*****1er cas, on conserve tous les dossiers dont au moins 1 est <= à 26
    la modification est soulignée à 2 endroits (la couleur, c'est pas possible)

    Sub SuppressionDossier1()
    Application.ScreenUpdating = False
    Range("A2").Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range("A2").Select
    Do While Not IsEmpty(ActiveCell)
    If ActiveCell.Offset(1, 0).Value = ActiveCell.Value Then
    deb = ActiveCell.Row
    Do While ActiveCell.Offset(1, 0).Value = ActiveCell.Value
    ActiveCell.Offset(1, 0).Select
    Loop
    Fin = ActiveCell.Row

    For i = deb To Fin
    If Cells(i, 2).Value <= 26 Then
    Cells(Fin, 1).Select
    GoTo Suivant
    End If
    Next i
    Rows(deb & ":" & Fin).Delete
    Cells(deb - 1, 1).Select
    GoTo Suivant
    Else
    If Cells(ActiveCell.Row, 2).Value > 26 Then
    ActiveCell.EntireRow.Delete
    Cells(deb - 1, 1).Select
    GoTo Suivant
    End If
    End If
    Suivant:
    ActiveCell.Offset(1, 0).Select
    Loop
    End Sub

    **************************************************************
    **************************************************************

    '**2ème cas, on ne conserve que les dossiers qui sont <= à 26
    Sub SuppressionDossier2()
    Application.ScreenUpdating = False
    Range("A2").Select
    Do While Not IsEmpty(ActiveCell)
    If ActiveCell.Offset(0, 1).Value > 26 Then
    ActiveCell.EntireRow.Delete
    Else: ActiveCell.Offset(1, 0).Select
    End If
    Suivant:
    Loop
    end sub

    Je pense qu'il s'agit du premier cas de figure qui t'intéresse, mais dans le doute, je préfère envoyer les deux.

    bonne journée

    cdlt
    0
  12. senga15 Messages postés 18 Statut Membre
     
    Bonsoir,

    Tout fonctionne c'est parfait.

    Merci beaucoup.

    Je viens d'envoyer une nouvelle demande

    Cordialement
    0