Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Émettre son

10 réponses
Avatar
JeanDetrep
Bonjour,
je souhaiterais, lorsque le résultat d'une cellule est positif, qu'un
son soit émis. Dans une formule simple par ex. SI(A1 =1;.........
Je ne sais pas si cela est possible n'y comment faire tout en restant le
plus simple possible.
Merci d'avance.
Je suis sous Win10 - Excel 2007.
--
JeanDetrep

10 réponses

Avatar
MichD
Bonjour,

Je te donne un exemple. Si dans la plage A1:A10, tu entres la valeur 1,
un son se fera entendre.

Fais un clic droit sur l'onglet de la feuille et choisis la commande
"Visualiser le code", et tu copies la procédure suivante:

Tu peux adapter la plage de cellules A1:A10 par celle de ton choix.

Dans la ligne de code suivante :
Call Beep(400, 500)

400 représente la fréquence en hertz du son, cette valeur doit être
entre 37 et 32,767.
500 représente la durée de l'émission du son. L'unité est en milliseconde.

'-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Range("A1:A10")

If Not Intersect(Rg, Target) Is Nothing Then
For Each C In Rg
If C.Value = 1 Then
Call Beep(400, 400)
End If
Next
End If
End Sub
'-----------------------

Dans la fenêtre de l'éditeur de code, tu dois ajouter un "Module
standard". Pour ce faire, barre des menus / insertion / Module /
et tu copies le code suivant dans le haut du module.

'------------------------
Public Declare Function Beep Lib "kernel32" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
'------------------------

MichD
Avatar
JeanDetrep
Le 11/02/2016 11:36, MichD a écrit :


Bonjour,

Je te donne un exemple. Si dans la plage A1:A10, tu entres la valeur 1,
un son se fera entendre.

Fais un clic droit sur l'onglet de la feuille et choisis la commande
"Visualiser le code", et tu copies la procédure suivante:

Tu peux adapter la plage de cellules A1:A10 par celle de ton choix.

Dans la ligne de code suivante :
Call Beep(400, 500)

400 représente la fréquence en hertz du son, cette valeur doit être
entre 37 et 32,767.
500 représente la durée de l'émission du son. L'unité est en milliseconde.

'-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Range("A1:A10")

If Not Intersect(Rg, Target) Is Nothing Then
For Each C In Rg
If C.Value = 1 Then
Call Beep(400, 400)
End If
Next
End If
End Sub
'-----------------------

Dans la fenêtre de l'éditeur de code, tu dois ajouter un "Module
standard". Pour ce faire, barre des menus / insertion / Module /
et tu copies le code suivant dans le haut du module.

'------------------------
Public Declare Function Beep Lib "kernel32" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
'------------------------

MichD




Bonjour,
Je viens d'effectuer cette Macro et cela fonctionne si je tape 1 dans la
cellule concernée ("A1:A10"), mais si le 1 s'affiche suite au résultat
d'un calcul, le son n'est pas émis. Je ne comprends pas pourquoi!

--
JeanDetrep
Avatar
Jacquouille
Bonjour

Il suffit de savoir quand la macro analyse la cellule.
Si c'est à l'ouverture du dossier, alors A1 n'est pas encore égal à 1,
puisque dedans, c'est le texte d'une formule.
Si la macro analyse la plage en fin de travail, p.ex. avant la fermeture, ou
alors, après le calcul de A1, cela devrait être différent.

Du moins, pense-je ....
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"JeanDetrep" a écrit dans le message de groupe de discussion :
n9mmrp$1jgq$

Le 11/02/2016 11:36, MichD a écrit :


Bonjour,

Je te donne un exemple. Si dans la plage A1:A10, tu entres la valeur 1,
un son se fera entendre.

Fais un clic droit sur l'onglet de la feuille et choisis la commande
"Visualiser le code", et tu copies la procédure suivante:

Tu peux adapter la plage de cellules A1:A10 par celle de ton choix.

Dans la ligne de code suivante :
Call Beep(400, 500)

400 représente la fréquence en hertz du son, cette valeur doit être
entre 37 et 32,767.
500 représente la durée de l'émission du son. L'unité est en milliseconde.

'-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Range("A1:A10")

If Not Intersect(Rg, Target) Is Nothing Then
For Each C In Rg
If C.Value = 1 Then
Call Beep(400, 400)
End If
Next
End If
End Sub
'-----------------------

Dans la fenêtre de l'éditeur de code, tu dois ajouter un "Module
standard". Pour ce faire, barre des menus / insertion / Module /
et tu copies le code suivant dans le haut du module.

'------------------------
Public Declare Function Beep Lib "kernel32" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
'------------------------

MichD




Bonjour,
Je viens d'effectuer cette Macro et cela fonctionne si je tape 1 dans la
cellule concernée ("A1:A10"), mais si le 1 s'affiche suite au résultat
d'un calcul, le son n'est pas émis. Je ne comprends pas pourquoi!

--
JeanDetrep


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Avatar
MichD
La macro que j'ai suggérée est une procédure événementielle. Dans ce cas
précis, elle réagit au changement de valeur (ou dès qu'une cellule est
passée en mode édition soit par l'appui sur la touche F2 ou par un
double-clic), et lors de la validation de cette dernière, la macro se
déclenche automatiquement sans avoir recours à un quelconque bouton de
commande.

Attention, cette procédure ne se déclenche pas si la modification de la
cellule émane d'une mise à jour de la formule qu'elle contient.


Le 13/02/16 07:17, Jacquouille a écrit :
Bonjour

Il suffit de savoir quand la macro analyse la cellule.
Si c'est à l'ouverture du dossier, alors A1 n'est pas encore égal à 1,
puisque dedans, c'est le texte d'une formule.
Si la macro analyse la plage en fin de travail, p.ex. avant la
fermeture, ou alors, après le calcul de A1, cela devrait être différent.

Du moins, pense-je ....
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"JeanDetrep" a écrit dans le message de groupe de discussion :
n9mmrp$1jgq$

Le 11/02/2016 11:36, MichD a écrit :


Bonjour,

Je te donne un exemple. Si dans la plage A1:A10, tu entres la valeur 1,
un son se fera entendre.

Fais un clic droit sur l'onglet de la feuille et choisis la commande
"Visualiser le code", et tu copies la procédure suivante:

Tu peux adapter la plage de cellules A1:A10 par celle de ton choix.

Dans la ligne de code suivante :
Call Beep(400, 500)

400 représente la fréquence en hertz du son, cette valeur doit être
entre 37 et 32,767.
500 représente la durée de l'émission du son. L'unité est en
milliseconde.

'-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Range("A1:A10")

If Not Intersect(Rg, Target) Is Nothing Then
For Each C In Rg
If C.Value = 1 Then
Call Beep(400, 400)
End If
Next
End If
End Sub
'-----------------------

Dans la fenêtre de l'éditeur de code, tu dois ajouter un "Module
standard". Pour ce faire, barre des menus / insertion / Module /
et tu copies le code suivant dans le haut du module.

'------------------------
Public Declare Function Beep Lib "kernel32" _
(ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
'------------------------

MichD




Bonjour,
Je viens d'effectuer cette Macro et cela fonctionne si je tape 1 dans la
cellule concernée ("A1:A10"), mais si le 1 s'affiche suite au résultat
d'un calcul, le son n'est pas émis. Je ne comprends pas pourquoi!

Avatar
Patrick
Hello,

j'ai fais ça aussi dans le temps mais ça devient vite casse pieds :)
Patrick
Avatar
MichD
Pour ceux que la chose intéresse, il y a un petit exemple donné
sur le site de John Walkenbach ici :

http://spreadsheetpage.com/index.php/tip/playing_a_sound_based_on_a_cells_value/
Avatar
JeanDetrep
Le 13/02/2016 17:11, MichD a écrit :


Pour ceux que la chose intéresse, il y a un petit exemple donné
sur le site de John Walkenbach ici :

http://spreadsheetpage.com/index.php/tip/playing_a_sound_based_on_a_cells_value/



Bonsoir,
Merci beaucoup à tous. Comme je le pensais cela dépasse mes compétences
et je vais donc en rester là.
Bon W.E.

--
JeanDetrep
Avatar
therealtom
Le jeudi 11 Février 2016 à 10:54 par JeanDetrep :
Bonjour,
je souhaiterais, lorsque le résultat d'une cellule est positif, qu'un
son soit émis. Dans une formule simple par ex. SI(A1 =1;.........
Je ne sais pas si cela est possible n'y comment faire tout en restant le
plus simple possible.
Merci d'avance.
Je suis sous Win10 - Excel 2007.
--
JeanDetrep


Bonjour,

Je recherche un moyen pour pouvoir vérifier à partir d'une même feuille de calcul les différents codes barres entrés par scan, afin d'identifier les codes barres erronés (ceux présentant moins de 10 chiffres), et les nouveaux codes barres entrants.

Pour résumé:
- je présente une feuille de calcul ayant de nombreuses colonnes avec les codes barres en fonctions des dates d'entrées et d'expéditions.
- lorsque j'entre une valeur à partir du scan, j'aimerais pouvoir émettre un son puis ouvrir une boite de dialogue (MsgBox) lorsque le code barre est nouveau ou non valide. De plus je recherche à différentier ces deux problèmes avec le message qui lui correspond.

Je suis un mini mini mini débutant en VBA. Votre aide me serait vraiment précieuse.

J'avais essayé la Macro de MichD, mais elle ne respecte qu'une des deux conditions, et le message ne s'arrête jamais. Comment cela ce fait-il?
Pouvez-vous m'aider ?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Range("A2:ZZ500")

If Not Intersect(Rg, Target) Is Nothing Then
For Each C In Rg
If 0 < C.Value < 999999999 Then
MsgBox "Le code barre entré est erroné, veuillez réitérer l'opération SVP"
Call Beep(400, 400)
End If
Next
End If
End Sub

Merci par avance de votre aide.

Bonne journée
Avatar
therealtom
Le jeudi 11 Février 2016 à 10:54 par JeanDetrep :
Bonjour,
je souhaiterais, lorsque le résultat d'une cellule est positif, qu'un
son soit émis. Dans une formule simple par ex. SI(A1 =1;.........
Je ne sais pas si cela est possible n'y comment faire tout en restant le
plus simple possible.
Merci d'avance.
Je suis sous Win10 - Excel 2007.
--
JeanDetrep


Bonjour,

Je recherche un moyen pour pouvoir vérifier à partir d'une même feuille de calcul les différents codes barres entrés par scan, afin d'identifier les codes barres erronés (ceux présentant moins de 10 chiffres), et les nouveaux codes barres entrants.

Pour résumé:
- je présente une feuille de calcul ayant de nombreuses colonnes avec les codes barres en fonctions des dates d'entrées et d'expéditions.
- lorsque j'entre une valeur à partir du scan, j'aimerais pouvoir émettre un son puis ouvrir une boite de dialogue (MsgBox) lorsque le code barre est nouveau ou non valide. De plus je recherche à différentier ces deux problèmes avec le message qui lui correspond.

Je suis un mini mini mini débutant en VBA. Votre aide me serait vraiment précieuse.

J'avais utiilisé la macro de Mich D, mais elle ne respecte qu'une condition, et le message ne s'arrête jamais. Comment pui-je l'améliorer?


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Range("e;A2:ZZ500"e;)

If Not Intersect(Rg, Target) Is Nothing Then
For Each C In Rg
If 0 < C.Value < 999999999 Then
MsgBox "e;Le code barre entré est erroné, veuillez réitérer l'opération SVP"e;
Call Beep(400, 400)
End If
Next
End If
End Sub

Merci par avance de votre aide.

Bonne journée
Avatar
MichD
Bonjour,

Juste pour toi!

Colle ce qui suit dans un module STANDARDD

'Déclaration de l'API de Windows dans le haut du module
'Selon ton environnement :

Declare PtrSafe Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As
Long

'OU

Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

'-----------------------------------------------------
Function BeepMe(C As Range) As String
Beep 400, 400
End Function
'-----------------------------------------------------

Dans une cellule, tu peux entrer une formule de ce type :

=SI(A2;BeepMe(A2);"")

Si en A2, tu as déjà 10 et que tu saisis 10 à nouveau, le beep ne se fait pas entendre.
Si tu as une autre valeur que 10 et que tu entres la valeur 10 en A2, alors beep.

MichD