Peu pas dire a ma macro si une lettre sortir

Résolu
Bonjour,

voici mon code, ce que j'aimerai est que si Rep = a rien alors sortir du sub mais j'ai essayé et cela ne marche pas et si vous avez une solution ou même pour améliorer mon code c avec plaisir...

' déclaration de variable
Dim Rep As Integer, Lig As Integer, Col As Integer

' demande le jour de la caisse
Rep = InputBox("quel est le jour du mois de caisse à réaliser ?", "JOUR", 0)

If Not 1 < Rep < 31 Then
Exit Sub
ElseIf Rep = 0 Then
Exit Sub
End If

' recherche la ligne correspondante au jour de caisse
Lig = 6: Col = 1
Do While Rep <> Cells(Lig, Col).Value
If Cells(Lig, Col) = "" Then
MsgBox "Référence introuvable"
Exit Sub
End If
Lig = Lig + 1
Loop

Merci

3 réponses

  1. Contributeur
    Salut le forum

    Modifie ta condition de test

        Rep = InputBox("veuillez saisir le taux de change")
    
        If Rep = "" Or Not IsNumeric(Rep) Then
            MsgBox "Erreur !"
        Exit Sub
        Else
            If Rep < 1 Or Rep > 31 Then Exit Sub
        End If
    


    Mytå
    Merci de donner suite à votre question, nous ne sommes pas des robots...
    Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
    0
    1. salut,

      j'ai éssayé cela ne fonctionne pas je te montre tout le code pour que tu vois ce que j'aimerai : ( ce que je veux se n'est pas le taux de change mais le jour de caisse) c'est mal présenté mais si tu le copi/cole dans VB cela sera plus lisible

      'message d'accueil et date

      datduJour = Date
      MsgBox vbCr & "Nous somme le : " & vbCr & vbCr & " " & datduJour, vbInformation

      ' sélection onglet Cash-Paid out-Service

      Sheets("Cash-Paid out-Service").Select

      ' déclaration de variable
      Dim Rep As Integer, Lig As Integer, Col As Integer

      ' demande le jour de la caisse
      Rep = InputBox("quel est le jour du mois de caisse à réaliser ?", "JOUR", 0)

      JE VEUX QUE SI Rep = 0 OU "" OU AUTRE QUE DES CHIFFRES ALORS SORTIR DE LA MACRO ET SA NE MARCHE PAS

      'If Rep = "" Or Not IsNumeric(Rep) Then
      'MsgBox "Erreur !"
      'Exit Sub
      'Else
      'If Rep < 1 Or Rep > 31 Then Exit Sub
      'End If

      ' recherche la ligne correspondante au jour de caisse
      Lig = 6: Col = 1
      Do While Rep <> Cells(Lig, Col).Value
      If Cells(Lig, Col) = "" Then
      MsgBox "Référence introuvable"
      Exit Sub
      End If
      Lig = Lig + 1
      Loop

      ' demande le montant cash balance
      Cells(Lig, Col + 1).Select
      ActiveCell.FormulaR1C1 = InputBox("entrer le montant cash figurant sur la balance", "MONTANT CASH BALANCE", 0)
      ' demande le montant paid out et foreign currenc
      Cells(Lig, Col + 2).Select
      ActiveCell.FormulaR1C1 = InputBox("entrer le montant paid out figurant sur la balance", "MONTANT PAID OUT and FOREIGN CURRENCY BALANCE", 0)

      ' sélection onglet Cash&Devises
      Sheets("Cash&Devises").Select

      ' demande le montant dans les enveloppes
      Cells(Lig, Col + 1).Select
      ActiveCell.FormulaR1C1 = InputBox("entrer le total de cash des enveloppes", "MONTANT ENVELOPPE", 0)

      ' demande le montant en euros des devises
      Cells(Lig, Col + 2).Select
      ActiveCell.FormulaR1C1 = InputBox("entrer le total des devises", "MONTANT DEVISE sans les paid out", 0)

      ' demande le montant des chèques
      Cells(Lig, Col + 3).Select
      ActiveCell.FormulaR1C1 = InputBox("entrer le total des chèques", "MONTANT CHEQUE", 0)

      ' sélection onglet de contôle

      Sheets("Control").Select

      ' mise en couleur de la cellule de différence opéra et enveloppe
      Cells(Lig, Col + 3).Select
      With Selection.Interior
      .ColorIndex = 3
      .Pattern = xlSolid
      End With

      ' déclaration de variable pour bon fonctionnement
      Dim colonne As Integer
      ' affectation de la cellule courante à la variable colonne
      colonne = Cells(Lig, Col + 3).Value

      ' comparaison de la caisse si 0 caisse juste
      If colonne <> 0# Then
      Rep = MsgBox("problème en caisse vérifier les chiffres", vbCritical)
      Else: Rep = MsgBox("caisse juste", vbInformation)
      End If

      ' remise de la couleur d'origine
      Cells(Lig, Col + 3).Select
      With Selection.Interior
      .ColorIndex = 15
      .Pattern = xlSolid
      End With
      0
      1. Modérateur
        Bonjour,
        Au lieu de tester les 3 conditions (rep vide ou égal à 0 ou non numérique) en même temps, je te conseille de les faire l'une après l'autre. Pour éviter aussi des erreurs d'incompatibilité de type, je te conseille de déclarer rep en String (car issu d'une InputBox) et après les tests la transformer en Integer. Un peu comme ceci :
        Dim rep As String
        rep = InputBox("quel est le jour du mois de caisse à réaliser ?", "JOUR", 0)
        If rep = "" Then
        MsgBox "Erreur type 1!"
        Exit Sub
        End If
        If Not IsNumeric(rep) Then
        MsgBox "Erreur type 2!"
        Exit Sub
        End If
        If CInt(rep) = 0 Then
        MsgBox "Erreur type 3!"
        Exit Sub
        End If
        If CInt(rep) < 1 Or CInt(rep) > 31 Then
        MsgBox "Erreur type 4!"
        Exit Sub
        End If
        0
        1. merci beaucoup tu as répondu parfaitement a ma requete.
          bonne soirée
          Force et robustesse...
          0