Macro if ne marche pas

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    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..."
    1. 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