Boite de dialogue

Résolu
nemotri Messages postés 179 Statut Membre -  
nemotri Messages postés 179 Statut Membre -
Bonjour à tous,

Voilà j'ai tableur excel où il y a une cellule (par exemple T8) qui se rempli automatiquement à certaines conditions donc soit elle reste vide soit il y a un nombre dedans genre 4500.
j'aimerai qu'une boite de dialogue s'ouvre automatiquement quand cette cellule contient un nombre pour afficher le message suivant : "remplissez la date de la séance."

Comment dois-je faire ?

j'ai cru comprendre qu'il fallait utiliser userform dans vba pour mettre la boite de dialogue en forme mais quel est la procédure pour appeler cette boite de message ?

Merci d'avance de votre aide.

18 réponses

Résumé de la discussion

Problème central : lorsqu'une cellule Excel T8 se remplit automatiquement par une condition, une boîte de dialogue doit s’ouvrir pour afficher le message Remplissez la date de la séance.
Plusieurs approches ont été évoquées, notamment l’emploi de VBA avec des événements Worksheet_SelectionChange, l’utilisation d’une InputBox ou d’un UserForm pour déclencher une boîte de dialogue conditionnellement à T8.
Des échanges soulignent des difficultés fréquentes, comme plusieurs procédures d’événement, des conditions mal placées (If [P25] <> ''), et la nécessité d’une unique Sub Worksheet_SelectionChange qui orchestre la logique.
En dernier lieu, les propositions convergent vers une solution pratique où une InputBox ou un UserForm recueille la date et la transmet ensuite dans une cellule comme B10.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonsoir,
    Est que ces solutions te conviennent?
    0
    1. nemotri Messages postés 179 Statut Membre 35
       
      Merci pikaju pour cette première réponse,

      Ce que je souhaite faire correspond exactement au post vers lequel tu m'as renvoyé.
      Par contre les solutions trouvées ne me conviennent pas trop. Je souhaiterai vraiment qu'une boite de dialogue s'ouvre quand ma cellule se remplit.

      En fait, dans ma cellule (par exemple T8) j'ai une formule comme ceci :
      SI(SOMME (B5:B9)=0;"";SOMME (B5:B9))

      Ainsi la cellule T8 ne se remplit que quand la valeur est différente de 0.

      Maintenant, j'aimerai qu'à chaque fois que cette cellule se remplit automatiquement, qu'une boite de dialogue apparaissent avec le message suivant : "Remplissez la date de la séance".

      Ou alors, l'idéal serait que dans la boite de dialogue qui apparait j'ai le message suivant : "date de la séance :" et une case pour remplir dans cette boite de dialogue la date que je souhaite et qui serait ensuite renvoyée dans une (ou plusieurs) cellule.

      Est-ce que cela est faisable ?

      Merci de votre aide.
      Boris.
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > nemotri Messages postés 179 Statut Membre
       
      C'est faisable, pas si facile que cela. J'explique : vous voulez que lorsque T8 est complétée (automatiquement) apparaisse une boite de dialogue. Facile :
      Clic droit sur l'onglet de la feuil : sélectionner Worksheet dans le menu déroulant (milieu haut) et selectionchange dans celui de droite en haut. ça donne :

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)

      End Sub

      Pour faire apparaitre une boite de dialogue permettant à l'utilisateur d'interagir sur le document (cela s'appelle une InputBox), il faut déclarer une variable et lui affecter la valeur de l'InputBox :
      Dim result as String
      result = InputBox("date de la séance :", "Date")

      Le test maintenant : Si T8 est non vide, lancer la boite de dialogue et placer son résultat en B10 :
      If [T8] <> "" Then
      result = InputBox("date de la séance :", "Date")
      [B10] = result

      Le problème est que l'inputbox va apparaitre tout le temps (selectionchange = à chaque fois que l'utilisateur change de cellule...). Pour pallier à cela il faut, lorsque l'on inscrit le résultat en B10 pour la 1ère fois, compléter avec un 1 par ex une autre cellule pour pouvoir la tester. Ici j'ai choisit C10 :
      Dim result As String
      If [T8] <> "" Then 'si T8 est différente de rien alors
      If [C10] = 1 Then 'Si C10 = 1 (donc il ne s'agit plus de la 1ère fois) alors
      Exit Sub ' on quitte la macro
      Else ' sinon (s'il s'agit de la 1ère fois)
      result = InputBox("date de la séance :", "Date") 'affiche la boite de dialogue
      [B10] = result 'complète la cellule B10 avec la valeur de l'InputBox
      [C10] = 1 'inscrit 1 en C10
      End If
      End If

      Il n'y a plus qu'à inscrire ce code entre les deux lignes qui "commandent" cette macro, ce qui nous donne :

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim result As String
      If [T8] <> "" Then
      If [C10] = 1 Then
      Exit Sub
      Else
      result = InputBox("date de la séance :" & Chr(10) & Chr(10) & "(merci de mettre cette date au format : jj/mm/aaaa"), "Date")
      [B10] = result
      [C10] = 1
      End If
      End If
      End Sub
      0
    3. nemotri Messages postés 179 Statut Membre 35 > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Ok merci pour ta patience et cette aide précieuse,

      La seule chose que je ne comprends pas c'est ceci :

      "Clic droit sur l'onglet de la feuil : sélectionner Worksheet dans le menu déroulant (milieu haut) et selectionchange dans celui de droite en haut. ça donne :

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)

      End Sub"


      Quand je fais un clic droit sur l'onglet de ma feuille, j'ai le chois entre renommer, déplacer ou copier...mais je n'ai pas Worksheet.

      Est-ce que j'ai mal compris la procédure à suivre ?
      0
    4. nemotri Messages postés 179 Statut Membre 35 > nemotri Messages postés 179 Statut Membre
       
      Ok,
      Bon en cherchant bien en fait j'ai compris où il fallait écrire le code.

      Par contre maintenant, il faut bien que je crée mon Inputbox (ma boite de dialogue), non ?

      Comment dois-je faire : je dois insérer un useform, c'est ça ?

      Après je sais créer un useform très basique avec un message texte et un boutton genre "quitter" mais ke ne sais pas comment faire pour créer la case à côté de mon texte "date de la séance :" où je devrai remplir la date qui sera renvoyée automatiquement en B10.

      Merci de votre aide.
      0
    5. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > nemotri Messages postés 179 Statut Membre
       
      J'avais oublié... Clic droit/visualiser le code. Pardon. Une fois que vous avez fait cela, une fenêtre Visual Basic s'ouvre. Vous copiez/collez le code que je vous ai décrit précédemment :
      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim result As String
      If [T8] <> "" Then
      If [C10] = 1 Then
      Exit Sub
      Else
      result = InputBox("date de la séance :" & Chr(10) & Chr(10) & "(merci de mettre cette date au format : jj/mm/aaaa"), "Date")
      [B10] = result
      [C10] = 1
      End If
      End If
      End Sub

      Vous fermez la fenêtre VB et c'est tout. Vous avez une InputBox et tout fonctionne... Pas besoin de userform, votre inputbox est ici :
      result = InputBox("date de la séance :" & Chr(10) & Chr(10) & "(merci de mettre cette date au format : jj/mm/aaaa"), "Date")
      Essayez, vous verrez
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Y a t'il un "1" en C10?
    Sinon, envoyez nous votre fichier ici que l'on y jette un oeil...
    0
    1. nemotri Messages postés 179 Statut Membre 35
       
      Non, il n'y a pas de "1" en C10.
      Ce "1" devrait s'écrire automatiquement normalement, non ?
      0
      1. nemotri Messages postés 179 Statut Membre 35 > nemotri Messages postés 179 Statut Membre
         
        De pls, quand je visualise le code, la ligne :

        "result = InputBox("date de la séance :" & Chr(10) & Chr(10) & "(merci de mettre cette date au format : jj/mm/aaaa"), "Date")"

        est inscrite en rouge, est-ce normal ?
        0
      2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > nemotri Messages postés 179 Statut Membre
         
        Non ce n'est pas normal. Joint nous ton fichier stp grâce à cjoint...
        0
  3. nemotri Messages postés 179 Statut Membre 35
     
    Bon voici mon fichier joint, je ne sais pas si ça va marcher c'est la première fois que je fias ça.

    Alors en fait, il s'agit sur la feuille "modèle" de faire apparaître la boite de dialogue lorsque la cellule G26 se rempli automatiquement et de renvoyer le résultat (la date) dans la celule D26 et pourquoi pas si possible en D53 et en D80.
    Il est possible de servir de la case J19 pour faire apparaître le 1.

    Bon sinon j'ai oublié de préicser : quand je copie la procédure dans VBA, la ligne "result = InputBox("date de la séance :" & Chr(10) & Chr(10) & "(merci de mettre cette date au format : jj/mm/aaaa"), "Date")" se met en rouge et le message suivant apparaît : Erreur de compilation : Erreur de syntaxe".

    L'erreur vient surment de là.

    Merci beaucoup.
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      pas de fichier joint...
      0
  4. nemotri Messages postés 179 Statut Membre 35
     
    Une fois que j'ai créé mon lien, comment dois-je faire pour le joindre ici ?

    Je clique sur insérer un lien et je copie le lien http ?
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Tu créées ton lien
      le copies
      ici tu fais répondre et colles le lien dans le corps du message
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. nemotri Messages postés 179 Statut Membre 35
     
    Bon donc normalement ceci donc fonctionner : https://www.cjoint.com/?jqpSWeZGBp

    Merci de votre aidi.
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Essaye ceci... Ma faute, une histoire de parenthèse. Je t'ai rajouté un bout de code (en gras ci dessous) pour dire que si tu annules l'Inputbox il ne fasse rien.
      Le code complet :

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim result As String
      If [G26] <> "" Then
      If [J19] = 1 Then
      Exit Sub
      Else
      result = InputBox("date de la séance :" & Chr(10) & Chr(10) & "merci de mettre cette date au format : jj/mm/aaaa", "Date")
      If result = "" Then
      Exit Sub
      End If

      [D26] = result
      [J19] = 1
      End If
      End If
      End Sub
      0
      1. nemotri Messages postés 179 Statut Membre 35 > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Ok merci beaucoup, ça semble parfait.

        Si toutefois je voulais que la date s'inscrive aussi en même temps dans les cellules D53 et D80, comment devrai-je faire ?

        Est-ce que cela peut fonctionner :

        Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Dim result As String
        If [G26] <> "" Then
        If [J19] = 1 Then
        Exit Sub
        Else
        result = InputBox("date de la séance :" & Chr(10) & Chr(10) & "merci de mettre cette date au format : jj/mm/aaaa", "Date")
        If result = "" Then
        Exit Sub
        End If
        [D26] = result
        [D53] = result
        [D80] = result

        [J19] = 1
        End If
        End If
        End Sub
        0
  7. nemotri Messages postés 179 Statut Membre 35
     
    Bon je viens d'essayer ce que je proposais et ça fonctionne nickel, merci beaucoup.

    Juste une petite dernière finition ;-)
    N'y-a-t-il pas moyen d'écrier "oui" dans la cellule J19 à la place du "1" ?

    J'ai essayé ceci, mais ça ne fonctionne pas :

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim result As String
    If [G26] <> "" Then
    If [J19] = oui Then
    Exit Sub
    Else
    result = InputBox("date de la séance :" & Chr(10) & Chr(10) & "merci de mettre cette date au format : jj/mm/aaaa", "Date")
    If result = "" Then
    Exit Sub
    End If
    [D26] = result
    [D53] = result
    [D80] = result
    [J19] = oui
    End If
    End If
    End Sub

    Car j'aurai rajouté éventuellement en J18 un cellule avec écrit "date complétée :" et donc il aurait pu s'inscrire "oui" quand c'était bon plutôt que d'avoir un "1" dans une cellule sans savoir d'où il vient.
    Je sais je suis trop perfectionniste...désolé.

    En tout cas merci encore.
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      [J19] = "oui"
      si tu mets un mot sous VBA sans les guillemets, il le considère comme une variable. Pour "écrire" quelque chose, mets des guillemets... Tu peux si tu veux écrire:
      [J19] = "Date déjà complétée"
      0
      1. nemotri Messages postés 179 Statut Membre 35 > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Vraiment mille mercis, c'est super !!
        0
      2. nemotri Messages postés 179 Statut Membre 35 > nemotri Messages postés 179 Statut Membre
         
        Bonjour je fais remonter l'un de mes messages car j'ai une petite modif à faire :

        J'avais bien réussi donc à créer ma boite de dialogue suite à vos messages ci-dessus.
        Seulement, je souhaiterai maintenant avoir la posiibilité d'ouvrir plusieurs boites de dialogues sur la même page.

        Comme c'est boites de dialogues seront les mêmes que ce que j'ai déjà créé, j'ai fait un copier/coller de la procédure et j'ai changé les noms des cellules à prendre en compte.

        Mais cela ne fonctionne pas car il semnle qu'il y ait un souci de désignation :
        le souci semble provenir de cette ligne :

        Private Sub Worksheet_SelectionChange(ByVal Target As Range)

        Quelqu'un peut-il m'aider ?
        Merci d'avance.
        0
  8. nemotri Messages postés 179 Statut Membre 35
     
    Personne ne peut m'aider :-( car je suis vraiment dans la galère.
    0
  9. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Salut,
    Peux tu placer ici tout ton code? Entre les lignes : Private Sub Worksheet_SelectionChange(ByVal Target As Range) et End sub que l'on puisse voir ce qui ne va pas.
    0
    1. nemotri Messages postés 179 Statut Membre 35
       
      Voici le code complet que j'ai :
      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim result As String
      If [P25] <> "" Then
      If [D7] = "Séance n°1" Then
      Exit Sub
      Else
      result = InputBox("jour de la séance :" & Chr(10) & Chr(10) & "merci de mettre le jour de la séance au format : Jour", "Jour")
      If result = "" Then
      Exit Sub
      End If
      [O7] = result
      [D7] = "Séance n°1"
      End If
      End If
      End Sub


      Quand je tape ceci dans le code de la page (clic droit sur l'onglet => visualiser le code => je copie ce code), cela fonctionne très bien.

      Seulement maintenant, j'aimerai que sur cette même page excel, je puisse ouvrir une autre boite de dialogue qui répondrai à ce code (la même boite de dialogue mais qui ne répond pas aux mêmes cellules) :
      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim result As String
      If [P50] <> "" Then
      If [D32] = "Séance n°2" Then
      Exit Sub
      Else
      result = InputBox("jour de la séance :" & Chr(10) & Chr(10) & "merci de mettre le jour de la séance au format : Jour", "Jour")
      If result = "" Then
      Exit Sub
      End If
      [O32] = result
      [D32] = "Séance n°2"
      End If
      End If
      End Sub


      Seulement je tape donc ce second code à la suite du premier j'ai un message qui me met qu'il y a un problème avec la boite dialogue suivante :

      Errueur de compilation :
      Nom ambigu détecté : Worksheet_SelectionChange


      Que dois-je donc changer ?
      Merci de votre aide.
      0
      1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > nemotri Messages postés 179 Statut Membre
         
        Tu ne peux avoir qu'un seul : Private Sub Worksheet_SelectionChange(ByVal Target As Range) Donc il faut mettre tes 2 procédures entre Private sub et end sub.
        0
      2. nemotri Messages postés 179 Statut Membre 35 > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Ok mais alors que dois devenir mon code ? Que dois-je supprimer ?
        0
  10. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    J'ai essayé un truc qui ne fonctionne pas. Je regarde à nouveau et te tiens informé.
    0
  11. nemotri Messages postés 179 Statut Membre 35
     
    Cela ne fonctionne pas.

    Quand je rempli ma cellule P50, il n'y a aucune boite de dialogue qui s'ouvre (alors qu'elle s'ouvre bien quand j'écri en P25).
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      j'ai changé mon post 26
      0
      1. nemotri Messages postés 179 Statut Membre 35 > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Qu'as tu modifié, je ne vois pas de différence ?
        0
      2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > nemotri Messages postés 179 Statut Membre
         
        pardon le 28....
        0
      3. nemotri Messages postés 179 Statut Membre 35 > pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Euhhh je suis un peu perdu dans nos échanges :-)

        Donc tu y regardes et tu me tiens au courant, c'est ça ?
        0
  12. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Yes!!!
    0
  13. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Ceci fonctionne relativement bien :

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim result As String
    If [P25] <> "" Then
    If [D7] = "Séance n°1" Then
    GoTo suite
    Else
    result = InputBox("jour de la séance :" & Chr(10) & Chr(10) & "merci de mettre le jour de la séance au format : Jour", "Jour")
    If result = "" Then
    Exit Sub
    End If
    [O7] = result
    [D7] = "Séance n°1"
    End If
    End If
    suite:
    If [P50] <> "" Then
    If [D32] = "Séance n°2" Then
    Exit Sub
    Else
    result = InputBox("jour de la séance :" & Chr(10) & Chr(10) & "merci de mettre le jour de la séance au format : Jour", "Jour")
    If result = "" Then
    Exit Sub
    End If
    [O32] = result
    [D32] = "Séance n°2"
    End If
    End If
    End Sub
    0
  14. nemotri Messages postés 179 Statut Membre 35
     
    Cela ne fonctionne pas chez moi :

    Maintenant la boite de dialogue s'ouvre tout le temps sans respecter la condition : If [P25] <> "" Then ou If [P50] <> "" Then (pour la seconde boite de dialogue)
    0
    1. nemotri Messages postés 179 Statut Membre 35
       
      Je retire ce que je viens de dire : ça fonctionne !

      Merci
      0
  15. nemotri Messages postés 179 Statut Membre 35
     
    Eu en fait j'ai un nouveau souci (je suis désolé) :

    En fait je ne voudrai pas seulement ouvriri deux boites de dialogue sur la même feuille excel mais sept !!
    Comment dois-je donc intégrer "la troisième boite de dialogue au code que tu m'as donné ?

    Cette 3ème boite doit répondre à ces conditions :
    If [P75] <> "" Then
    If [D57] = "Séance n°3" Then
    Exit Sub
    Else
    result = InputBox("jour de la séance :" & Chr(10) & Chr(10) & "merci de mettre le jour de la séance au format : Jour", "Jour")
    If result = "" Then
    Exit Sub
    End If
    [O57] = result
    [D57] = "Séance n°3"


    Comment dois-je l'intégrer ?
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Salut,
      Une boîte de dialogue ok, deux pourquoi pas. A trois on se demande déjà si on ne devrait pas aborder le problème différemment. A 7 la question ne se pose même pas. Essaie de trouver un autre système que les boites de dialogue. Quel est le but exactement?
      0
  16. nemotri Messages postés 179 Statut Membre 35
     
    Voici le but recherché :

    En fait j'ai sur une même feuille excel sept petits tableaux identiques qui permettent en le complétant de faire un récapitulatif d'entraînements de natation (je suis entraîneur sportif).
    Il y a sept tableaux identiques car mes nageurs nagent parfois jusqu'à sept fois par semaine.
    Dans ce tableau mes nageurs inscrivent le volume de la séance, l'intensité, la durée...Seulement par expérience (j'ai commencé à travailler avec ce petit outil excel depuis quelques semaines), ils oublients toujours d'indiquer le jour de la séance.

    Ainsi je voudrai qu'à chaque fois qu'il complète une séance, à partir du moment où ma case "volume de séance" est supérieure à 0 (donc qu'il y a bien eu une séance), qu'une boite de dialogue s'ouvre en leur demandant de compléter le jour de la séance.

    Seulement donc comme il y a sept petits tableaux et qu'ils sont donc indépendants les uns des autres, il me faudrait une boite de dialogue propre à chaque tableau et qui répond à la cellule "volume de la séance" contenue dans chaque tableau.

    J'espère avoir été clair et que vous aurez compris ce que je recherche.
    Merci.
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Oui j'ai compris. On pourrait peut être utiliser un userform. Pour faire cela, peux tu nous joindre ton tableau en utilisant : https://www.cjoint.com/ par exemple. Tu créé ton lien et viens le coller ici dans ta réponse.
      0
  17. nemotri Messages postés 179 Statut Membre 35
     
    Ok, voici donc mon fichier :
    https://www.cjoint.com/?knoVfYvsgj

    Donc sur la feuille Nat S41, il y a actuellement le code pour la première boite de dialogue.
    Ainsi, si tu fais l'essai d'écrire "Z1" dans la cellule K8 et par exemple "600" dans la cellule L8 alors les celulles P13, P26 et P29 vont se remplir automatiquement et une boite de dialogue va s'ouvrir pour demander de compléter le jour de la séance.
    Si tu marques alors "Lundi" dans la boite de dialogue, alors "séance n°1" s'affiche en D7 (il s'agit de la cellule "test" pour savoir si le jour a déjà été complété) et "Lundi" s'affiche en O9 (dans le cadre donc).

    Ce que je voudrai donc c'est qu'il y ait pour chacun des 7 petits tableaux une boite de dialogue identique qui noterai respectivement et dans l'ordre "Séance n°1", "Séance n°2", "Séance n°3"...jusqu'à "Séance n°7" (ainsi que le jour bien sûr car c'est le but) et surtout en prenant en compte les cellules adéquates et respectives à chaque cadre (chaque petit tableau encadré en noir).

    A noter que je compte faire aussi la même chose sur la feuille CàP S41 où les cadres sont un tout petit peu différents mais où le principe sera exactement le même.

    Pour moi, la solution que tu avais trouvé pour ouvrir deux boites de dialogue est super mais après je ne sais pas si cela est possible de créer un longue procédure comprenant les 7 boites de dialogue.

    J'espère m'être exprimé assez clairement.

    Merci beaucoup.
    Boris.

    ps : si tu veux faire l'essai sur la feuille CàP S41, attention, l'intensité à mettre en exemple en K9 n'est plus "Z1" mais plutôt "All 2" par exemple et le volume n'est plus "600" en L9 mais plutôt "10" par exemple.
    0
  18. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Salut,
    Regarde ce que j'ai commencé : ici. Tu peux le continuer
    En fait, la toute première macro commençais comme ceci :
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim result As String
    If [P25] <> "" Then
    If [D7] = "Séance n°2" Then
    Exit Sub
    Donc elle testait les cellules P25 et D7 et si elles étaient complétées on quittait la macro. Maintenant, il ne faut plus quitter la macro mais aller plus loin. Tu verras donc que j'ai utilisé des goto suite goto suite1 etc... Ca n'est certainement pas la solution la plus simple, mais c'est la seule que j'ai pour l'instant...
    Donc en fait ta macro devient :
    Si test1 = vrai alors
    je passe à la suite (goto) donc au test2
    si test1 = faux
    j'exécute la procédure et je quitte la macro
    si test2 vrai
    je passe à la suite (goto suite2) donc au test3
    si test2 faux etc etc...
    0
  19. nemotri Messages postés 179 Statut Membre 35
     
    Ok merci ça a l'air bon.
    J'essayerai ça demain plus en détail.
    0