Hej, Ett exempel är: Använd eventet SelectionChange på det Tack, det var den koden jag testade. Funkar kanon! Då använder du istället eventet Worksheet_Activate Glömde att tacka för även detta, ni har hjälpt mig väldigt mycket. Är väldigt glad för det! Det här fungerar för mig Aha, mycket bättre! Blev lite konfys när jag såg ett annat namn för uttrycket, men då är jag med. Ah, det kanske är smartare än vad jag gjort nu (läste nånstans att det tvunget skulle ligga under workbook). Nu har jag skrivit in olika messagebox till de olika bladen i samma sub under workbook. Om du har samma text i din MsgBox så kan du anropa den från Message box
Har en, vad jag tror, ganska enkel fråga gällande skapande av message box. Tyvärr är mina VBA-kunskaper ytterst begänsade för att ens lösa detta.
Har ett kalkylblad där jag vill att en message box kommer upp om användaren klickar på cellerna N3:N3000.
Hur skriver jag den i VBA-miljön?
Hälsningar
Fredrik JohanssonSv: Message box
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'If they are double clicking in column A
If Target.Column = 1 Then
'Display the value in Column 26 of the same row they are double clicking in
MsgBox (Cells(Target.Row, 26).Value)
End If
End Sub
Sv: Message box
kaklylblad där du vill ha msgboxen.
Eventen finns när du tittar på kodfönstret för
kaklylbladet i dropdown till höger
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Range("N3:N3000"), Target) Is Nothing Then
MsgBox "Du har klickat inom området"
End If
End Sub
Sv:Message box
Om jag skulle vilja att en liknande funktion startade när man aktiverar ett blad, vad ändrar jag i koden då?
Hälsningar
FredrikSv: Message box
som finns i samma dropdown på bladets kodsida
Private Sub Worksheet_Activate()
' Din kod här
End Sub
Sv: Message box
Har bara en fråga till gällande detta och det är hur jag kan få fler rader i msgbox?
Hittade dessa koder, men de funkar dessvärre inte:
MessageBox.Show("aaaaaaa" & Environment.NewLine & "bbbbb")
MessageBox.Show("aaaaaaa" & vbCrLf & "bbbbb")
MessageBox.Show("aaaaaaa" + cstr(Environment.NewLine) + "bbbbb")
Koden, som jag lagt under ThisWorkbook ser för övrigt ut som (ifall det är något där som inte stämmer):
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "In-data" Then
MessageBox.Show ("aaaaaaa" + CStr(Environment.NewLine) + "bbbbb")
End If
End Sub
Hälsningar
FredrikSv:Message box
Notera att det i VBA heter MsgBox
och inte Messagebox.
De förslag du hittat är nog för .NET miljö
MsgBox "Ärendet " & vbCrLf & " hittades " & vbCrLf & " inte!"
Sv: Message box
Tack än en gång!Sv:Message box
Om du lägger koden på det blad det
gäller behöver du inte göra kontrollen vilket blad det är
Om du skulle byta namn på bladet kommer din kod inte att fungera utan ändring
Private Sub Worksheet_Activate()
MsgBox "Ärendet " & vbCrLf & " hittades " & vbCrLf & " inte!"
End Sub
Sv: Message box
Sv:Message box
resp. blads Worksheet_Activate
Makrot med MsgBoxen kan ligga i en vanlig modul
' På bladet
Private Sub Worksheet_Activate()
Call VisaMsgBox
End Sub
I en modul
Sub VisaMsgBox()
MsgBox "Ärendet " & vbCrLf & " hittades " & vbCrLf & " inte!"
End Sub
Om man vill ha olika text i MsgBoxen kan man
skicka med texten till suben för MsgBoxen
Då kan man ha olika texter på bladen
men ändå använda samma sub för visningen
' På bladet
Private Sub Worksheet_Activate()
Call VisaMsgBox("Ärendet " & vbCrLf & " hittades " & vbCrLf & " inte!")
End Sub
I en modul
Sub VisaMsgBox(InText As String)
MsgBox InText
End Sub