Macro et son windows ?

Bonsoir voici un bout de mon code qui copie des valeurs d'un tableau vers un autre tableau en colonne A.

Auriez-vous une macro qui puisse m'avertir par un son de windows, le remplissage d'une cellule A de la feuille "Rétas" ?

Merci à vous.

Sheets("Rétas").Range("A4:A203,G4:G203, H4:H203").ClearContents 
Dim dlg As Integer 
Dim cel As Range 
With Sheets("Références") 
For Each cel In .Range("B1:B" & .Range("B" & Rows.Count).End(xlUp).Row) 
'If UCase(cel.Value) <> .Range("G5") Then 
If UCase(cel.Value) <> .Range("G5") And UCase(cel.Value) <> .Range("G6") Then 
dlg = Sheets("Rétas").Range("A" & Rows.Count).End(xlUp).Row + 1 
Sheets("Rétas").Range("A" & dlg) = .Range("A" & cel.Row) 
Sheets("Rétas").Range("H" & dlg) = .Range("C" & cel.Row) 
Sheets("Rétas").Range("G" & dlg) = .Range("B" & cel.Row) 
End If 
Next 
Sheets("Rétas").Select 
End With 

Bonsoir,

Une API Windows permet de générer un bip.

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

Private Sub cmdBeep_Click()
    APIBeep 440, 300
End Sub

Bouben

Bonjour,

Pour émettre un signal sonore, tu peux simplement utiliser l'instruction Beep dans ton code.

Instruction à placer judicieusement et monte le son.

Cdlt.

Je ne pense pas avoir tout compris, bouben.

Je ne vois pas ou mettre ce code ?

Et Jean-Eric, je vais chercher car je ne vois pas.


Je joins un fichier basique pour être plus précis.

Dès qu'une cellule en A est pleine, je voudrais un son émis de windows.

Merci.

5classeur1.zip (11.13 Ko)

Bonjour,

La proposition qui utilise l'instruction Beep.

Cdlt.

11classeur1.zip (13.87 Ko)
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Not Target.Value = vbNullString Then Beep
    End If
End Sub

Merci ça fonctionne mais pas comme je le souhaite, pour une bonne raison c'est que dans mon code il y a cette ligne qui efface la page a chaque recherche et donc à chaque fois le pc sonnera. Est-ce possible de modifier cette ligne de code pour lui dire de copier qu'à partir de la comonne A suivante et vide ? Merci

Sheets("Rétas").Range("A4:A203,G4:G203, H4:H203").ClearContents

Bonjour,

Essaie :

Option Explicit
Public flag As Boolean

Public Sub DEMO()
Dim dlg As Integer
Dim cel As Range

    flag = False
    Sheets("Rétas").Range("A4:A203,G4:G203, H4:H203").ClearContents
   flag = True

    With Sheets("Références")
        For Each cel In .Range("B1:B" & .Range("B" & Rows.Count).End(xlUp).Row)
            'If UCase(cel.Value) <> .Range("G5") Then
            If UCase(cel.Value) <> .Range("G5") And UCase(cel.Value) <> .Range("G6") Then
                dlg = Sheets("Rétas").Range("A" & Rows.Count).End(xlUp).Row + 1
                Sheets("Rétas").Range("A" & dlg) = .Range("A" & cel.Row)
                Sheets("Rétas").Range("H" & dlg) = .Range("C" & cel.Row)
                Sheets("Rétas").Range("G" & dlg) = .Range("B" & cel.Row)
            End If
        Next
    End With

    Sheets("Rétas").Select

End Sub
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

   If flag = False Then Exit Sub

    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Not Target.Value = vbNullString Then Beep
    End If

End Sub
Rechercher des sujets similaires à "macro windows"