Différence entre le pas à pas et lecture normale

Bonjour,

J'ai un petit bug que j'arrive pas à expliquer..

Pour le contexte, la macro sert a récupérer des valeurs dans un "formulaire" rempli manuellement et ensuite les place dans un tableau avec pour certaines des calculs.

Je veux afficher une boite de dialogue qui annonce quelle ligne a été remplie ainsi que la date.

En mode pas à pas (F8) tout marche mais quand je lance en normal la date ne s'affiche pas dans le message...

J'ai essayé de mettre une pause dans le code mais sans succès

Voici le code:

If A1 = "" Or A2 = "" Or A3 = "" Or B1 = "" Or B2 = "" Or B3 = "" Or C1 = "" Or C2 = "" Or C3 = "" Or B = "" Then
    MsgBox ("Echec de remplissage de l'étalonnage. Veuillez remplir tous les champs s'il vous plait")
    Else
    Choix_feuille
    MsgBox ("copie des valeurs " & A1 & " " & A2 & " " & A3 & " " & B1 & " " & B2 & " " & B3 & " " & C1 & " " & C2 & " " & C3 & " " & B)

    If Not IsEmpty(ActiveSheet.Range("B21")) Then decallage
        'End If
        For i = 12 To 21
            If ActiveSheet.Range("B" & i) = "" Then
            Date = Now()
            ActiveSheet.Range("B" & i) = Format(Date, "dd/mm/yyyy")
            ActiveSheet.Range("AA" & i) = B
            ActiveSheet.Range("F" & i) = ((A1 + A2 + A3) / 30)
             ActiveSheet.Range("J" & i) = ((B1 + B2 + B3) / 30)
            ActiveSheet.Range("N" & i) = ((C1 + C2 + C3) / 30)
            Application.Wait Time + TimeSerial(0, 0, 1)
            MsgBox ("La ligne " & i & " du " & Range("B" & i) & " est remplie")
            i = 21
            End If
        Next i
End If
End Sub

Bonjour,

Pour commencer, vérifie :

Or B = "" Then

Bonjour Jean-Eric

La variable B a bine une valeur dans le pas à pas...

Re,

Joins un fichier à ta demande pour une aide adaptée du forum…

Cdlt.

J'ai ajouter le fichier.

Pour expliquer un peu, la première page doit etre remplie par l'utilisateur et ensuite après avoir utilisé le bouton les valeurs vont dans la bonne page se mettre dans le tableau. (Le tableau a une taille max jusqu'a B21 de mémoire)

Les codes sont tous sur la page "etalonnage" car c'est la page "commune" on va dire, et ensuite on change de page active avec le code "choixfeuille"

Si vous avez des questions je suis la

Désolé il est pas fini donc pas forcément "joli"....

Merci d'avance

Bonsoir,

Je peux me tromper car je n'ai fait que survoler le problème en quelques instants...

Et si tu nous mettais un peu de ActiveSheet dans ton MsgBox est-ce que ça résoudrait pas ton pb ?

MsgBox ("La ligne " & i & " du " & ActiveSheet.Range("B" & i) & " est remplie")

A+

Bonsoir,

je propose ce code VBA :

Sub Essai()
  If A1 = "" Or A2 = "" Or A3 = "" Or B1 = "" Or B2 = "" Or B3 = "" Or C1 = "" Or C2 = "" Or C3 = "" Or B = "" Then
    MsgBox "Echec de remplissage de l'étalonnage. Veuillez remplir tous les champs s'il vous plait": Exit Sub
  End If
  Choix_feuille
  MsgBox "copie des valeurs " & A1 & " " & A2 & " " & A3 & " " & B1 & " " & B2 & " " & B3 & " " & C1 & " " & C2 & " " & C3 & " " & B
  With ActiveSheet
    If Not IsEmpty(.[B21]) Then decallage
    For i = 12 To 21
      If .Range("B" & i) = "" Then
        .Range("B" & i) = Date
        .Range("AA" & i) = B
        .Range("F" & i) = (A1 + A2 + A3) / 30
        .Range("J" & i) = (B1 + B2 + B3) / 30
        .Range("N" & i) = (C1 + C2 + C3) / 30
        Application.Wait Time + TimeSerial(0, 0, 1)
        MsgBox "La ligne " & i & " de " & .Range("B" & i) & " est remplie"
        Exit For
      End If
    Next i
  End With
End Sub

dhany

Bonjour,

Galopin ton code marche alors que je l'avais déjà essayé

Merci à vous c'était inexplicable ^^

peut-être l'ordi qui fatigue et au bout d'un moment il rame...

Merci encore en tout cas !!

Rechercher des sujets similaires à "difference entre pas lecture normale"