Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
664to668
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
664to668
664to668
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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
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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige