XL 2019 office 2019

Andre51

XLDnaute Nouveau
Bonjour tout le monde,
j'ai un tableau excel avec dates d'anniversaires proposées par Patrick Dupont et je le remercie pour son aide, mais impossible d'effectuer une modification de l'Userform, j'ai l'impression que les 3 évènements figurent dans le même userform.
Ce que je voudrais c'est que ces 3 userforms soient séparés, un premier me signalant la veille de l'évènement, un second signalant le jour de l'évèment et éventuellement un troisième pour le lendemain, je voulais aussi ajouter un gif animé .
Inutile de vous préciser que je ne suis pas doué en informatique vous l'avez certainement deviné, je me débrouille un peu avec Excel mais dans ce cas c'est largement au-dessus de mes compétences.
Je propose 2 pièces jointes pour que vous ayez une idée de ma recherche, j'espère que ma demande sera réalisable,
je remercie d'avance les personnes qui m'apporteront leur aide.
Andre51
 

Pièces jointes

  • 3 patrick Dupont Anniversaires -ver patricktoulon.xlsm
    35.5 KB · Affichages: 10
  • Modèle.jpg
    Modèle.jpg
    245.7 KB · Affichages: 18
  • joyeux-anniversaire-icegif-9.gif
    joyeux-anniversaire-icegif-9.gif
    33 KB · Affichages: 20
Solution
C
Re André

Je comprends mieux, mais Tu sais il n'est jamais trop tard pour apprendre, c'est bon pour les neurones ;)

Les 2 fichiers sont à mettre dans le même dossier

Au plaisir

Andre51

XLDnaute Nouveau
ouah, çà c'est un tube !!! d'aspirine bien sûr 🤣, mais surtout Patrick ne me propose pas cet air d'anthologie, j'ai le MP3 ou WAW, le problème c'est la formule, et je ne peux pas joindre le fichier car ces 2 extensions ne sont pas acceptées.
 

patricktoulon

XLDnaute Barbatruc
essaie ca pour jouer un Wav

tout droit sorti de ma cave
VB:
joueSonWindowSapiVoice()
    Const wavFile = "C:\Windows\Media\Windows Exclamation.wav"
    Dim oVoice: Set oVoice = CreateObject("SAPI.SpVoice")
    Dim oSpFileStream: Set oSpFileStream = CreateObject("SAPI.SpFileStream")
    oSpFileStream.Open wavFile
    oVoice.SpeakStream oSpFileStream
    oSpFileStream.Close
End Sub

ou bien ca
Code:
Sub JoueSonWindow3() 'lache VBA quand le son est fini (syncro)
    Application.ExecuteExcel4Macro "SOUND.PLAY( ,""C:\Windows\Media\Windows Exclamation.wav"")"
End Sub

