Peu pas dire a ma macro si une lettre sortir

Résolu/Fermé
benoit - 4 août 2010 à 10:49
 benoit - 4 août 2010 à 17:35
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

A voir également:

3 réponses

Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 942
Modifié par Mytå le 4/08/2010 à 12:43
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
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
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
4 août 2010 à 16:58
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
merci beaucoup tu as répondu parfaitement a ma requete.
bonne soirée
Force et robustesse...
0