Peu pas dire a ma macro si une lettre sortir

Résolu
benoit -  
 benoit -
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. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
     
    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
  2. benoit
     
    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
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
     
    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. benoit
       
      merci beaucoup tu as répondu parfaitement a ma requete.
      bonne soirée
      Force et robustesse...
      0