Rapport de message :*
 

Re: Case à cocher et msgBox

Titre du sujet : Re: Case à cocher et msgBox
par myDearFriend! le 07/12/2008 00:33:52

Bonsoir Kelly,

Tu trouveras ci-joint ton classeur modifié en conséquence.

Pour les OptionButtons
- J'ai commencé par renommer tes OptionButtons en opt24 et opt36 pour ajouter de la clarté au projet.
- J'ai ensuite prédéfini opt24 à True par défaut (avec les OptionButtons, il en faut toujours un par défaut).
- Ensuite, j'ai ajouté les lignes suivantes à l'évènement Private Sub Valider_Click() dans le module de code du Userform :
If IsDate(DateDécision.Value) Then
    Range("M" & Derlig).Value = DateAdd("m", IIf(opt24.Value, 24, 36), DateDécision.Value)
End If

Pour le message d'alerte "Convention non trouvée"
- J'ai modifié ta procédure SearchNom() comme suit :
Sub SearchNom()
Dim R As Range
Dim Var As String

    Var = InputBox(Prompt:="Que recherchez-vous ?", Title:="Recherche d'une convention")
   
    If Var = "" Then Exit Sub   'clic sur Annuler
    Set R = Cells.Find(What:=(Var), After:=ActiveCell, _
        LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder _
        :=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
        )
    If Not R Is Nothing Then
        R.Select
    Else
        MsgBox "La convention n'existe pas !"
    End If
End Sub


Deux remarques si tu le permets :

- Renommer les contrôles est une bonne idée, tu l'as fait d'ailleurs (sauf pour les OptionButtons). Toutefois, pour les noms d'objet, comme pour les variables, les caractères accentués sont toujours déconseillés. Tu devrais remplacer ChargéOpérations par ChargeOperations (sans accent) par exemple.

- Je te conseille vivement de lire l'article VBA et les variables, d'utiliser Option Explicit et de déclarer TOUTES tes variables (dans le bon type). Par ailleurs, par convention, les déclarations de variable se font toujours en tête de procédure (et non au milieu du code).

Cordialement,