sinon tu peux jouer les compositeur aussi
VB:
Declare Function midiOutClose Lib "winmm.dll" (ByVal hMidiOut As Long) As Long

 Declare Function midiOutOpen Lib "winmm.dll" (lphMidiOut As Long, ByVal uDeviceID As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long
 Declare Function midiOutShortMsg Lib "winmm.dll" (ByVal hMidiOut As Long, ByVal dwMsg As Long) As Long
 Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Dim hMidiOut As Long
Public lanote As Integer
Public Const durée As Integer = 250    ' millisecondes'

joue(notes_a_jouer, dur_n)
    Numéro = 0
    For Each noteG In notes_a_jouer
        Numéro = Numéro + 1
        Temps = dur_n(Numéro - 1)
        On Error GoTo fin
        midiOutClose hMidiOut    '------------- ferme le port midi pour arreter la note précédente
        midiOutOpen hMidiOut, 0, 0, 0, 0    ' ----------------ouvre le port pour la nouvelle note
        midiOutShortMsg hMidiOut, RGB(128, 51, 127)    'ici, le nombre 51 peut être changé(instrument)
        'par un nombre de 1 à 128
        lanote = 14 + CInt(noteG)    ' -----on calcule la note / l'octave
        note = RGB(144, lanote, 127)    '-----------------------astuce pour generer un entier long( la note)
        midiOutShortMsg hMidiOut, note    ' --------------------on envoie la note sur le port MIDI
        Sleep (Temps)
fin:
        midiOutClose hMidiOut
    Next
    midiOutClose hMidiOut
End Sub


Sub Au_clair_de_la_lune()
    notes_a_jouer = Array(51, 51, 51, 53, 55, 53, 51, 55, 53, 53, 51, _
                          51, 51, 51, 53, 55, 53, 51, 55, 53, 53, 51, _
                          53, 53, 53, 53, 48, 48, 53, 51, 50, 48, 46, _
                          51, 51, 51, 53, 55, 53, 51, 55, 53, 53, 51)

    dur_n = Array(350, 350, 350, 600, 600, 600, 300, 300, 300, 300, 600, _
                  300, 300, 300, 300, 600, 600, 300, 300, 300, 300, 600, _
                  300, 300, 300, 300, 600, 600, 300, 300, 300, 300, 600, _
                  300, 300, 300, 300, 600, 600, 300, 300, 300, 300, 600)
    joue notes_a_jouer, dur_n
End Sub
 
Dernière édition:

Andre51

XLDnaute Nouveau
Bonjour Patrick,
j'ai entré à partir de ton fichier mes 76 dates d'anniversaires, mais lorsque j'ouvre le fichier, le Userform " aujourd'hui" est bloqué, j'ai un anniversaire au 31 octobre mais je suis obligé de faire OK pour les 76 dates alors qu'il n'y qu'une seule date qui devrait apparaître, je ne situe pas l'erreur et la musique ne fonctionne pas.
J'ai changé la présentation avec des labels différents, cette présentation me plaît bien. Je t'envoie le fichier en pièce jointe pour que tu vois où se trouve l'erreur.
 

Pièces jointes

  • 0 Anniversaires v patricktoulon.xlsm
    44.8 KB · Affichages: 4
  • Sans titre 1.jpg
    Sans titre 1.jpg
    212.9 KB · Affichages: 14

patricktoulon

XLDnaute Barbatruc
bonjour
je te comprends plus là
tu a dis je veux 3 userforms différents
ben t'en a 3
tu dis je suis obligé de faire ok pour les 76 dates
la bonne blague les deux colonnes de date on la même date avec des années différentes
bien sur que tu l'a 76 fois ma fois :rolleyes::rolleyes::rolleyes::rolleyes::rolleyes:

et je viens de le tester
j'ai bien 76 affichages de l'userform "aujourdhui " et je n'ai pas de bugs

après si c'est pas cela que tu voulais il faut t'exprimer un peu plus clairement

des fois je vous comprends plus moi hein :rolleyes:🤪 c'est en devenir marteau
 

patricktoulon

XLDnaute Barbatruc
re
et en plus c'est des nombre maintenant dans la colonne "nom"😂😂
1635681657993.png
 

Andre51

XLDnaute Nouveau
Bonsoir Patrick,
tu as raison je ne suis pas clair dans mes explications, si tu as fait le test et que çà marche avec toi, çà signifie que je suis au sommet de la nullité.
J'ai décidé d'arrêter et de plus me prendre la tête avec ce fichier.
Je te remercie pour ton aide, j'en profite aussi pour remercier tous ceux qui ont participé BrunoM45 et une autre personne dont je n'ai pas retenu le nom.
Je ne quitte pas pour autant Excel Downloads, d'ailleurs je me suis abonné, j'aurai peut-être besoin dans l'avenir car je reconnais qu'on a affaire à des gens compétents.
Je vous souhaite à tous une bonne soirée et surtout continuer votre bon boulot.
André
 

Andre51

XLDnaute Nouveau
Ne pense pas çà Patrick, ton projet tu l'as mené au bout, c'est moi qui ne suis pas à la hauteur, mais ton
aide m'a été précieuse;
Mon fichier fonctionnera quand même mais pas avec les éléments que je désirais, l'essentiel c'est que çà ne m'empêche pas de dormir, il y a plus grave.
Pour être honnête, j'avoue regretter car j'aurai aimé aimé que çà fonctionne, mais l'informatique c'est un monde trop complexe pour moi.
 

patricktoulon

XLDnaute Barbatruc
bon allez suite a ton mp je vois que tu a encore changé de tableau
bon
1° ta musique je l'ai nommé "musique.mp3" je la place dans le même dossier que le classeur
2° comme tu a changé de tableau ca correspondait plus donc je change la sub verifanniversaire
bon il faut bien la jouer cette musique le userform aujourd'hui s'en charge la musique s’arrête quand tu ferme le userform même si elle est pas fini et recommence bien entendu a chaque anniversaire

donc la sub verif dans le module
VB:
Sub VérifierAnniv()
    Dim I&, ligne As Range, Dn, DnX, Da, UF As Object
    With Range("tableau1").ListObject
        For I = 1 To .ListRows.Count
            Set ligne = .ListRows(I).Range
            Set UF = Nothing
            Dn = ligne.Cells(5).Value
            Da = CDate(ligne.Cells(3).Value)
            DnX = CDate(Format(Dn, "dd/mm/") & Format(Da, "yyyy"))

            If DnX - 1 = Da Then
                Set UF = hier
            ElseIf DnX = Da Then Set UF = aujourdhui
            ElseIf DnX + 1 = Da Then Set UF = demain
            End If
            DoEvents
            If Not UF Is Nothing Then
                With UF
                    .nom = ligne(1)
                    .prenom = ligne(2)
                    .an = ligne(4)
                    .Show
                End With
            End If
        Next
    End With

End Sub

Function coul_XL_to_coul_HTMLX(couleur)
    Dim str0 As String, strf As String
    str0 = Right("000000" & Hex(couleur), 6): strf = Right(str0, 2) & Mid(str0, 3, 2) & Left(str0, 2)
    coul_XL_to_coul_HTMLX = "#" & strf & ""
End Function
et le code du userform aujoudhui
VB:
Dim player
Private Sub Cbn_OK_Click()
    Unload Me
End Sub

Private Sub UserForm_Activate()
    sPathGIF = ThisWorkbook.Path & "\JourAnniversaire.gif"

    With Me.WebBrowser1
        .Navigate "about:<html><center><body scroll='no' leftmargin=0 >" & _
                  "<img style=""width:100%;height:100%;"" src='" & sPathGIF & "'></img></body></center></html>"

        Do: DoEvents: Loop While .ReadyState < 4

        With .Document.getelementsbytagname("body")(0)
            .Style.Backgroundcolor = coul_XL_to_coul_HTMLX(Me.BackColor)
            .Style.MarginTop = 0
            .Style.MarginLeft = 0
        End With
    End With
playMP3 ThisWorkbook.Path & "\musique.mp3"
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
playerStop
End Sub

Sub playMP3(chemin)
Set player = CreateObject("new:WMPlayer.OCX.7")
player.URL = chemin
End Sub
 
Sub playerStop()
player.Controls.Stop
End Sub
et en avant !! c'est qu'un tango ;)
je met le fichier quand même sait on jamais ;)😂🤣
 

Pièces jointes

  • Anniversaires v patricktoulon.xlsm
    31.6 KB · Affichages: 12

Discussions similaires

Réponses
2
Affichages
299
D
  • Question
XL 2019 Userform
Réponses
15
Affichages
1 K