Condition multiple
Fermé
cadar95
Messages postés
7
Date d'inscription
vendredi 8 septembre 2017
Statut
Membre
Dernière intervention
13 septembre 2017
-
13 sept. 2017 à 10:21
cadar95 Messages postés 7 Date d'inscription vendredi 8 septembre 2017 Statut Membre Dernière intervention 13 septembre 2017 - 13 sept. 2017 à 13:59
cadar95 Messages postés 7 Date d'inscription vendredi 8 septembre 2017 Statut Membre Dernière intervention 13 septembre 2017 - 13 sept. 2017 à 13:59
A voir également:
- Condition multiple
- Excel cellule couleur si condition texte - Guide
- Ecran multiple pc - Guide
- Excel cellule choix multiple - Guide
- Copier coller multiple - Guide
- Excel condition ou - Guide
6 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 759
13 sept. 2017 à 10:43
13 sept. 2017 à 10:43
Bonjour,
Appel dans la feuille, en B6 :
Option Explicit 'macro d'appel Sub maMacro() MsgBox OK(Range("B6")) End Sub Private Function OK(Target As Range) As String Dim Sont_Dans As Boolean With Target Sont_Dans = .Offset(0, -1) <> "" And InStr(UCase(.Offset(0, 1)), "AUSSI") > 0 End With OK = IIf(Sont_Dans = 0, "N", "Y") End Function
Appel dans la feuille, en B6 :
=OK(B6)
cadar95
Messages postés
7
Date d'inscription
vendredi 8 septembre 2017
Statut
Membre
Dernière intervention
13 septembre 2017
13 sept. 2017 à 10:56
13 sept. 2017 à 10:56
Merci pour ta réponse !
Cela semble fonctionné mais j'ai du mal à comprendre l'appel dans la feuille.
J'aimerais également mettre dans un if cette fonction car j'ai d'autres conditions
Comment faire ?
Appeler La fonction dans le if ?
Cela semble fonctionné mais j'ai du mal à comprendre l'appel dans la feuille.
J'aimerais également mettre dans un if cette fonction car j'ai d'autres conditions
Comment faire ?
Appeler La fonction dans le if ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 759
13 sept. 2017 à 10:59
13 sept. 2017 à 10:59
mais j'ai du mal à comprendre l'appel dans la feuille.
comme je t'ai fait une fonction, et pas une Sub, tu peux l'utiliser directement comme une formule de calcul.
J'aimerais également mettre dans un if cette fonction car j'ai d'autres conditions
Change le code d'appel "maMacro" :
Mais sans plus de précision sur ton(es) test(s) complémentaire(s), je ne peux rien de plus...
comme je t'ai fait une fonction, et pas une Sub, tu peux l'utiliser directement comme une formule de calcul.
J'aimerais également mettre dans un if cette fonction car j'ai d'autres conditions
Change le code d'appel "maMacro" :
Option Explicit 'macro d'appel Sub maMacro() If TonTest Then MsgBox OK(Range("B6")) End If End Sub Private Function OK(Target As Range) As String Dim Sont_Dans As Boolean With Target Sont_Dans = .Offset(0, -1) <> "" And InStr(UCase(.Offset(0, 1)), "AUSSI") > 0 End With OK = IIf(Sont_Dans = 0, "N", "Y") End Function
Mais sans plus de précision sur ton(es) test(s) complémentaire(s), je ne peux rien de plus...
cadar95
Messages postés
7
Date d'inscription
vendredi 8 septembre 2017
Statut
Membre
Dernière intervention
13 septembre 2017
13 sept. 2017 à 11:10
13 sept. 2017 à 11:10
Mon Excel est constitué de 3 colonnes
Colonne À :avec des noms, cellules vide ou cellules
colonne B que je cherche à remplir par du vide, Y, N
Colonne C: remplis par des case vide, des cellules contenant Aussi manager Aussi directeur, Aussi producteur etc
Jai donc plusieurs conditions je vais les énumérer de la plus simplement à la plus compliqué
Si ma cellule en A et C est vide alors B est vide
Si ma cellule est vide en A et contient en C un texte alors B est vide
Si ma cellule contient du texte en A et vide en C alors B est rempli par Y
Si ma cellule contient du texte en A et contient le mot "Aussi" en C alors B est rempli par N
J'espère que ça ta éclairci sur ce que je cherche à faire ...
Merci pour ton aide
Colonne À :avec des noms, cellules vide ou cellules
colonne B que je cherche à remplir par du vide, Y, N
Colonne C: remplis par des case vide, des cellules contenant Aussi manager Aussi directeur, Aussi producteur etc
Jai donc plusieurs conditions je vais les énumérer de la plus simplement à la plus compliqué
Si ma cellule en A et C est vide alors B est vide
Si ma cellule est vide en A et contient en C un texte alors B est vide
Si ma cellule contient du texte en A et vide en C alors B est rempli par Y
Si ma cellule contient du texte en A et contient le mot "Aussi" en C alors B est rempli par N
J'espère que ça ta éclairci sur ce que je cherche à faire ...
Merci pour ton aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 759
13 sept. 2017 à 11:55
13 sept. 2017 à 11:55
Il y a plus simple, mais j'ai préféré détailler pour une meilleure compréhension...
Sub AppelFonction() Dim i& 'pour les lignes de 1 à 10 For i = 1 To 10 Range("B" & i) = OK(Range("B" & i)) Next i End Sub Private Function OK(T As Range) As String 'si la cellule ciblée n'est pas située Colonne B If T.Column <> 2 Then MsgBox "Le Range : " & T.Address & " n'est pas en colonne B": Exit Function 'Si ma cellule en A et C est vide alors B est vide 'Si ma cellule est vide en A et contient en C un texte alors B est vide If T.Offset(0, 1).Value = "" Then OK = "": Exit Function 'Si ma cellule contient du texte en A et vide en C alors B est rempli par Y If T.Offset(0, -1) <> "" And T.Offset(0, 1).Value = "" Then OK = "Y": Exit Function 'Si ma cellule contient du texte en A et contient le mot "Aussi" en C alors B est rempli par N If T.Offset(0, -1) <> "" And InStr(UCase(T.Offset(0, 1)), "AUSSI") > 0 Then OK = "N" End Function
cadar95
Messages postés
7
Date d'inscription
vendredi 8 septembre 2017
Statut
Membre
Dernière intervention
13 septembre 2017
Modifié le 13 sept. 2017 à 13:59
Modifié le 13 sept. 2017 à 13:59
Le code a l'air clair mais le programme semble bloqué au niveau du premier if de la fonction ... le numéro 2 correspond à la colonne B ?