VBA - INPUTBOx

Résolu
Bonjour,

Voici un exemple,

je clique sur un bouton, un input box (avec bouton "OK" et "ANNULER")apparait et me demande de saisir un matricule.

Click "OK" : 1 - vérification que le matricule est bien un numérique si ce n'est pas le cas, une boucle se charge de redemander une saisie jusqu'à obtenir un numérique
2- Vérifie l'existence du matricule

Click "ANNULER" : j'aimerais que le inputbox disparaisse tout simplement.

Qui peut m'aider ?? Merci !

3 réponses

  1. Bonjour,
    Sub controle_saisie_mat()
    '------------------------------------------------------------------------------------------------
    'CONTROLE DE SAISIE SUR MATRICULE = NUMERIQUE
    '------------------------------------------------------------------------------------------------
    Do
    matricule = InputBox("Saisir le matricule", "Controle de saisie", "18183")

    'Sortie du module si click sur annuler
    If vbCancel Then Exit Do

    If Not IsNumeric(matricule) Then
    MsgBox ("Une valeur numérique est requise !")
    End If
    Loop Until IsNumeric(matricule)

    End Sub

    J'espere que cela vous conviendra.
    1. Sub controle_saisie_mat()
      '------------------------------------------------------------------------------------------------
      'CONTROLE DE SAISIE SUR MATRICULE = NUMERIQUE
      '------------------------------------------------------------------------------------------------
      Do
      matricule = InputBox("Saisir le matricule", "Controle de saisie", "18183")
      If Not IsNumeric(matricule) Then
      MsgBox ("Une valeur numérique est requise !")
      End If
      Loop Until IsNumeric(matricule)

      End Sub

      Sub matricule_existe()
      '------------------------------------------------------------------------------------------------
      'VERIFIE L'EXISTENCE DU MATRICULE
      '------------------------------------------------------------------------------------------------
      nb_ligne = ActiveSheet.UsedRange.Rows.Count

      i = 2
      n = 0

      'Boucle qui parcourre les lignes de la premiere colonne pour vérifier l'existence du matricule
      Do
      i = i + 1
      val = Sheets(num_feuil).Cells(i, 1).Value
      If val = matricule Then
      MsgBox ("Le matricule existe bien")
      n = 1
      End If
      Loop Until n = 1 Or i > nb_ligne

      'Affiche un message si le matricule est inexistant
      If n = 0 Then
      MsgBox ("Le matricule n'existe pas !")
      End If

      End Sub

      Private Sub bt_note_Click()

      '------------------------------------------------------------------------------------------------
      'SELECTION FEUILLE NOTATION ET LIGNE DU MATRICULE SAISI
      '------------------------------------------------------------------------------------------------
      matricule = 0
      num_feuil = 0

      controle_saisie_mat

      num_feuil = 7

      matricule_existe

      'Si le matricule est inexistant alors on reste sur la "Feuil agent"
      If n <> 0 Then
      Worksheets(num_feuil).Select
      ActiveSheet.UsedRange.Rows(i).Select
      Else
      Worksheets("agent").Select
      End If

      End Sub