Imbriqué des Conditions Excel code
Fermé
boubritrezak
Messages postés
9
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
17 novembre 2018
-
7 déc. 2011 à 12:03
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 5 janv. 2012 à 17:05
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 5 janv. 2012 à 17:05
A voir également:
- Imbriqué des Conditions Excel code
- Liste déroulante excel - Guide
- Excel cellule couleur si condition texte - Guide
- Code asci - Guide
- Si et excel - Guide
- Code puk bloqué - Guide
4 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
7 déc. 2011 à 12:16
7 déc. 2011 à 12:16
Bonjour,
Tu es sur le forum "programmation" ==> tu veux donc une solution en VBA ?
Tu es sur le forum "programmation" ==> tu veux donc une solution en VBA ?
boubritrezak
Messages postés
9
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
17 novembre 2018
7 déc. 2011 à 13:02
7 déc. 2011 à 13:02
bonjour, Oui, je suis preneur, merci
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
7 déc. 2011 à 13:48
7 déc. 2011 à 13:48
si l'ai compris ta demande:
attention: sensible à la casse
attention: sensible à la casse
Dim valeur As Variant Select Case Range("A2") Case "SUP" If Range("C2") = "Planifié" Then valeur = Range("D2") + 10 Else valeur = "ERROR" End If Case "MIG", "CRE" valeur = Range("B2") + 1 Case "COL" valeur = "NO MEMO" 'case.... '.... Case Else valeur = "ERROR" End Select MsgBox valeur
boubritrezak
Messages postés
9
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
17 novembre 2018
7 déc. 2011 à 14:48
7 déc. 2011 à 14:48
Merci pour ton retour, mais enfaite le but est comme ci-dessous
dans une Feuille Xls
A B C D
1 SUP 11/02/2011 Planifié Résultat des conditions posées*
2 MIG 12/02/2011 Planifié
3 COL 13/02/2011 Planifié
4 CRE 14/02/2011 Planifié
5 EXT 15/02/2011 Planifié
6 SUP 11/02/2011 Réalisé
7
8
10
11
* =SI(A1="COL";"NO MEMO";SI(A1="EXT";B1+1;SI(A1="MIG";B1+10;SI (A1="CRE";B1+10;"ERROR"))))
=SI(ET(A1="SUP";C1="Planifié");D2+10)
Le pb c'est que je n'arrive pas à combiner les deux conditions ci-dessus dans la colone D.
d'avance, merci
dans une Feuille Xls
A B C D
1 SUP 11/02/2011 Planifié Résultat des conditions posées*
2 MIG 12/02/2011 Planifié
3 COL 13/02/2011 Planifié
4 CRE 14/02/2011 Planifié
5 EXT 15/02/2011 Planifié
6 SUP 11/02/2011 Réalisé
7
8
10
11
* =SI(A1="COL";"NO MEMO";SI(A1="EXT";B1+1;SI(A1="MIG";B1+10;SI (A1="CRE";B1+10;"ERROR"))))
=SI(ET(A1="SUP";C1="Planifié");D2+10)
Le pb c'est que je n'arrive pas à combiner les deux conditions ci-dessus dans la colone D.
d'avance, merci
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
7 déc. 2011 à 16:34
7 déc. 2011 à 16:34
Tu m'as demandé du VBA, la réponse est du VBa...
tu peux inclure le code dans une fonction personnalisée par exemple
en lisant ton message, tu sembles me dire que je n'ai pas compris ce que tu veux de plus tu ajoutes ligne 6 "réalisé" quèsaco ?
tu peux inclure le code dans une fonction personnalisée par exemple
en lisant ton message, tu sembles me dire que je n'ai pas compris ce que tu veux de plus tu ajoutes ligne 6 "réalisé" quèsaco ?
boubritrezak
Messages postés
9
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
17 novembre 2018
7 déc. 2011 à 18:23
7 déc. 2011 à 18:23
dsl, j'ai rajouté un autre truc (réalisé) sans que je me rend compte, mais je m'aperçoit que c'est un peu plus compliquer de plus que je ne suis pas un pro de VBA (je sais faire des trucs basiques),
sinon, l'action serait:
un check de chaque ligne de la colone A et appliquer la condition* dans la colone D de la meme ligne.
condition* :
Si A=SUP et C=Planifié alors D=C+2
Si A=COL alors D="NO MEMO"
Si A=EXT ou CRE....etc Alors D=C+1
ton CASE me semble bien fait, mais je ne sais pas comment l'integrer dans la Macro, les macros que je réalise c'est en utilisant l'enregistrement et puis je decouvre le code qui est géneré derierre en ouvrant VB dans l'onglet developpeur, merci pour ton aide si possible de me dire comment resoudre ce pb,
sinon, l'action serait:
un check de chaque ligne de la colone A et appliquer la condition* dans la colone D de la meme ligne.
condition* :
Si A=SUP et C=Planifié alors D=C+2
Si A=COL alors D="NO MEMO"
Si A=EXT ou CRE....etc Alors D=C+1
ton CASE me semble bien fait, mais je ne sais pas comment l'integrer dans la Macro, les macros que je réalise c'est en utilisant l'enregistrement et puis je decouvre le code qui est géneré derierre en ouvrant VB dans l'onglet developpeur, merci pour ton aide si possible de me dire comment resoudre ce pb,
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
7 déc. 2011 à 18:55
7 déc. 2011 à 18:55
fallait le dire que tu connaissais pas VBA quand je te l'ai proposé! c'est pas un crime
mais tu peux résoudre ton pb par formule
fonction personnalisée à mettre dans un module
mais tu peux résoudre ton pb par formule
fonction personnalisée à mettre dans un module
Function valoriser_ss_cond(cellule As Range) As Variant Dim Lig As Integer Lig = cellule.Row Select Case cellule Case "SUP" If Cells(Lig, "C") = "Planifié" Then valoriser_ss_cond = Cells(Lig, "D") + 10 Else valoriser_ss_cond = "ERROR" End If Case "MIG", "CRE" valoriser_ss_cond = Cells(Lig, "B") + 10 Case "COL" valoriser_ss_cond = "NO MEMO" Case "EXT" valoriser_ss_cond = Cells(Lig, 2) + 1 Case Else valoriser_ss_cond = "ERROR" End Select End Function
merci pour ce retour, j'ai essayé de mettre dans un module (Module 1) mais ça ne marche pas, si tu peux m'éclairer stp, merci
Sub Macro2()
Function valoriser_ss_cond(cellule As Range) As Variant
Dim Lig As Integer
Lig = cellule.Row
Select Case cellule
Case "SUP"
If Cells(Lig, "C") = "Planifié" Then
valoriser_ss_cond = Cells(Lig, "D") + 10
Else
valoriser_ss_cond = "ERROR"
End If
Case "MIG", "CRE"
valoriser_ss_cond = Cells(Lig, "B") + 10
Case "COL"
valoriser_ss_cond = "NO MEMO"
Case "EXT"
valoriser_ss_cond = Cells(Lig, 2) + 1
Case Else
valoriser_ss_cond = "ERROR"
End Select
End Function
End Sub
Sub Macro2()
Function valoriser_ss_cond(cellule As Range) As Variant
Dim Lig As Integer
Lig = cellule.Row
Select Case cellule
Case "SUP"
If Cells(Lig, "C") = "Planifié" Then
valoriser_ss_cond = Cells(Lig, "D") + 10
Else
valoriser_ss_cond = "ERROR"
End If
Case "MIG", "CRE"
valoriser_ss_cond = Cells(Lig, "B") + 10
Case "COL"
valoriser_ss_cond = "NO MEMO"
Case "EXT"
valoriser_ss_cond = Cells(Lig, 2) + 1
Case Else
valoriser_ss_cond = "ERROR"
End Select
End Function
End Sub
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
5 janv. 2012 à 17:05
5 janv. 2012 à 17:05
Tu n'as besoin d'encadrer la fonction par une Sub !!!
on écrit soit une fonction soit une sub...
alors tu vires sub macro2() et End sub
Ta prochaine réponse c'est début Février ?
on écrit soit une fonction soit une sub...
alors tu vires sub macro2() et End sub
Ta prochaine réponse c'est début Février ?