Je voudrais deux conditions dans une formule

Résolu
senga15 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
senga15 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

12 réponses

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

0
senga15 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonsoir

essayez ceci

https://www.cjoint.com/?CFxwGMXYKQK


cdlt
0
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
senga15 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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
Le Pingou Messages postés 12249 Date d'inscription   Statut Contributeur Dernière intervention   1 458
 
Bonjour,
Oui c'est tout clair maintenant.
Alors prenez la proposition de Frenchie83 qui devrait vous convenir.
Salutations.
Le Pingou
0
senga15 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
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
senga15 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
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
senga15 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
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
senga15 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir,

Tout fonctionne c'est parfait.

Merci beaucoup.

Je viens d'envoyer une nouvelle demande

Cordialement
0