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
A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 762
 
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
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