Macro qui ne s'éxécute pas

Cass -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai réalisé une procédure mais elle ne s'exécute pas . a chaque fois que j'essaies de l'éxécute ça m'affiche " bloc if sans end if .

Sub TableauMaxMin()
Dim T() As Integer
Dim Max As Integer
Dim Min As Integer
Dim i As Byte
Dim n As Byte

n = CInt(InputBox("donner la valeur de n ", " question", "5"))
ordre = CInt(InputBox("donner la valeur maximale ", " question", "100"))
ReDim T(1 To n) As Integer

Max = 0
Min = 32767

For i = 1 To n
    T(i) = Int(ordre * Rnd)
  Selection.Offset(0, 1).Value = T(i)
        
        If T(i) > Max Then
            Max = T(i)
        If T(i) < Min Then
            Min = T(i)
        End If
Call MsgBox(" la valeur maximum est " & Max, " la valeur minimum est " & Min)
        
End Sub


Si quelqu'un peu m'aider se sera gentil .



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Si tu veux tester plusieurs cas pour gérer différemment tes IF, il y a IF ... ELSEIF ... ELSE ... END IF
    0
    1. Cass
       
      Merci NHenry , le probleme avec les If est regle , mais mon programme ne fonctionne pas, pouvez m'aider a trouver où les erreurs se trouvent .




      Sub TableauMaxMin()
      Dim T() As Integer
      Dim Max As Integer
      Dim Min As Integer
      Dim i As Byte
      Dim n As Byte
      
      n = CInt(InputBox("donner la valeur de n ", " question", "5"))
      ordre = CInt(InputBox("donner la valeur maximale ", " question", "100"))
      ReDim T(1 To n) As Integer
      
      Max = 0
      Min = 32767
      
      For i = 1 To n
          T(i) = Int(ordre * Rnd)
          'Rnd permet d'obtenir un valeur aléatoire en 0 et 1
          Selection.Offset(0, 1).Value = T(i)
              
              If T(i) > Max Then
                  Max = T(i)
              ElseIf T(i) < Min Then
                  Min = T(i)
              End If
      Next
      
      Call MsgBox(" la valeur maximum est " & Max, " la valeur minimum est " & Min)
              
      End Sub


      EDIT : Ajout des balises de code (la coloration syntaxique).
      Explications disponibles ici : ICI

      Merci d'y penser dans tes prochains messages.
      0
  2. Cass
     
    Le problème avec les if est réglé , si quelqu'un pouvait m'aider a trouver l'erreur se serait gentille

    Sub TableauMaxMin()
    Dim T() As Integer
    Dim Max As Integer
    Dim Min As Integer
    Dim i As Byte
    Dim n As Byte
    
    n = CInt(InputBox("donner la valeur de n ", " question", "5"))
    ordre = CInt(InputBox("donner la valeur maximale ", " question", "100"))
    ReDim T(1 To n) As Integer
    
    Max = 0
    Min = 32767
    
    For i = 1 To n
        T(i) = Int(ordre * Rnd)
        'Rnd permet d'obtenir un valeur aléatoire en 0 et 1
        Selection.Offset(0, 1).Value = T(i)
            
            If T(i) > Max Then
                Max = T(i)
            ElseIf T(i) < Min Then
                Min = T(i)
            End If
    Next
    
    Call MsgBox(" la valeur maximum est " & Max, " la valeur minimum est " & Min)
            
    End Sub


    EDIT : Ajout des balises de code (la coloration syntaxique).
    Explications disponibles ici : ICI

    Merci d'y penser dans tes prochains messages.
    0
    1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      "mon programme ne fonctionne pas"
      En français dans le détail ça donne quoi ?

      Et merci de penser à la balise de code.
      0
    2. Cass
       
      Lol , ce n'est pas grave , j'essaierais de résoudre le problème . Bonne journée !
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Cass
         
        Bonjour,

        Call MsgBox(" la valeur maximum est " & Max & ",  la valeur minimum est " & Min)
        0