VBA: filtre critere rempli. cellule sur ligne
Fermé
ERIC
-
3 janv. 2011 à 18:38
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 9 janv. 2011 à 14:39
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 9 janv. 2011 à 14:39
A voir également:
- VBA: filtre critere rempli. cellule sur ligne
- Mkdir vba ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Autofill vba ✓ - Forum Excel
16 réponses
Bonsoir,
Désolé je n'ai pas la solution en VBA; mais par une formule, c'est sans doute plus simple:
dans la colonne P dans la ligne du premier N° de livraison (adapter C5 et D5 en conséquence):
a "tirer" vers le bas.
En espérant que ça peut répondre au problème.
Bonne soirée
Désolé je n'ai pas la solution en VBA; mais par une formule, c'est sans doute plus simple:
dans la colonne P dans la ligne du premier N° de livraison (adapter C5 et D5 en conséquence):
=SI(ET(OU(D5=75;D5=77;D5=79;D5="CP";D5="CR");E5<>"GOV");"MAUVAIS TYPE DE LIVRAISON";"")
a "tirer" vers le bas.
En espérant que ça peut répondre au problème.
Bonne soirée
Merci beaucoup pour ta réponse PAF.
En fait, il me faut ce code en VBA car il fait partie d'une longue série de codes me permettant d'automatiser l'exécution d'un rapport à l'aide d'un formulaire et de boutons codés.
Concernant le cas ELSE, il faut que le contenu de la cellule reste celui de départ (et non pas vide " " si la cellule ne l'était pas).
Quelqu'un pourrait il m'aidait pour le VBA?
Merci d'avance.
En fait, il me faut ce code en VBA car il fait partie d'une longue série de codes me permettant d'automatiser l'exécution d'un rapport à l'aide d'un formulaire et de boutons codés.
Concernant le cas ELSE, il faut que le contenu de la cellule reste celui de départ (et non pas vide " " si la cellule ne l'était pas).
Quelqu'un pourrait il m'aidait pour le VBA?
Merci d'avance.
ERRATUM
Maintenant je souhaiterais
- Si pour chaque livraison (Col. C filtrée 2R) le SERVICE CODE (Col.D) est égal à 75, 77, 79, CP, CR et le type de livraison est différent de GOV (donc égal à DOC, TAX ou CF) alors la cellule de référence (Col P) en face du numéro de livraison correspondant se remplit du commentaire : "MAUVAIS TYPE DE LIVRAISON" sinon rien ne se passe.
Maintenant je souhaiterais
- Si pour chaque livraison (Col. C filtrée 2R) le SERVICE CODE (Col.D) est égal à 75, 77, 79, CP, CR et le type de livraison est différent de GOV (donc égal à DOC, TAX ou CF) alors la cellule de référence (Col P) en face du numéro de livraison correspondant se remplit du commentaire : "MAUVAIS TYPE DE LIVRAISON" sinon rien ne se passe.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 4/01/2011 à 21:04
Modifié par lermite222 le 4/01/2011 à 21:04
Bonjour,
Bien que ton exposer soit bien rédiger ce n'est pas façile de comprendre ce que tu veux faire.
Pourait-tu créer un classeur exemple avec quelque données et sur une autre feuille mettre le résultat souhaiter.
Ou s'il n'y a pas de données confidentielles mettre ton classeur.
Sur CiJoint.fr
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Bien que ton exposer soit bien rédiger ce n'est pas façile de comprendre ce que tu veux faire.
Pourait-tu créer un classeur exemple avec quelque données et sur une autre feuille mettre le résultat souhaiter.
Ou s'il n'y a pas de données confidentielles mettre ton classeur.
Sur CiJoint.fr
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Merci pour l'intérêt que tu portes à ma demande Lermite222 ;)
Voici le lien
http://www.cijoint.fr/cjlink.php?file=cj201101/cijhPTIJ58.xlsx
Je ré explique simplement car je me suis trompé sur un critère:
colonne A : Numéro de livraison
colonne B : Service code (2 chiffres ou deux lettres, correspondant à la livraison)
colonne J : Commentaire
- Si une livraison (Col.a) commence par 1Z et son service code (Col.B) est égal à 75, 77, 79, CP, CR alors la cellule de référence (Col J) en face du numéro de livraison correspondant se remplit du commentaire : "WRONG SHIPMENT TYPE" (et en option la ligne se met en BOLD et RED) sinon rien ne se passe.
Dans le sheet1 les données à traiter, dans le sheet2 le resultat à atteindre.
Merci d'utiliser entre autre if then else et for each next
Merci de votre aide.
Voici le lien
http://www.cijoint.fr/cjlink.php?file=cj201101/cijhPTIJ58.xlsx
Je ré explique simplement car je me suis trompé sur un critère:
colonne A : Numéro de livraison
colonne B : Service code (2 chiffres ou deux lettres, correspondant à la livraison)
colonne J : Commentaire
- Si une livraison (Col.a) commence par 1Z et son service code (Col.B) est égal à 75, 77, 79, CP, CR alors la cellule de référence (Col J) en face du numéro de livraison correspondant se remplit du commentaire : "WRONG SHIPMENT TYPE" (et en option la ligne se met en BOLD et RED) sinon rien ne se passe.
Dans le sheet1 les données à traiter, dans le sheet2 le resultat à atteindre.
Merci d'utiliser entre autre if then else et for each next
Merci de votre aide.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
5 janv. 2011 à 10:53
5 janv. 2011 à 10:53
Apparemment ça ne pose aucun problème, juste.. le repérage est déclencher comment ?
Un bouton ? une sélection ?
Un bouton ? une sélection ?
Un bouton dans un formulaire, mais comme j'ai 10 fois plus de code pour le même bouton ici je n'ai besoin que du code en tant que sub. Je l'intégrerai ensuite dans le reste de code.
Merci.
Sub WrongShipmentType () code End sub
Merci.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
7 janv. 2011 à 14:09
7 janv. 2011 à 14:09
Comme ça ?
A+
Sub MarquerCOP() Dim Lig As Long, AR Dim i As Integer, B As Boolean AR = Array("75", "77", "79", "CP", "CR") With Sheets("Sheet1") For Lig = 2 To Range("A100000").End(xlUp).Row If Left(Cells(Lig, 1).Value, 2) = "1Z" Then For i = 0 To 4 If Cells(Lig, 2) = AR(i) Then B = True: Exit For Next If B Then Range("J" & Lig) = "Wrong Shipment Type" Range("J" & Lig).Font.ColorIndex = 3 Range(Cells(Lig, 1), Cells(Lig, 3)).Font.ColorIndex = 3 B = False End If End If Next End With End Sub
A+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
7 janv. 2011 à 20:17
7 janv. 2011 à 20:17
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
1°) Simplifier les modif que tu à fait par
2°) Je comprend pas ce que tu veux, prochaine fois tâche de mettre un exemple qui reflète la réalité.
Remet un classeur exemple comme la première fois mais avec les bons emplacements.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
1°) Simplifier les modif que tu à fait par
If B Then Range("O" & Lig) = "Wrong Shipment Type" Rows(Lig).Font.ColorIndex = 3 Rows(Lig).Font.Bold = True B = False End If
2°) Je comprend pas ce que tu veux, prochaine fois tâche de mettre un exemple qui reflète la réalité.
Remet un classeur exemple comme la première fois mais avec les bons emplacements.
ERIC71PL
Messages postés
2
Date d'inscription
vendredi 7 janvier 2011
Statut
Membre
Dernière intervention
7 janvier 2011
7 janv. 2011 à 21:25
7 janv. 2011 à 21:25
Ok pas de soucis Lermite :)
J'ai préparé le fichier mais je ne sais pas où l'héberger, ci-joint.fr semble hors service, aurais tu une autre solution?
J'ai préparé le fichier mais je ne sais pas où l'héberger, ci-joint.fr semble hors service, aurais tu une autre solution?
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
7 janv. 2011 à 21:29
7 janv. 2011 à 21:29
Pour un dossier provisoire c'est plus simple sur https://www.cjoint.com/
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
9 janv. 2011 à 00:32
9 janv. 2011 à 00:32
Pas moyen d'ouvrir le fichier su Cjoint.
Et tu doit le sauver en Xlsm (avec macro)
Remet le sur le même site que l'autre.
Et tu doit le sauver en Xlsm (avec macro)
Remet le sur le même site que l'autre.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 9/01/2011 à 14:39
Modifié par lermite222 le 9/01/2011 à 14:39
J'ai enfin pu avoir le classeur.
Et ça m'étonne que tu puisse pas modifier la macro en fonction de ce que tu veux maintenant !!
Enfin... bon,
Je vois que tu n'a plus la colonne avec les "Nombres" alors supprimer ce test.
Les emplacements sont différents, modifier les emplacements.
J'ai mis les lettres des colonnes, tu comprendras mieux.
J'ai pas tester étant donner que tu t'évertues à mettre un classeur XlsX
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Et ça m'étonne que tu puisse pas modifier la macro en fonction de ce que tu veux maintenant !!
Enfin... bon,
Je vois que tu n'a plus la colonne avec les "Nombres" alors supprimer ce test.
Les emplacements sont différents, modifier les emplacements.
Sub MarquerCOP() Dim Lig As Long With Sheets("Sheet1") For Lig = 2 To Range("A100000").End(xlUp).Row If Left(Cells(Lig, "C").Value, 2) = "1Z" and Cells(Lig, "E") = "COP" Then Range("O" & Lig) = "Wrong Shipment Type" Rows(Lig).Font.ColorIndex = 3 Rows(Lig).Font.Bold = True End If Next End With End Sub
J'ai mis les lettres des colonnes, tu comprendras mieux.
J'ai pas tester étant donner que tu t'évertues à mettre un classeur XlsX
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)