Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MsgBox ersetzen???

Forumthread: MsgBox ersetzen?

MsgBox ersetzen?
12.09.2005 14:41:40
Markus
Hallo zusammen,
dieses Makro gibt mir das Ergebnis in einer MsgBox an. Das muss ich jedes mal bestätigen. Gibt es eine Möglichkeit das Ergebnis anders anzuzeigen, wie z. B. in einem Kommentar, So dass der Kommentar direkt verschwindet, wenn ich die Zelle verlasse?
Danke vorab.
Gruß
Markus
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim zelle As Range
Dim wert As String
Dim bereich As Range
Set bereich = Sheets("TAbelle1").Range("a8:a15")
If Intersect(Target, Range("c10:c13")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
For Each zelle In bereich
If zelle = Target.Offset(0, -2) Then wert = wert & zelle.Offset(0, 3) & Chr(13)
Next
MsgBox wert
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox ersetzen?
12.09.2005 14:49:23
Matthias
Hallo Markus,
wie wär's mit der Statusleiste?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim zelle As Range
Dim wert As String
Dim bereich As Range
Set bereich = Sheets("TAbelle1").Range("a8:a15")
If Not Intersect(Target, Range("c10:c13")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
For Each zelle In bereich
If zelle = Target.Offset(0, -2) Then wert = wert & zelle.Offset(0, 3) & " * "
Next
Application.StatusBar = wert
Else
Application.StatusBar = False
End If
End Sub

Gruß Matthias
Anzeige
AW: MsgBox ersetzen?
12.09.2005 14:58:52
Matthias
Hallo Markus,
oder erstelle ein Textfeld aus der Zeichnen-Symbolleiste:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim zelle As Range
Dim wert As String
Dim bereich As Range
Set bereich = Sheets("Tabelle1").Range("a8:a15")
If Not Intersect(Target, Range("c10:c13")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
For Each zelle In bereich
If zelle = Target.Offset(0, -2) Then wert = wert & zelle.Offset(0, 3) & vbLf
Next
With Me.Shapes("Text Box 1")
.TextFrame.Characters.Text = wert
.Left = Target.Left + Target.Width
.Top = Target.Top + Target.Height
.Visible = True
End With
Else
With Me.Shapes("Text Box 1")
.Visible = False
End With
End If
End Sub

Gruß Matthias
Anzeige
AW: MsgBox ersetzen?
12.09.2005 15:33:48
Markus
Danke!!!
klappt hervoragend. Wie kann ich denn dieses Makro in einer Tabelle auf mehrere Spalten anwenden. Die Quelldaten ändern sich monatlich. Wenn ich das Makro erneut einfüge und die Bezüge änder, mekert er mich an, weil es zwei Makros gibt mit dem Befehl "SelectionChange". Kann man das irgendwie umgehen. Ich müsste dieses Makro nämlich für 12 Spalten wiederholen.
Danke
Gruß
Markus
Anzeige
AW: MsgBox ersetzen?
12.09.2005 15:43:45
Matthias
Hallo Markus,
kopiere den Code innerhalb der Prozedur Selection_Change.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim zelle As Range
Dim wert As String
Dim bereich As Range
Set bereich = Sheets("Tabelle1").Range("a8:a15")
'erste Spalte:
If Not Intersect(Target, Range("c10:c13")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
For Each zelle In bereich
If zelle = Target.Offset(0, -2) Then wert = wert & zelle.Offset(0, 3) & vbLf
Next
With Me.Shapes("Text Box 1")
.TextFrame.Characters.Text = wert
.Left = Target.Left + Target.Width
.Top = Target.Top + Target.Height
.Visible = True
End With
'zweite Spalte:
ElseIf Not Intersect(Target, Range("D10:D13")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
For Each zelle In bereich
If zelle = Target.Offset(0, -2) Then wert = wert & zelle.Offset(0, 3) & vbLf
Next
With Me.Shapes("Text Box 1")
.TextFrame.Characters.Text = wert
.Left = Target.Left + Target.Width
.Top = Target.Top + Target.Height
.Visible = True
End With
'dritte Spalte:
ElseIf Not Intersect(Target, Range("E10:E13")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
For Each zelle In bereich
If zelle = Target.Offset(0, -2) Then wert = wert & zelle.Offset(0, 3) & vbLf
Next
With Me.Shapes("Text Box 1")
.TextFrame.Characters.Text = wert
.Left = Target.Left + Target.Width
.Top = Target.Top + Target.Height
.Visible = True
End With
'weder noch:
Else
With Me.Shapes("Text Box 1")
.Visible = False
End With
End If
End Sub

Gruß Matthias
Anzeige
TOP!!! Läuft perfekt!!! Danke!!! o.T.
12.09.2005 16:03:59
Markus
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige