Besoin d'aide

Résolu
MACLOUFB - 14 janv. 2013 à 09:45
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 17 janv. 2013 à 16:20
Bonjour à toutes et à tous
Je suis débutant en VBA et ceci est mon premier message
Je travail avec EXCEL 2003
Ma question :
Sur un dossier excel "concours hippique"
en cellule Z4 se trouve le total des points
en cellule AB4 se trouve le temps par chrono
Quand je copie les résultats par mon USF cela me génère un classement automatique
Mon but est de lancer ma macro son wave "Son4"
a chaque changement du premier au classement

Merci pour votre aide
Cordialement
Francis

25 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 janv. 2013 à 12:38
Salut

En effet, le VB de Excel est du VBA - Catégorie modifiée

Les titres des questions posées sur le forum servent aux membres à faire des recherches sur leurs problèmes - avec ce genre de titre, il ne trouveront rien, alors que si tu avais utilisé, par exemple, "Jouer un son sous Excel", cela aurait pu aiguiller les autres vers la solution qui arrivera sur ta question.
Penses-y pour la prochaine fois. Merci

Je résume donc ta question :
"Mon but est de lancer ma macro son wave "Son4" a chaque changement du premier au classement"
A part le fait qu'on ne comprenne pas trop le début de la phrase ("lancer ma macro son wave "Son4"" ne veut rien dire), ta question soulève deux questions :
-1- Sais-tu comment détecter le changement du premier au classement ?
-2- Sais-tu jouer un son WAV ?

-1- Ne connaissant rien de ton appli, difficile de te répondre précieusement. Le plus simple étant de stocker/mémoriser, dans un coin, le contenu de la cellule "1er au classement" à chaque fois que tu modifies cet affichage + comparer la mémo avec le nouveau premier (avant de refaire une mémo)
-2- En tapant "jouer son vba" dans la recherche de source (sauf .Net), on trouve des méthodes permettant ... de jouer un son.
Par exemple, <celle-ci> - qu'il faudra adapter à ton besoin.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
14 janv. 2013 à 10:43
Bonjour,
1) tu es ici dans la section :
Forum > Visual Basic 6

prends dorénavant soin d'ouvrir tes discussion VBA dans la section Langages dérivés > VBA
2) je refuse personnellement de traiter une question ouverte avec un tel titre ("besoin d'aide" !) qui ne révèle rien du problème ! Si tu es là : on s'en doute, que tu as besoin d'aide !!!



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Merci pour votre réponse
Vous vous doutez bien, etant mon premier forum sur VBA, que mes choix pour poster mon message ne soient peut etre pas les bonnes, et que le sujet "besoin d'aide" n'est peut etre pas le bon

Alors milles excuses

Merci
0
Merci pour ton explication

Voici le code que j'ai mis
Mon probleme est qu'il me lance la macro a chaque fois que je copie le résultat par mon USF et que si le premier du classement ne change pas la macro est lancée


Private Sub Worksheet_Change(ByVal Target As Range)
If [Z4<=0] And [AB4<AB5] Then


Application.EnableEvents = False
Son4
Application.EnableEvents = True
End If

End Sub




Merci pour votre aide ( avec indulgence )
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 janv. 2013 à 13:17
Bon, tu sembles avoir résolu le problème de la détection.
Reste le son.
A quoi correspond Son4 ?
Une de tes procédures, je pense.
Qu'y a t-il dedans ?
As-tu essayé le code de l'exemple que je t'ai passé ?
Voir aussi dans <les snippets>
0
Merci pour ta réponse
Ma macro "Son4" correspon à objet son wave inserer dans chaque feuille par l'objet 36 et dont le fichier est dans mon pc.

A ce jour la commande de ma macro s'effectue par un bouton sur mon USF mais cela ne me convient pas je souhaite que cela soit automatique dés le changement du premier au classement

Les cellule Z4 et AB4 correspondent aux points et chrono du premier

La macro "Son4" est dans mon module 6

Voila j'espère avoir donner le max d'infos
Merci pour votre aide
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 janv. 2013 à 14:04
Pas clair.
Essaye de donner des infos, sinon on ne pourra rien.

Si tu as une "macro" nommée Son4, montre nous le code !

"la commande de ma macro s'effectue par un bouton"
Donne nous le code du bouton !

""Son4" correspon à objet son wave inserer dans chaque feuille"
Donc, à l'origine, c'est un fichier ?

As-tu essayé les codes que je t'ai passé ?

Sans plus de détail ou de réponses aux questions que je te pose, je ne répondrai plus.
0
Je vous rappel que c'est mon premier forum sur ce sujet alors soyez indulgent
je n'ai pas tous les automatismes necessaires pour me faire aider
Mais merci quand meme.

Alors voila:

1/ Ma macro
Sub Son4()
'
' Son4 Macro
' Macro enregistrée le 18/12/2012 par BIGBEN
'

'
ActiveSheet.Shapes("Object 36").Select
Selection.Verb Verb:=xlPrimary
End Sub
Dans module 8

2/ Mes codes sur ma feuille

Private Sub BTN_Efface_Click()

'=== Efface les resultat de la feuille

'
Range("A4:Y80,AA4:AB80").Select ' efface les données mais pas le Total point en Z
Range("A4").Activate
Selection.ClearContents

End Sub
Sub CommandButton3_click()
Call imprimer
End Sub
Private Sub CommandButton1_Click()

Range("AD3:AG80").Select
Range("AD3").Activate
Selection.ClearContents

End Sub

Private Sub classement_Click()
Dim L As Integer
L = Range("A65536").End(xlUp).Row
Range("A4:AB" & L).Select
If Range("A4").Value = "" Then
MsgBox ("Pas de Participants")
Else
Selection.Sort Key1:=Range("Z4"), Order1:=xlAscending, Key2:=Range("AB4") _
, Order2:=xlAscending ', key3:=Range("F2"), order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal
End If
End Sub
Private Sub Lance_appli_click()
UserForm1.Show
End Sub

Private Sub CommandButton2_Click()

Range("AI1:AP82").Select
Range("AI1").Activate


End Sub

Private Sub CommandButton4_Click()

Range("AD1:AH80").Select
Range("AD1").Activate


End Sub

Sub CommandButton5_Click()
Call imprimer
End Sub

Sub CommandButton6_click()
Call Son4
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If [Z4<=Z5] And [AB4<AB5] Then


Application.EnableEvents = False
Son4
Application.EnableEvents = True
End If

End Sub
voila
merci
0
Utilisateur anonyme
14 janv. 2013 à 21:52
Bonjour,

Je ne vois rien qui force ton object 36 à jouer le son. En jouant au devin, ton object 38, me semble être soit un fichier son pur et dur, soit un conteneur OLE qui encapsule un lien vers un programme externe chargé de jouer ton fichier. Mais rendu-là, c'est bien difficile d'en dire plus.

Je présume qu'en faisant clic-droit sur ton object 36 tu devrais pouvoir afficher les propriétés de ton object 36. Il devrait bien y avoir un chemin d'accès à un exécutable ou des événements qui devraient provoquer l'exécution du son, d'une façon ou d'une autre.

Au pire, tu pourrais remplacer ton object 38 par Windows Media Player. Il est toujours installé avec un activex facilement utilisable avec VB-VBa.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 janv. 2013 à 12:25
Indulgent, je veux bien, mais tu ne réponds pas aux questions qu'on te pose pour essayer de comprendre ce que tu as sous les yeux !

Je t'ai posé ces questions auxquelles j'attends toujours les réponses :

-1- "l'objet 36" dont tu parles pointe surement vers un fichier WAV situé sur ta machine. En connais-tu le chemin et le nom ?

-2- Une fois que tu auras cette information, peux-tu appliquer et tester les liens que je t'ai passé pour jouer un son WAV (mieux vaut utiliser le second lien, celui des snippets dans ma deuxième réponse).
Est-ce que cela fonctionne ?
Si cela fonctionne, tu peux supprimer ton "objet 36"

