Initialisation userform

cedric0715 Messages postés 265 Statut Membre -  
cedric0715 Messages postés 265 Statut Membre -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    cela réinitialise mon userform
    Avez-vous deja un evenement initialize ou activate pour cette userform qui ferait une raz des objets ??
    0
    1. cedric0715 Messages postés 265 Statut Membre
       
      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