Boucle si alors poser telle question

Bonjour à tous,

A l'heure actuelle, j'ai créer un userform s'affichant en clic doit case A2 et qui me pose la première question "porte fermé ? " "oui ou non" pour ma première case excel cela fonctionne très bien mais j'aimerai que ensuite cela passe à la question suivante qui serait "la porte est elle bien ferme pour (porte sélectionné par une croix à droite de l'excel)" . et si oui colorier en vert la bonne case correspondante a gauche.

C'est cette question que je n'arrive pas à créer je pense utiliser une boucle si mais je n'ai aucune idée de comment faire.

Si quelqu'un comprend ce que je souhaite et à une solution je suis preneuse et vous remercie d'avance.

10classeur1.xlsm (17.86 Ko)

Bonjour

je n'ai pas trop compris la logique de l'USF parce que pour changer le label, vous devez cliquer sur Oui. Mais remplacez votre code par celui ci-dessous :

'passage macro servant a la prise de décision
Private Sub OptionButton1_Click() 'oui
Dim numligne As Integer
Dim col As Byte
numligne = ActiveCell.Row
Select Case Me.Label1.Caption

    Case "Porte fermé ?" 'si on excute la macro ci dessous
        Range("A" & numligne).Interior.Color = RGB(226, 239, 218)
        Passage "Est-ce que tu as fermé la porte X ?", Me.OptionButton1

    Case "Est-ce que tu as fermé la porte X ?"
        Range("B" & numligne & ":I" & numligne).Interior.Color = xlNone
        col = WorksheetFunction.Match("X", Range("K" & numligne & ":R" & numligne), 0)
        Range("A" & numligne).Offset(0, col).Interior.Color = RGB(0, 154, 0)
End Select
End Sub

NB : supprimez ceci dans votre USF.
- Dim Retour$()
- les instructions se trouvant dans la Private Sub UserForm_Initialize()

Cordialement

Merci c'est ce que je souhaitais juste j'aurai aimé aussi que la question prenne le numéro de la porte concerné au lieu d'écrire "X".

Dans "Est-ce que tu as fermé la porte X ?"

re,

Modifiez ceci :

- juste en dessous de la ligne "Option Explicit", ajoutez cette ligne

Dim porte As String

- remplacez le code que je vous ai donné par celui-ci

Private Sub OptionButton1_Click() 'oui
Dim numligne As Integer
Dim col As Byte

numligne = ActiveCell.Row
col = WorksheetFunction.Match("X", Range("K" & numligne & ":R" & numligne), 0)

Select Case Me.Label1.Caption

    Case "Porte fermé ?" 'si on excute la macro ci dessous
        Range("A" & numligne).Interior.Color = RGB(226, 239, 218)
        porte = Cells(1, col).Value
        Passage "Est-ce que tu as fermé la porte " & porte & " ?", Me.OptionButton1

    Case "Est-ce que tu as fermé la porte " & porte & " ?"
        Range("B" & numligne & ":I" & numligne).Interior.Color = xlNone
        Range("A" & numligne).Offset(0, col).Interior.Color = RGB(0, 154, 0)
End Select
End Sub

Rem : oubliez pas les suppressions données dans mon post précédent

Cordialement


Edit : tant qu'à faire, remplacez aussi ce code dans votre feuil1

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A2:A" & UsedRange.Rows.Count)) Is Nothing Then
    UserForm1.Show
    Cancel = True
End If
End Sub

Redit : modifié code double click

Merci beaucoup

Bonjour,

Je reviens sur ce sujet car je viens de remarquer que si je me retrouve avec plusieurs cases cochées ad roite du tableau, cel ane me colorie pas toutes le scases a gauche mais seulement une. Comment puis je faire ?

9classeur1-1.xlsm (23.52 Ko)

Bonjour

Je reviens sur ce sujet car je viens de remarquer que si je me retrouve avec plusieurs cases cochées ad roite du tableau, cel ane me colorie pas toutes le scases a gauche mais seulement une.

ce n'est plus la même chose là....

Le click droite ne vous renvoie plus la bonne info.
je vois d'ailleurs que ce que je vous ai proposé dans l'EDIT ici --> https://forum.excel-pratique.com/s/goto/1114576, n'est pas dans le fichier
D'où ma question de savoir si c'est votre bon fichier ?

Que doit renvoyer le message si vous avez plusieurs croix à droite ? Vous voulez les messages pour chaque crois je suppose ?

Bonjour, oui c'est normal que vous ne voyez pas apparaître ce que vous m'avez proposé sur l'autre question que j'avais posé. C'est un fichier exemple que j'utilise ici et je réunis les informations qui me sont utiles dans un fichier non divulgable.