-3- Nouvelle question :
Comment, par quel menu, as-tu créé "l'objet 36" ?
Explique en détail les manips que tu as fait.
Tant qu'on ne sait pas de quoi il s'agit, difficile de le reproduire.

-4- Nouvelle question :
Est-ce que ton fichier Excel est personnel ou devra t-il être déplacé sur une autre machine ?
Si tu dois le dupliquer ailleurs, il faudra aussi faire suivre le fichier WAV. Donc, je te préconise de mettre ce fichier (ou une copie) sur le même répertoire que ton fichier Excel : tu l'auras sous la main au moment de faire la copie/déplacement.

Si tu as des difficultés à appliquer cet exemple, explique ce que tu ne comprends pas.
Si tu dois coller du code dans ce forum, merci d'utiliser la coloration syntaxique : Tu colles ton code, tu le sélectionnes puis tu cliques sur la 3ème icone à partir de la droite de la fenêtre de saisie (en choisissant le langage VB) : Plus esthétique, mais surtout conserve les indentations (espaces en tête de ligne) = plus facile à relire.
0
Bonjour,
Bon je vais essayer d'etre claire dans ma demande
a savoir :

Dans mon dossier "concours hippique" j'ai un USF avec chrono, fautes etc....
Ensuite je valide les données par un bouton et elles se copies sur ma feuille
A4 = nom du cavalier
B4 = nom du cheval
C4 = nom du club
A ce jour lorsque le premier du classement change en A4,B4,C4 je déclenche ma macro "Son4"
par un bouton sur mon USF.
Je souhaite donc que le lancement de la macro se fasse automatiquement lorsque le texte de A4,B4 et C4 change
puisque dans le classement conditionnel le premier se positionne automatiquement en A4,B4 et C4
Alors pour l'objet 36 :
Inserer objet..son wave avec fichier .wave présent dans mon répertoire.
J'ai testé ton lien cela fonctionne
Mon dossier peut effectivement se déplacer et a chaque fois je copie/coller les fichiers son avec

Voila et encore merci d'etre patient avec moi
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 janv. 2013 à 00:44
Je ne suis pas agressif, mes excuses si je t'ai heurté.
Le principe d'un forum est de trouver rapidement une réponse à un problème. Plus la solution tarde à venir, moins il y a de chance de trouver une solution, faute de lecteurs (qui ne vont pas remonter dans les précédentes questions pour trouver un mystère à résoudre).
C'est pour cela que je te demande d'être précis et concis.

Je suis, je le répète, perturbé par le fait qu'il y ait 2 questions dans ta question : Surveiller le classement et jouer un son.
Donc tu as résolu ton problème de son !
Est-ce que ton problème de surveillance de classement est lui aussi résolu ?

On te demande seulement d'être clair sur tes questions.
A chaque fois, tu nous sors ce que tu veux que ton programme fasse, mais jamais ta propre analyse du problème.
Un problème est souvent composé de plusieurs petits problèmes.
C'est à toi de décomposer et de trouver une solution (*) à chacun d'eux pour qu'au final cela fonctionne comme tu le souhaites.
(*) solution que l'on veut bien te fournir, à condition de connaitre le problème.
C'est pour éviter ce genre de discussion sans fin qu'on demande aux membres de ne poser qu'une seule question par post, ce qui impose d'avoir fait une première analyse du problème.

Rappel : c'est un forum de développeurs, le résultat est secondaire. L'important est la manière de programmer, de trouver la composition qui permettra d'arriver à nos fins.

Un truc qui peut t'aider : le déboggage pour suivre ce que fait ton programme :
- F9 sur une ligne de code; elle change de couleur
Le programme s'y arrêtera au prochain passage.
Lors de l'arrêt, survole avec la souris tes variables pour visualiser leur contenu, ou va dans la fenêtre de debogage (Ctrl-G) et tape
? maVariable
pour qu'elle s'inscrive dans la fenêtre.
- F8 (VB6) ou F10 (.Net) pour avancer d'une ligne de code
- F5 pour continuer normalement
0
Bonjour,
Merci pour toutes des explications.

En effet mon pb son est presque réglé

Toutefois je bute sur le code pour detecter un changement de texte en A4 afin que cla lance automatiquement ma macro tu type:

Si changement de texte en A4 alors macro sinon rien en sachant qu'en A4 se trouve le nom du cavalier qui passe premier en fonction de ses résultats

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A4")) Is Nothing Then
        
        
        Call Son4
    End If
    
    
End Sub


Et cela ne fonctionne pas
Voila mon pb
Merci
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 janv. 2013 à 08:53
Bonjour,
SI :
- ta procédure son4 est bonne et accessible
- cet évènement est bien celui de la feuille active
- mais son4 n'est pas appelée
=>> cela voudrait dire que l'évènement Change n'est pas déclenché. Il ne l'est par exemple pas si la modification de A4 est le résultat de l'exécution d'une formule Excel mise en A4



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 janv. 2013 à 09:24
Ta syntaxe est correcte.
Comme le dit ucfoutu, peut-$etre ne passes-tu pas par cette Sub.
Pour le savoir, simple clic sur ta ligne If Not Application ... + touche F9 : la ligne passe en orange.
Lance ton programme et génère un changement.
Normalement, le debogueur va s'arrêter là. F8 pour avancer d'une ligne pour voir tout ce qu'il fait.
Sinon, cela veut dire que tu n'as pas choisi la bonne feuille.

Essaye de supprimer "Application" de ta ligne.
Normalement, Intersect fonctionne sans référentiel.

Ton code va détecter qu'une modification a été faite dans A4, mais je ne te garantis pas que ce veuille dire que le contenu de la cellule ait changé.
Il me semble que le simple fait de faire un "Enter" sur une cellule suffit à déclencher Worksheet_Change
Tu vas vite le savoir dès que cela fonctionnera.
Si tel est le cas, il te faudra mémoriser le contenu de A4 dans un coin et vérifier s'il a été modifié pour déclencher "Son4" + remémoriser la nouvelle valeur.

Par acquit de conscience, peux-tu nous montrer le contenu de ta Sub "Son4"
0
Merci pour vos réponses
Voici mon code "Son4" placé dans module 8
Sub Son4()
'
' Son4 Macro
' Macro enregistrée le 18/12/2012 par BIGBEN
'

'
    ActiveSheet.Shapes("Object 36").Select
    Selection.Verb Verb:=xlPrimary
End Sub


Et les codes mis sur ma feuille

Private Sub BTN_Efface_Click()

'=== Efface les resultat de la feuille

'
    Range("A4:Y80,AA4:AB80").Select ' efface les données mais pas le Total point en Z
    Range("A4").Activate
    Selection.ClearContents
  
End Sub
Sub CommandButton3_click()
Call imprimer
End Sub
Private Sub CommandButton1_Click()

  Range("AD3:AG80").Select
    Range("AD3").Activate
    Selection.ClearContents

End Sub

Private Sub classement_Click()
Dim L As Integer
L = Range("A65536").End(xlUp).Row
Range("A4:AB" & L).Select
 If Range("A4").Value = "" Then
 MsgBox ("Pas de Participants")
 Else
    Selection.Sort Key1:=Range("Z4"), Order1:=xlAscending, Key2:=Range("AB4") _
        , Order2:=xlAscending ', key3:=Range("F2"), order3:=xlAscending, _
        Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
        :=xlSortNormal
 End If
End Sub
Private Sub Lance_appli_click()
UserForm1.Show
End Sub

Private Sub CommandButton2_Click()

    Range("AI1:AP82").Select
    Range("AI1").Activate
    
    
End Sub

Private Sub CommandButton4_Click()

    Range("AD1:AH80").Select
    Range("AD1").Activate
    
    
End Sub

Sub CommandButton5_Click()
Call imprimer
End Sub

Sub CommandButton6_click()
Call Son4
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A4")) Is Nothing Then
        
        
        Call Son4
    End If
    
    
End Sub



