1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("I11:I350"), Target) Is Nothing And Target.Value <> "" Then
choix_densité = MsgBox("Voulez-vous conserver la valeur de la base de données?", vbYesNo, "Message de Confirmation")
If choix_densité = vbYes Then
Exit Sub
Else
vTarget = Target.Address
Userform1.Load
'Indique l'unité dans le label de la userforme1
Userform1.Lbl_unitdensit.Caption = Target.Offset(0, -1).Value
'Permet de mettre le curseur directement dans la textbox
Userform1.Ttb_newdensit.SetFocus
Userform1.Show
End If
End If
End Sub
Private Sub CmdB_Valid_Click()
Dim b As Range,c As Range
If Not Right(Ttb_newdensit, 1) <> "" Then '?? Test suffisant?
MsgBox "Veuillez entrer une valeur de densité"
Ttb_newdensit.SetFocus
Exit Sub
End If
Set b = Sheets("Trame Gestion Déchets").Range(vTarget) 'colonne densité de la feuille Trame
With Sheets("Données MEDECO type")
Set c = .Columns(3).Find(b.Offset(0, -3).Value, LookIn:=xlValues, lookat:=xlWhole) 'cherche le matériaux dont la cellule densité est sélectionnée
If Not c Is Nothing Then 'Si le métériaux existe déjà dans feuille donnée
c.Offset(0, 1).Value = Ttb_newdensit 'on remplace l'ancienne valeur
b.Value = c.Offset(0, 1).Value 'on récuppère la nouvelle densité dans feuille trame
Else 'Si matéraux n'existe pas
.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Value = b.Offset(0, -2).Value 'on l'ajoute dans feuille données
.Cells(Rows.Count, "A").End(xlUp).Offset(0, 1).Value = Ttb_newdensit 'et sa densité
b.Value = .Cells(Rows.Count, "A").End(xlUp).Offset(0, 1).Value 'on récuppère la densité du nouveau matériaux dans feuille trame
End If
Set c = Nothing
End With
Set b = Nothing
End Sub |
Partager