Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Zeo63 Userform avec renouvellement ou pas selon choix

Zeo63

XLDnaute Nouveau
Bonjour,

Je rencontre quelques difficultés pour mener à bien mon idée. Je m'explique

J'aurai aimé faire un Userform au lancement du Excel en fonction d'une date le 1 de chaque mois par exemple, jusque la pas trop compliqué mais dans l'Userform je voulais mettre bouton oui et non :
-oui je veux répéter le message d'alerte
-non mettre fin au message d'alerte mais qu'il soit quand même renouvelé pour le prochain mois soit le 1ier

Je sais pas si c'est assez compréhensible

Pour la création de l'Userform ça reste facile pour faire les boutons aussi mais c'est la formule SI oui ça fait ça SI non ça fait ça que j'arrive difficilement a comprendre

Si quelqu'un peut m'aidez ça serai super

En vous remerciant

Bien cordialement
 

Pièces jointes

  • UserForm.xlsm
    13.3 KB · Affichages: 13

AC045364

XLDnaute Junior
Allo Zeo63,
Le UserForm ne peut conserver des valeurs comme OUI (répéter) ou NON (ne pas répéter).
Ces valeurs doivent être conservées sur une feuille.
Donc il faut choisir une cellule qui contiendra une de ces valeurs et ensuite afficher le UserForm si la valeur de la cellule est OUI et ne pas l'afficher si la valeur est NON.
J'espère que c'est clair
Daniel
 

GALOUGALOU

XLDnaute Accro
bonsoir aco15364 bonsoir zeo63 bonsoir le forum

dans l'exemple ci-dessous, deux cellules sont réservées, D1 et E1
à l'ouverture du classeur, une macro compare les deux valeurs. si elles sont identiques, il ne se passe rien.
Si elles sont différentes, une alerte et une proposition d'annulation. l'alerte sera renouvelée au mois suivant
dans le vba module
VB:
Sub test()
If Cells(1, 4) <> Cells(1, 5) Then
If MsgBox("Alerte, Voulez-vous annuler cette information pour le mois en cours ?", vbYesNo) = vbYes Then
Cells(1, 5) = Month(Date)
End If
End If
End Sub
dans le vba classeur
VB:
Private Sub Workbook_Open()
Sheets("Feuil1").Cells(1, 4) = Month(Date)
Call test
UserForm1.Show
End Sub
cdt
galougalou
 

Pièces jointes

  • Copie de UserForm.xlsm
    17.4 KB · Affichages: 7

fanch55

XLDnaute Barbatruc
Bonjour à tous,
Sinon une autre voie :
Déclarer un nom au niveau Classeur avec la date d'alerte prévisionnelle :
Utiliser un CheckBox à la place des optionbuttons
Mettre le code ci-contre dans l'Userform,
La date d'alerte modifiée ou non sera conservée dans le classeur ...
VB:
Dim Mdate As Date
Private Sub CheckBox_Disabled()
    With CheckBox1
        .Locked = True
        .Caption = "Prochaine Alerte le " & [Alerte]
        .MousePointer = fmMousePointerNoDrop
    End With
End Sub
Private Sub CheckBox1_Click()
    Names("Alerte").Value = Mdate
    CheckBox_Disabled
End Sub

Private Sub UserForm_Initialize()
    If CDate([Alerte]) <= Date Then
        Mdate = DateAdd("m", 1, [Alerte])
        CheckBox1.Locked = False
        CheckBox1.Caption = "Reporter l'alerte au " & Mdate
    Else
        CheckBox_Disabled
    End If
End Sub
Mettre le code ci_contre dans celui de la feuille concernée
Code:
Private Sub Worksheet_Activate()

    If Date >= CDate([Alerte]) Then UserForm1.Show

End Sub


 

Pièces jointes

  • Copie de UserForm.xlsm
    17.8 KB · Affichages: 6

Zeo63

XLDnaute Nouveau
Bonjour à tous,

Super je vous en remercie pour ces aides, je vais tester tout ça et comprendre la signification de quelques lignes car je ne les ai jamais utilisé

Encore merci à tout le monde ^^
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…