Je rappel que le nom du cavalier est envoyer par mon USF lorsque je fait copier les résultats par un bouton

Donc si A4 est vide pas de macro
Si A4 contient le nom du cavalier alors macro
si le second cavalier a des résultats inferieur il doit donc se placer en 2ème
Si le 3ème cavalier est le meilleur il doit se placer en A4" classement conditionnel" et la et seulement la déclenche la macro


Voila pour le son je gère mais le code pour identifier un nouveaux premier en A4 je bloque

Merci pour votre aide
0
Je viens d'éfectuer les testes que vous me demander

La macro se déclenche uniquement lorsque l'on passe de A4 vide a A4 contenue

Si nouveaux premier il est effectivement en A4 mais comme la cellule A4 contient déja du texte alors la macro ne se déclenche pas
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 janv. 2013 à 13:32
Sub Son4 : Je ne vois pas de changement
Tu n'as pas appliqué les modifs que tu m'as dit donctionnelles.
Mais bon, si le CommandButton6_click fonctionne, cela devrait aussi fonctionner ailleurs.

Si, Worksheet_Change se déclenche lorsque le contenu de n'importe quelle cellule est modifiée.
Si tu as bien lu le détail de ce que je t'ai passé à propos des méthode de débogage, ton programme s'est donc arrêté sur la ligne If Not Application...
Que se passe t-il si tu utilises F8 ?
Sur quelle ligne passe le programme ?
Son4 ou End If ?

Je suppose que USF veut dire UserForm.
Comment, avec quelle instruction, as-tu lancé l'ouverture de cette USF ?
Parce que, en VBA, si tu ouvres une USF sans paramétrage particulier, le focus est donné à la USF et il ne reviendra sur la feuille que lorsque cette USF aura été refermée.
Ce qui peut expliquer ton problème.

Si tu as utilisé la méthode USF.Show, regarde dans l'aide pour comprendre le paramètre optionnel 'vbModeLess' que tu peux ajouter derrière afin de garder la feuille active malgré tout.

Autre solution : Puisque c'est ta USF qui s'occupe de fournir les infos, elle peut aussi s'occuper de surveiller les changements dans A4 et jouer le son si nécessaire.
0
Avec les modifs
aprés F9 il supprime application et passe sur End If

Voici le code de mon USF UserForm1

Private fin_chrono As Long
Public EpreuveAdresse As String
Public EpreuveNom As Variant

Private Sub BTN_Annule_Click()
Unload Me
End Sub

Private Sub BTN_Copie_resultat_Click()

Dim Ligne As Long
Dim Point As Integer
Dim L As Integer

Point_obstacle = 0
Point_Refus = 0

Ligne = [B65536].End(xlUp).Row + 1
Range("AB" & Ligne) = Chrono.Caption      ' Chrono
Range("A" & Ligne) = Liste_cavalier            ' cavalier
Range("B" & Ligne) = Cheval               ' Cheval
Range("C" & Ligne) = Ecurie               ' Ecurie

