Erreur 13 VBA

Bonjour

j'ai essayé d'exécuté mon macro VBA , mais un erreur 13 de compilation apparait, je sais pas pourquoi ,merci pour votre aide

voila mon macro

Private Declare Function Beep Lib "Kernel32" (ByVal Fq As Long, ByVal Tm As Long) As Long
Sub BeepBeep()
Beep 392, 200
Beep 494, 100
Beep 588, 200
Beep 740, 100
Beep 880, 400
Beep 740, 100
Beep 880, 900
End Sub

Private Sub Worksheet_Calculate()
If Range("H07").Value > 60 Then
Call BeepBeep
MsgBox " TR1: Attention valeur atteinte"
End If
If Range("H09").Value > 50 Then
Call BeepBeep
MsgBox " Valeur seuil atteint "
End If
End Sub

merci pour vos aides je suis débutant en programmation VBA

Bonjour

Je viens d'essayer et pas de soucis

La macro BeepBeep doit être dans un module

la macro Worksheet_Calculate() dans le code la feuille

Si pas ça envoies un fichier avec ton problème

Bonne journée

Bonjour

En ce qui me concerne, je n'arrive à la faire fonctionner que si je remplace H07 (chiffre 0) par HO7 (lettre O) - Idem pour HO9.

Par contre, j'ai gardé Beep dans la feuille et pas de soucis.

Amicalement

Nad

Bonjour

merci pour vos réponses , j'ai essayé de faire la fonction beep dans un module à part et Worksheet dans un feuille excel à part mais j'ai toujours le même problème

Bonjour,

Fais ce test afin de vérifier si ton message apparait toujours --> remplace "Call BeepBeep" par "BEEP"

Amicalement

Bonjour

lorsque j'ai remplacé call beep beep par beep le message toujours s'affiche mais j'entend pas le sons lorsque il y a un dépassement d'une valeur seuil.

merci de votre aides

-- 24 Mar 2011, 10:07 --

Bonjour

lorsque j'ai changé le chiffre 0 par la lettre 0 ce vrai mais le marco ne s’exécute pas parce que dans ce cas j'ai pas l’accés au cellule du classeur d'excel alors , le message ne vas pas s'afficher.

Re,

Lorsque j'ai changé le chiffre 0 par la lettre 0 ce vrai mais le marco ne s’exécute pas parce que dans ce cas j'ai pas l’accés au cellule du classeur d'excel alors , le message ne vas pas s'afficher.

Merci de réexpliquer là...ou de mettre le fichier en ligne.

La macro Calculate s'exécute si tu modifies quelque chose sur ta feuille. Une chose en HO7 et HO9 tu as bien une formule ??

Amcialement

Bonjour

oui exactement en faite les cellules H07 et H09 sont remonté à partir d'une appareil qui a une laison DDE en temp reél avec l'EXCEL , alors quand je change les valeurs dans l'appareil le contenu des cellules changent .

vous m'avez di de changer la lettre O par le chiffre 0 , quand je modifie les valeurs au niveau de l'appareil le marco ne s’exécute pas , mais en laissant le chiffre 0 ,un message s'affiche (""Erreur d'exécution 13 Incompatibilité de type "")

Re,

vous m'avez di de changer la lettre O par le chiffre 0

Non c'est le contraire !

Comme je te l'ai dit la macro Calculate ne fonctionne que s'il y a un calcul via une formule qui doit se faire sur ta feuille ou à l'enregistrement de ton fichier.

Essaie un peu de remplacer Private Sub Worksheet_Calculate()

par ceci --> Private Sub Worksheet_Change(ByVal Target As Range)

Ce serait bien intéressant de voir ton fichier pour comprendre. tu as surement fait une erreur quelque part.

A te relire

Bonjour

j'ai envoyé le fichier Excel en pièces excel en P.J

merci pour votre aide

21probleme.zip (10.78 Ko)

Re,

Bon ton code n'est pas celui que tu donnes dans ce fil

Pourquoi avoir mis H07 alors que ta cellule concernée est H7 ???

Le code suivant ton fichier posté doit être celui-ci

Private Sub Worksheet_Calculate()
If Range("H7") > 60 Then
Call BeepBeep
MsgBox " TR1: Attention valeur atteinte"
End If
End Sub

Dim DDE_mardi As Worksheet ne sert à rien dans ton cas

Amicalement

re

j'ai enlevé le 0 toujours le meme message , je me demande est ce que je dois declarer la feuille de travail ou une chose comme ca parceque comme j'ai lu au niveau de l'aide de word 2007 erreur 13 vient de incompatibilté de type??

Amicalment

meryem

Bonjour

Essayes à tout hasard

Private Sub Worksheet_Calculate()
'Dim DDE_mardi As Worksheet
  If Not IsError(Range("H7")) Then
    If Range("H7") > 60 Then
      Call BeepBeep
      MsgBox " TR1: Attention valeur atteinte"
    End If
  End If
End Sub

super ca marche merci infiniment pour votre aide

amicalment meryem

Re,

A bientôt

Rechercher des sujets similaires à "erreur vba"