Macro if ne marche pas

Résolu
benoit -  
 benoit -
Bonjour,

j'essaye de réaliser une macro toute simple, mais cela ne fonctionne pas sachant que dans le tableur la valeur a comparer est au format nombre à 2 décimal (0.00), de plus si la valeur comparée est négative ou positive cela ne réagi pas de la même façon

If Cells(Lig, co + 3).Value = 0# Then
Rep = MsgBox("caisse juste", vbInformation)
Else: Rep = MsgBox("problème en caisse vérifier les chiffres", vbCritical)
End If

merci

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    Je viens de tester, votre code fonctionne très bien...
    A tout hasard essayez ceci :
    If CDbl(Cells(Lig, co + 3).Value) = 0# Then


    Mais je dis bien "à tout hasard..."
    0
  2. benoit
     
    merci pour votre réponse, mais j'avais un souci de valeur ou je sais pas mais je l'ai résolu en multipliant les test et voila la solution qui marche :

    ' 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

    maintenant j'ai un autre problème : je n'arrive pas a dire que si il y a rien dans la variable Rep alors exit sub il bug quand je fais comme sa alors que les autres instructions marche bien

    ' 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)

    If Rep < 1 Then
    Exit Sub
    End If
    If Rep > 31 Then
    Exit Sub

    ElseIf Rep = "" 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
    0