'=== Decompte des points=======
 
      '========== Points fautes obstacles
   If UserForm1.Obstacle_1 = True Then
    Range("D" & Ligne) = 4
        End If
   If UserForm1.Obstacle_2 = True Then
    Range("E" & Ligne) = 4
        End If
   If UserForm1.Obstacle_3 = True Then
    Range("F" & Ligne) = 4
         End If
   If UserForm1.Obstacle_4 = True Then
    Range("G" & Ligne) = 4
         End If
   If UserForm1.Obstacle_5 = True Then
    Range("H" & Ligne) = 4
         End If
    If UserForm1.Obstacle_6 = True Then
    Range("I" & Ligne) = 4
         End If
    If UserForm1.Obstacle_7 = True Then
    Range("J" & Ligne) = 4
        End If
    If UserForm1.Obstacle_8 = True Then
    Range("K" & Ligne) = 4
        End If
    If UserForm1.Obstacle_9 = True Then
    Range("L" & Ligne) = 4
        End If
    If UserForm1.Obstacle_10 = True Then
    Range("M" & Ligne) = 4
        End If
    If UserForm1.Obstacle_11 = True Then
    Range("N" & Ligne) = 4
        End If
    If UserForm1.Obstacle_12 = True Then
    Range("O" & Ligne) = 4
        End If
        
    '======== POINTS REFUS
        
     If UserForm1.refus_1 = True Then
     Range("P" & Ligne) = 4
        End If
     If UserForm1.refus_2 = True Then
     Range("Q" & Ligne) = 4
        End If
            '======= REFUS 3 100 point éliminé
            If UserForm1.refus_3 = True Then
            Range("R" & Ligne) = 100
            Range("AA" & Ligne) = "Eliminé(e)"
        End If
        
    '======== CHUTE Elimination
    If UserForm1.Chute_1 = True Then
    Range("S" & Ligne) = 100
    Range("AA" & Ligne) = "Eliminé(e)"
    End If
    '========== FAUTES Techniques
    If UserForm1.Faute_Tech_1 = True Then
    Range("T" & Ligne) = 4
        End If
   If UserForm1.Faute_Tech_2 = True Then
    Range("U" & Ligne) = 4
        End If
   If UserForm1.Faute_Tech_3 = True Then
    Range("V" & Ligne) = 4
         End If
   If UserForm1.Faute_Tech_4 = True Then
    Range("W" & Ligne) = 4
         End If
   If UserForm1.Faute_Tech_5 = True Then
    Range("X" & Ligne) = 4
         End If
         
        If UserForm1.Faute_Tech_Elimine = True Then
        Range("Y" & Ligne) = 100
        Range("AA" & Ligne) = "Eliminé(e)"
         End If
     
'======== TRIE en sortant============
'Dim L As Integer
L = Range("A65536").End(xlUp).Row
Range("A4:AB" & L).Select
 If Range("A4").Value = "" Then
 MsgBox ("Pas de Participants")
 Else
    Selection.Sort Key1:=Range("Z4"), Order1:=xlAscending, Key2:=Range("AB4"), Order2:=xlAscending
 
 End If
 

End Sub
Private Sub BTN_Depart_Click()
    CumulTimer = 0
    GoTimer = Timer
    'Précision de IntervalT à adapter selon possibilités d'affichage
    TimerOn IntervalT:=50                   'en millièmes de seconde
    
    BTN_Depart.Enabled = False
    BTN_Reprendre.Enabled = False
    BTN_Fin.Enabled = True
    BTN_Pause.Enabled = True
End Sub

Private Sub BTN_Pause_Click()
    TimerOff
    CumulTimer = CumulTimer + (Timer - GoTimer)
    
    BTN_Pause.Enabled = False
    BTN_Reprendre.Enabled = True
End Sub

Private Sub BTN_Reprendre_Click()
    GoTimer = Timer
    TimerOn IntervalT:=50                   'en millièmes de seconde
    
    BTN_Pause.Enabled = True
    BTN_Reprendre.Enabled = False
End Sub

Private Sub BTN_Fin_Click()
    TimerOff
    
    BTN_Depart.Enabled = True
    BTN_Pause.Enabled = False
    BTN_Reprendre.Enabled = False
    BTN_Fin.Enabled = False
    
    'MsgBox "Le chrono est de : " & Chrono.Caption & vbLf & vbLf & "Attention: cette valeur n'est pas numérique (= chaine de caractères) !"
End Sub

Private Sub CommandButton6_click()

End Sub

Private Sub Concurent_Click()

End Sub

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

Private Sub BTN_Depart_Click() ' Depart du Chrono
'Dim DEPART As Double
'Dim Temps As Double
'BTN_Depart.Enabled = False

'fin_chrono = 0
'DEPART = [now()]
'Do While fin_chrono = 0
    'Temps = [now()] - DEPART
        'If CheckBox1 = False Then
        'Chrono.Caption = WorksheetFunction.Text(Temps, "hh:mm:ss.00")
        'Else
        'Chrono.Caption = WorksheetFunction.Text(Temps, "hh:mm:ss")
    'End If
'DoEvents
'Loop

