1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
If Target.Count = 1 And Target.Column = 3 And Target.Row > 1 Then 'la ligne 1 pour les titres
If Target.Offset(0, -2).Value <> "" Then 'Si la cellule matériax n'est pas vide
If MsgBox("Voulez-vous modifier la densité du matériaux: " & Target.Offset(0, -2).Value & "?", vbOKCancel) = vbOK Then
With Sheets("données")
Set c = .Columns(1).Find(Target.Offset(0, -2).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 = InputBox("Nouvelle densité de: " & Target.Offset(0, -2).Value) 'on rempolace l'ancienne valeur
Target.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 = Target.Offset(0, -2).Value 'on l'ajoute dans feuille données
.Cells(Rows.Count, "A").End(xlUp).Offset(0, 1).Value = InputBox("densité de: " & Target.Offset(0, -2).Value) 'et sa densité
Target.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
End If
End If
End If
End Sub |
Partager