Excel " Langage VBA "

Résolu
kikou93 Messages postés 438 Statut Membre -  
kikou93 Messages postés 438 Statut Membre -
Bonjour ou Bonsoir,

Je suis nouveau dans le langage VBA de excel.

J'ai Crée un macro qui demande de tapez une valeur inferieur a 16 (photo 1)

, si je tape la valeur 16 ou plus il me montre la boîte dialogue suivante (photo 2).

Mon problème et le suivant :

Je veux quand je clique sur Recommencer il me remonte la premier boîte dialogue (photo 1) jusqu'à que je tape une valeur inférieur à 16.

Quand je clique sur "Annuler" la boîte dialogue disparaît simplement.

Voici le macro que j'ai écrit :
-------------------------------------------------------------------------------------------
Sub Tapez()
Dim resultat As Byte

resultat = InputBox("Le nombre maximum de Travée est de 15", "Nombres de Travées", "Taper ici le Nombres de Travées")
If resultat < "16" Then
Range("B2") = resultat
ElseIf MsgBox("Faux", vbRetryCancel + vbDefaultButton1, "Erreur") = bRetry Then
End If
End Sub
-------------------------------------------------------------------------------------------
je ne sais pas si mes explications sont bonnes mais veuillez m'aider s'il vous plaît merci d'avance.

1 réponse

  1. m@rina Messages postés 27633 Date d'inscription   Statut Modérateur Dernière intervention   11 564
     
    Bonsoir,

    Essaie ça :

    Dim Reponse
    Do
    Reponse = InputBox("Le nombre maximum de Travée est de 15", "Nombres de Travées", "Taper ici le Nombres de Travées")
    If Reponse = "" Then Exit Sub
    If Reponse > 16 Then
    Reponse = InputBox("Mauvaise réponse, Le nombre maximum est 15, essayez encore")
    If Reponse = "" Then Exit Sub
    End If

    [A1] = Reponse
    Loop Until Reponse < 16


    m@rina
    0
    1. kikou93 Messages postés 438 Statut Membre 1
       
      Bonjour,
      Merci beaucoup pour votre réponse
      Votre réponse est-il utile mais elle n'a pas marché comme je le voulais.
      J'ai créé ce macro maman normalement il est juste, car tant que je ne tape pas une valeurs inférieur à 15 il répète en boucle les 2 boîtes de dialogues.
      Le macro :

      Sub Tapez()
      Dim resultat As Byte

      resultat = InputBox("Le nombre maximum de Travée est de 15", "Nombres de Travées", "Taper ici le Nombres de Travées")
      If resultat < 16 Then
      Range("B2") = resultat
      End If
      While resultat > 15
      resultat = MsgBox("Faux", vbRetryCancel + vbCritical + vbDefaultButton1, "Erreur") = bRetry
      resultat = InputBox("Le nombre maximum de Travée est de 15", "Nombres de Travées", "Taper ici le Nombres de Travées")
      Wend
      Range("B2") = resultat
      End Sub

      Remarque :
      Sans vouloir te déranger tu n'as pas un site ou un livre qui apprend la programmation des macros .

      merci encore pour votre réponse
      0
    2. m@rina Messages postés 27633 Date d'inscription   Statut Modérateur Dernière intervention   11 564
       
      La macro que j'ai écrite fonctionne très bien. Qu'est-ce qui ne marche pas ?
      0
    3. kikou93 Messages postés 438 Statut Membre 1
       
      La boîte de dialogue qui affiche une erreur s'affiche qu'une seule fois si je tape encore une fois une valeur superieur à 15 elle se ne réaffiche pas.
      0