Probleme inscription valeur dans deux tableu diferent
Bonjour,
j ai un problème dans l'inscription de mon résultat , des lors que ma note est supérieur a l’année précédente et que mon checkbox n'est pas cocher cela supprime bien ma ligne dans mon tableau Recap mais cela change ma note "tableau donne équipement "ce que je ne veux pas " et je n arrive pas du tout a résoudre mon problème
je ne vois pas ou est mon erreur
merci de votre aide
j ai 3 conditions voir le code ci dessous
je souhaite a toutes et tous sur le forum de passé de bonne fête
encore merci a tous de nous aidez
Private Sub CommandButton1_Click()
Dim l_info As Integer
Dim L As Integer
Dim note_1 As String, note_2 As String, lanote As String
Dim ws As Worksheet
Dim ds 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'
.Range("t" & l_info).Value = "cliquer pour validation"
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 de l'equipement")
Else
'cas case non cochee
'rien ?
End If
If UserFormpri.CheckBox1.Value = True Then
userform2.TextBox6.Value = Me.ComEQUI.Value 'colle valeur équipement dans le texbox de l'uesrform2 et l'appeler
userform2.Show
Else
'rien
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
'si mon chexbox est cocher et que la note est superieur a l'annee d'avant message et fermeture de userform et sans validation dans le tableau recap
Set ds = ThisWorkbook.Worksheets("Donnée équipement")
L = ds.Cells.Find(ComEQUI.Value, , , xlWhole).Row
ds.Range("G" & L).Value = lanote
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 ds = ThisWorkbook.Worksheets("Donnée équipement")
L = ds.Cells.Find(ComEQUI.Value, , , xlWhole).Row
If ds.Range("G" & L).Value = lanote = lanote And CheckBox1.Value = False Then
ds.Range("G" & L).Value = lanote
End If
Set ds = ThisWorkbook.Worksheets("Donnée équipement")
L = ds.Cells.Find(ComEQUI.Value, , , xlWhole).Row 'si la note est inferieur a la donne de G "donne equipement" et chexbox pas coché rien faire
If ds.Range("G" & L).Value < lanote And CheckBox1.Value = False Then
End If
Set ds = ThisWorkbook.Worksheets("Donnée équipement")
L = ds.Cells.Find(ComEQUI.Value, , , xlWhole).Row 'si la note est superieur a la donne dans G "donnée equipement" et chexbox coché message et inscription de la nouvelle note
If ds.Range("G" & L).Value < lanote And CheckBox1.Value = True Then
ds.Range("G" & L).Value = lanote
End If
End If
End With
Me.hide
Unload UserFormpri
End Sub
'saisie des options'
Private Sub OptionButton1_Change()
Call note_etat
End Sub
Private Sub OptionButton2_Change()
Call note_etat
End Sub
Private Sub OptionButton3_Change()
Call note_etat
End Sub
Private Sub OptionButton4_Change()
Call note_etat
End Sub
Private Sub OptionButton5_Change()
Call note_etat
End Sub
Private Sub OptionButton6_Change()
Call note_etat
End Sub
Private Sub OptionButton7_Change()
Call note_etat
End Sub
Private Sub OptionButton8_Change()
Call note_etat
End Sub
Private Sub OptionButton9_Change()
Call note_etat
End Sub
Private Sub OptionButton10_Change()
Call note_etat
End Sub
Private Sub OptionButton11_Change()
Call note_etat
End Sub
Private Sub OptionButton12_Change()
Call note_etat
End Sub
Private Sub OptionButton13_Change()
Call note_crit
End Sub
Private Sub OptionButton14_Change()
Call note_crit
End Sub
Private Sub OptionButton15_Change()
Call note_crit
End Sub
Private Sub OptionButton16_Change()
Call note_crit
End Sub
Private Sub OptionButton17_Change()
Call note_crit
End Sub
Private Sub OptionButton18_Change()
Call note_crit
End Sub
Private Sub OptionButton19_Change()
Call note_crit
End Sub
Private Sub OptionButton20_Change()
Call note_crit
End Sub
Private Sub OptionButton21_Change()
Call note_crit
End Sub
Private Sub OptionButton22_Change()
Call note_crit
End Sub
Private Sub OptionButton23_Change()
Call note_crit
End Sub
Private Sub OptionButton24_Change()
Call note_crit
End Sub
'calcul des notes'
Private Sub note_etat()
Dim i As Integer, etat1 As Integer, etat2 As Integer, etat3 As Integer
i = 0
etat1 = 0
While i <= 3
etat1 = etat1 - (i + 1) * CInt(Frame2.Controls(i).Value)
i = i + 1
Wend
i = 0
etat2 = 0
While i <= 3
etat2 = etat2 - (i + 1) * CInt(Frame3.Controls(i).Value)
i = i + 1
Wend
i = 0
etat3 = 0
While i <= 3
etat3 = etat3 - (i + 1) * CInt(Frame4.Controls(i).Value)
i = i + 1
Wend
TextRESUETAT = etat1 * etat2 * etat3
End Sub
Private Sub note_crit()
Dim i As Integer, crit1 As Integer, crit2 As Integer, crit3 As Integer
i = 0
crit1 = 0
While i <= 3
crit1 = crit1 - (i + 1) * CInt(Frame6.Controls(i).Value)
i = i + 1
Wend
i = 0
crit2 = 0
While i <= 3
crit2 = crit2 - (i + 1) * CInt(Frame7.Controls(i).Value)
i = i + 1
Wend
i = 0
crit3 = 0
While i <= 3
crit3 = crit3 - (i + 1) * CInt(Frame8.Controls(i).Value)
i = i + 1
Wend
TextRESUCRIT = crit1 * crit2 * crit3
End Subj ai modifier mon code au niveau des valeur qui doivent s’inscrire dans le tableau donne équipement mais cela ne marche toujours pas
aidez moi
Set ws = ThisWorkbook.Worksheets("TABLEAU RECAP")
l_info = ws.Cells.Find(ComEQUI.Value, , , xlWhole).Row
If ws.Range("O" & l_info).Value = "" Then 'donne de la note dans le tableau recap
ws.Range("o" & l_info).Value = lanote
ElseIf ws.Range("O" & l_info).Value > lanote And CheckBox1.Value = False Then
If MsgBox("Note différente de l'année dernière", vbOK) = vbOK Then
Sheets("TABLEAU RECAP").Range("b" & Sheets("TABLEAU RECAP").Range("b65000").End(xlUp).Row).EntireRow.ClearContents
MsgBox ("Recommencer l'evaluation")
End If
[color=#FF0000] Set ds = ThisWorkbook.Worksheets("Donnée équipement")
L = ds.Cells.Find(ComEQUI.Value, , , xlWhole).Row
If ds.Range("G" & L).Value = lanote = lanote And CheckBox1.Value = False Then
ds.Range("G" & L).Value = lanote
ElseIf ds.Range("G" & L).Value < lanote And CheckBox1.Value = False Then 'si la note est inferieur a la donne de G "donne equipement" et chexbox pas coché rien faire
ElseIf ds.Range("G" & L).Value > lanote And CheckBox1.Value = True Then 'si la note est superieur a la donne dans G "donnée equipement" et chexbox coché message et inscription de la nouvelle note
ds.Range("G" & L).Value = lanote
Else
ds.Range("G" & L).Value = lanote
End If[/color]
End If
End Withmerci
bonjour
mon avis perso de moi tout seul et que personne n'est obligé de suivre (il faut préciser que je fais le suivi des équipements de plusieurs entreprises) : supprimer tout le VBA, faire une table des équipements et une table des interventions. Un petit coup de RECHERCHEV pour lier les 2 tables si besoin.
Tout le reste se fait par des filtres et des TCD.
mébon, si tu préfères le VBA...
jmd a écrit :bonjour
mon avis perso de moi tout seul et que personne n'est obligé de suivre (il faut préciser que je fais le suivi des équipements de plusieurs entreprises) : supprimer tout le VBA, faire une table des équipements et une table des interventions. Un petit coup de RECHERCHEV pour lier les 2 tables si besoin.
Tout le reste se fait par des filtres et des TCD.
mébon, si tu préfères le VBA...
Je suis assez d'accord avec jmd (que je salue) parce que un fichier sera traité en VBA si excel ne sait pas le faire (somme des gras par ex) ou bien si on a de très gros fichiers
P.