Hej! Hej Staffan, Hej!Händelser i Excel
Jag vill få en händelse att utlösas när användaren ändrar innehållet i en kalkylbladscell i Excel, men får inte riktigt kläm på det.
Jag har provat följande:
Private Sub Worksheet_Change(ByVal Target As Range)
If Worksheets("Blad1").Cells(5, 4).Value = "Hej" Then
MsgBox "hej"
End If
End Sub
Har inte programmerat händelser tidigare.
Är det någon som kan hjälpa mig på traven?
/StaffanSv: Händelser i Excel
Lite hjälp på traven...
Om du specifierar för excel att du vill starta händelsen msgbox "HEJ" endast när användaren ändrar i cell E4 kan du inkludera i IF satsen Target.Address = önskad cell. Om du har fler krav på inmatningen kan du addera dessa i IF satsen med ett AND imellan varje kriteria.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$E$4" And Target.Value = "Hej" Then
MsgBox "Hej"
End If
End Sub
Nackdelen med denna är om du markerar ett större område (> 1 cell) får du ett felmeddelande. Går förmodligen att koda bort med typ "on error resume next".
En annan variant är att lägga in en textbox på kalkylbladet från verktygslådan. Om du inte vill att textboxen skall synas kan du formatera om utseendet på den så att den inte syns.
Private Sub TextBox1_Change()
If TextBox1.Value = "Hej" Then
MsgBox "Hej"
End If
End Sub
Hoppas att din häst travar lite bättre nu... / KimmoSv: Händelser i Excel
Jo, tack, den travar lite bättre nu.
Jag läste mig också till lite värdefulla tips från denna länk:
http://agent.microsoft.com/exceldev/articles/xlevnts.htm
Jag var ju tvungen att skapa klassmodul vilket jag inte heller hade gjort.
Alltid lär man sig något.
/Staffan