'End Sub
'Private Sub BTN_Fin_Click() 'Arrete le Chrono
'FIN
'End Sub

'==== SI CHUTE Arrete le Chrono
Private Sub Chute_1_Click() 'Case chute clic arrete le chrono
FIN
End Sub
'==== SI FAUTE Elimine Arrete le Chrono
Private Sub Faute_Tech_Elimine_Click() 'Case Faute tech elimine clic arrete le chrono
FIN
End Sub
'==== SI 3 refus Arrete le Chrono
Private Sub refus_3_Click() 'Case Refu 3 clic arrete le chrono
FIN
End Sub

Function FIN()
TimerOff
    BTN_Depart.Enabled = True
    BTN_Pause.Enabled = False
    BTN_Reprendre.Enabled = False
    BTN_Fin.Enabled = False
End Function




Private Sub Liste_cavalier_Change()
Dim EpreuveColonneCheval As String
Dim EpreuveColonneClub As String
Dim EpreuveColonneNuméro As String
'Dim EpreuveNom As Variant

EpreuveNom = ActiveWorkbook.ActiveSheet.Name
EpreuveColonneCheval = EpreuveNom & "!AE" 'Affiche le nom du cheval
EpreuveColonneClub = EpreuveNom & "!AF"   'Affiche le non du club
EpreuveColonneNuméro = EpreuveNom & "!AG"   'Affiche le Numéro

If Liste_cavalier.ListIndex = -1 Then Exit Sub

Me.Cheval.Value = Range(EpreuveColonneCheval & Liste_cavalier.ListIndex + 2)
Me.Ecurie.Value = Range(EpreuveColonneClub & Liste_cavalier.ListIndex + 2)
Me.Numéro.Value = Range(EpreuveColonneNuméro & Liste_cavalier.ListIndex + 2)

End Sub


Private Sub userForm_Initialize()
Dim T_limite As Double
Dim T_depasse As Double
'Dim EpreuveAdresse As String
'Dim EpreuveNom As Variant

Me.Liste_cavalier.ColumnCount = 3 'affecte 3 colonnes à la liste
Me.Nom_Epeuve = ActiveWorkbook.ActiveSheet.Name 'Affiche le nom de l'epreuve dans le Formulaire


EpreuveNom = ActiveWorkbook.ActiveSheet.Name 'Range("A1").Value
EpreuveAdresse = EpreuveNom & "!AD2:AF9" 'position de la liste
'MsgBox (EpreuveAdresse)
    

'========= Alimentation de la liste

Me.Liste_cavalier.RowSource = EpreuveAdresse & Sheets(EpreuveNom).Cells(1, 1).End(xlDown).Row

Me.Liste_cavalier.ColumnWidths = "130;75;60" 'Dimention des colone dans la liste
Me.Liste_cavalier.ListIndex = 0              ' affiche les données de la ligne 1

 
T_depasse = Sheets("Paramétres").Range("B2").Value
Me.Temps_depasse.Caption = WorksheetFunction.Text(T_depasse, "mm:ss.00")

T_limite = Sheets("Paramétres").Range("C2").Value
Me.Temps_limite.Caption = WorksheetFunction.Text(T_limite, "mm:ss.00")

T_Départ = Sheets("Paramétres").Range("D2").Value
Me.Temps_avant_départ.Caption = WorksheetFunction.Text(T_Départ, "mm:ss.00")

End Sub

Private Sub CommandButton10_Click()
Call Son3
End Sub

Private Sub CommandButton11_Click()
Call Son4
End Sub
Private Sub BTN_Suivant_Click()
    TimerOff
    Chrono.Caption = "00:00:00"
    Dim Ctrl As Control, TheNum As Byte
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.CheckBox Then
With Ctrl
.Value = False
End With
End If
Next Ctrl
End Sub


Voila et merci
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 janv. 2013 à 15:41
Ce que tu montres là, c'est le code contenu dans ta USF.
Relis ma question :
Comment, avec quelle instruction, as-tu lancé l'ouverture de cette USF ?
0
Rejoignez-nous