Initialisation userform

Fermé
cedric0715 Messages postés 210 Date d'inscription mercredi 25 février 2015 Statut Membre Dernière intervention 6 mai 2018 - Modifié par cedric0715 le 1/12/2016 à 09:02
cedric0715 Messages postés 210 Date d'inscription mercredi 25 février 2015 Statut Membre Dernière intervention 6 mai 2018 - 1 déc. 2016 à 13:02
Bonjour,

j ai besoin d’aide
j ai une condition if avec message
si ma condition est fausse je voudrais que mon message s'affiche et d' est lors que j'appui sur OK de mon message cela réinitialise mon userform et l'utilisateur doit recommence et biensur les donnée ne rentre pas dans le tableau .

de la manière que je l'ai fais cela ferme mon userform et en plus cela écrit ma ligne

ci dessous mon code merci de votre aide

If .Range("O" & l_info).Value <> lanote And CheckBox1.Value = False Then
MsgBox ("Note différente de l'année dernière")
If Reponse = vbOK Then
CheckBox1.SetFocus
Valid = 0
End If



1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
1 déc. 2016 à 10:58
Bonjour,

cela réinitialise mon userform
Avez-vous deja un evenement initialize ou activate pour cette userform qui ferait une raz des objets ??
0
cedric0715 Messages postés 210 Date d'inscription mercredi 25 février 2015 Statut Membre Dernière intervention 6 mai 2018
1 déc. 2016 à 13:02
désoler mais avec recherche j'ai fais autrement code suivant et afin que vous compreniez j ai mis aussi le code complet pour calcule de la note et validation
ma condition fonctionne bien pour le tableau recap
mais elle ne fonctionne pas pour le tableau donne équipement il me change la note je voudrais qu'il garde la note si se trouve dans la même condition

code modifier
Set ws = ThisWorkbook.Worksheets("TABLEAU RECAP")
l_info = ws.Cells.Find(ComEQUI.Value, , , xlWhole).Row
If ws.Range("O" & l_info).Value > lanote And CheckBox1.Value = False Then
If MsgBox("Note différente de l'année dernière", vbOK Or vbCancel) = vbOK Or vbCancel Then
Sheets("TABLEAU RECAP").Range("b" & Sheets("TABLEAU RECAP").Range("b65000").End(xlUp).Row).EntireRow.ClearContents
MsgBox ("Recommencer l'evaluation")


code complet
'enregistrement et protection blocage des donnees'

Private Sub CommandButton1_Click()

Dim l_info As Integer
Dim note_1 As String, note_2 As String, lanote As String
Dim ws As Worksheet
'protection feuille
Dim cell As Range
Dim pl As Range
Worksheets("TABLEAU RECAP").Visible = True
Worksheets("TABLEAU RECAP").Unprotect ("cedric")
Sheets("TABLEAU RECAP").Cells.Locked = True
For Each cell In Sheets("TABLEAU RECAP").Range("M2")
If cell.MergeCells = True Then
Set pl = cell.MergeArea
cell.UnMerge
cell.Locked = False
pl.Merge
Else
cell.Locked = False
End If
Next cell
Worksheets("TABLEAU RECAP").Protect ("cedric"), DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True


With ThisWorkbook.Worksheets("TABLEAU RECAP")
l_info = .Cells(.Rows.Count, 2).End(xlUp).Row + 1


.Range("B" & l_info).Value = ComEQUI 'libelle equipement'
.Range("c" & l_info).Value = Textlocal 'code local"
.Range("D" & l_info).Value = ComRESP 'Nom du responsable'
.Range("E" & l_info).Value = CDate(TextDATEAM) 'date du constat'
.Range("F" & l_info).Value = CDate(TextMISE) 'date de mise en service'
.Range("G" & l_info).Value = CInt(TextDUREVIE.Value) 'Duree de vie theorique'
.Range("H" & l_info).Value = CDate(TextREMPL) 'Date theorique de remplacement '
.Range("I" & l_info).Value = CInt(TextDURVIERESI.Value) 'Duree de vie residuelle '
.Range("J" & l_info).Value = TextESTIMREMPL 'Duree de vie residuelle '
.Range("K" & l_info).Value = CInt(TextRESUETAT.Value) 'note de etat equipement'
.Range("l" & l_info).Value = CInt(TextRESUCRIT.Value) 'note de criticite equipement'