si j'ai plusieurs croix à droite, je voudrais que ça me colorie en vert les cases à gauche correspondantes comme cela faisait avec une seule croix.

Re

Ok mais ce n'est plus évident du tout et cela va changer pas mal le code çà....
Là il va falloir contrôler chaque cellule comportant un X....

Je vous propose de simplifier l'approche en faisant en sorte que l'USF vous demande directement si vous avez fermé la porte X plutot que de passer par deux valeurs sur le label1.
Actuellement vous avez le label1prend deux valeurs "Porte fermé" puis "Porte numero" si vous cliquez sur Oui
Ce que je vous propose est que le label1 vous propose directement si vous avez fermé les portes X. Soit vous cliquez sur Oui ou sur Non
Cela me parait plus simple plutot que de devoir cliquez sur oui deux fois.

Votre avis ?

Je ne peux pas séparer les 2 questions car la première me permet de colorer la case porte fermé en vert et si ce n'est pas le cas en rouge et ducoup cela arrête l'USF. Sauf si votre solution me permet aussi de colorer la première case en verte si la réponse ets oui et en rouge si c'est non.

Sauf si votre solution me permet aussi de colorer la première case en verte si la réponse ets oui et en rouge si c'est non.

Oui évidemment on reste sur le principe
exemple dans votre fichier sur ligne, on a deux X
Le code vous demande si la porte B est fermée ou pas. Puis il passe à la porte E avec la même question.
Dans les deux cas selon le choix : si fermée on met en vert, si non on met en rouge

OK c'est bon pour moi si on peut faire comme ça

Ok

autre question

la case porte fermé en vert et si ce n'est pas le cas en rouge et ducoup cela arrête l'USF.

Est-ce que cela veut que si une des deux portes n'est pas fermé on sort du code ?
Exemple :
on a X en B et X en E.
B n'est pas fermée on arrête le code ou on vérifie aussi E ?

Désolé des questions mais cela change le code

Aucun problème, je vous remercie beaucoup de m'aider.

On vérifie E aussi et on passe B en rouge.

Avez vous pu regarder comment faire pour changer mon code ?

Faudrait il répéter plusieurs fois l'opération ?

Re

Votre fichier en retour dans lequel j'ai modifié l'approche et les codes.
Dès que vous faites un click droite, le code affichera l'USF autant de fois que vous avez un X dans les colonne K à R
Suivant votre choix :
- oui, la couleur verte sera mise entre colonne A et H
- non, la couleur rouge sera mise entre colonne A et H

Si vous avez un rouge à modifier, effacer la couleur dans la cellule puis relancer le code par click droite en colonne A
Reste la couleur à modifier en colonne A. A voir dans quel cas elle doit modifiée
De mon coté, je pense que cela aurait été intéressant de mettre un X en plus de la couleur verte entre les colonnes A et H lorsqu'une porte est fermée

6classeur1-2.xlsm (24.24 Ko)

Crdlt

Bonjour,

Merci, mais ducoup ça ne correspond plus vraiment à ce que je souhaite puisque ma première colonne ne se colorie plus en verte et suite à l'enchainement des questions tel ou tel porte fermé j'ai besoin de poser d'autres questions je ne vois plus comment faire si je supprime "case" et "passage".

Bonjour

ça ne correspond plus vraiment à ce que je souhaite puisque ma première colonne ne se colorie plus en verte

Cela on peut arranger
Le vert doit se mettre uniquement quand toutes les portes sont fermées ?

Et pour le X ajouté si couleur en vert, vous en pensez quoi ?

Non enfaite dans l'excel que je ne peux pas partager ici la première question de la porte fermée oui ou non et une question qui n'est pas dutout en rapport avec la question suivante ou l'on demande si chaque porte est ferme ou non .

Pour l'ajout de la croix non ca ne sera pas nécessaire merci :)

Pas sûr de bien comprendre quand vous dites que vous ne pouvez pas partager.

Ce que j'ai vu c'est que l'on fait des tours dans votre code et que cela se complique lorsque vous avez plusieurs portes concernées à fermer. Vous passez par Userform donc c'est toujours plus complexe.
Du coup j'ai essayé de simplifier pour aller directement aux questions porte à porte. Lorsque vous avez deux portes à fermer le code vous pose la question pour chaque porte en changeant la référence porte. Vous avez vu cela ?

Expliquez moi comment vous devez fonctionner lorsque vous avez deux X par exemple et quand le vert doit se mettre en colonne A

Pour l'ajout de la croix non ca ne sera pas nécessaire merci :)

c'est juste que cela permettait de mieux gérer la couleur à mettre en colonne A.

Rechercher des sujets similaires à "boucle poser telle question"