Je voudrais deux conditions dans une formule
Résolu
senga15
Messages postés
18
Statut
Membre
-
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
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
-
Bonjour,
Essayer simplement avec l'outil [Filtrer] et ensuite supprimer les lignes avec la valeur 0 ... !
-
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 -
-
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
Bonsoir,
Tout fonctionne c'est parfait.
Merci beaucoup.
Je viens d'envoyer une nouvelle demande
Cordialement