If CheckBox1.Value Then
'cas case cochee
.Range("p" & l_info).Value = "x"
.Range("q" & l_info).Value = CDate(Textboxdatechange) 'date de remplacement équipement
MsgBox ("attention imformer au equipe gmao le changement eqipement")
Else
'cas case non cochee
'rien ?
End If

If UserFormpri.CheckBox1.Value = True Then
userform2.Show
Else
'rien
End If

If .Range("O" & l_info).Value <> lanote And CheckBox1.Value = False Then
MsgBox ("Note différente de l'année dernière")
Else

End If

With .Range("M" & l_info)
'formulation
.FormulaR1C1 = "=IF(RC[-2]<=21,""Mauvais"",IF(RC[-2]<=43,""Usuel"",IF(RC[-2]<=64,""Bon"")))"
'équivaut à un collage spécial valeur
.Value = .Value
note_1 = .Value
End With

With .Range("N" & l_info)
'formulation
.FormulaR1C1 = "=IF(RC[-2]<=21,""Faible"",IF(RC[-2]<=43,""Moyenne"",IF(RC[-2]<=64,""Forte"")))"
'équivaut à un collage spécial valeur
.Value = .Value
note_2 = .Value
End With

Select Case True
Case note_1 = "Mauvais" And note_2 = "Faible"
lanote = "B"
Case note_1 = "Mauvais" And note_2 = "Moyenne"
lanote = "C"
Case note_1 = "Mauvais" And note_2 = "Forte"
lanote = "C"

Case note_1 = "Usuel" And note_2 = "Faible"
lanote = "A"
Case note_1 = "Usuel" And note_2 = "Moyenne"
lanote = "B"
Case note_1 = "Usuel" And note_2 = "Forte"
lanote = "B"

Case note_1 = "Bon" And note_2 = "Faible"
lanote = "A"
Case note_1 = "Bon" And note_2 = "Moyenne"
lanote = "A"
Case note_1 = "Bon" And note_2 = "Forte"
lanote = "A"

End Select


.Range("O" & l_info).Value = lanote 'donne de la note dans le tableau recap

Set ws = ThisWorkbook.Worksheets("Donnée équipement")
l_info = ws.Cells.Find(ComEQUI.Value, , , xlWhole).Row 'donne de la note dans le tableau équipement
ws.Range("G" & l_info).Value = lanote

'si mon chexbox est cocher et que la note est superieur a l'annee d'avant message et fermeture de userform et sans validation

Set ws = ThisWorkbook.Worksheets("TABLEAU RECAP")
l_info = ws.Cells.Find(ComEQUI.Value, , , xlWhole).Row
If ws.Range("O" & l_info).Value > lanote And CheckBox1.Value = False Then
If MsgBox("Note différente de l'année dernière", vbOK Or vbCancel) = vbOK Or vbCancel Then
Sheets("TABLEAU RECAP").Range("b" & Sheets("TABLEAU RECAP").Range("b65000").End(xlUp).Row).EntireRow.ClearContents
MsgBox ("Recommencer l'evaluation")

End If

Set ws = ThisWorkbook.Worksheets("Donnée équipement")
l_info = ws.Cells.Find(ComEQUI.Value, , , xlWhole).Row
If ws.Range("G" & l_info).Value > lanote And CheckBox1.Value = False Then



End If
End If
End With

Me.hide

Unload UserFormpri

End Sub
0