Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte aus anderem Tabellenblatt in MsgBox

Forumthread: Werte aus anderem Tabellenblatt in MsgBox

Werte aus anderem Tabellenblatt in MsgBox
20.11.2016 12:37:16
Patrick
Hallo!
Habe eine kleine Frage.
Und zwar. Wenn ich in einer Zelle (B1, D1, F1, H1, ...) doppelklicke, soll eine MsgBox mit Werte aus einem anderen Tabellenblatt kommen.
Mit dem Code funktioniert das eigentlich recht toll.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Select Case Target.Address(0, 0)
Case "B1"
MsgBox Worksheets("Drucken").Range("A2") & vbCrLf & Worksheets("Drucken").Range("B2") &  _
_
" " & Worksheets("Drucken").Range("C2")
Case "D1"
MsgBox Worksheets("Drucken").Range("A4") & vbCrLf & Worksheets("Drucken").Range("B4") &  _
_
" " & Worksheets("Drucken").Range("C4")
End Select
Cancel = True
End Sub

Da ich aber insgesamt 35 Zellen habe, wird das schreiben recht langwierig. Gibt es da eine einfachere Variante?
Danke Patrick
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte aus anderem Tabellenblatt in MsgBox
20.11.2016 12:44:52
Hajo_Zi
Hallo Patrick,
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original.
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then
If Target.Row Mod 2 = 0 Then
MsgBox Worksheets("Drucken").Cells(Target.Row, 1) & vbCrLf & Worksheets("Drucken"). _
Cells(Target.Row, 2) & _
" " & Worksheets("Drucken").Cells(Target.Row, 3)
Cancel = True
End If
End If
End Sub


Anzeige
AW: Werte aus anderem Tabellenblatt in MsgBox
20.11.2016 12:56:01
Nepumuk
Hallo,
dazu brauche ich keine Datei. Test mal:
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("B1,D1,F1,H1,J1,L1,N1,P1")) Is Nothing Then 'anpassen !!!
        With Worksheets("Drucken")
            MsgBox .Cells(Target.Column, 1) & vbLf & _
                .Cells(Target.Column, 2) & " " & .Cells(Target.Column, 3)
        End With
        Cancel = True
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Werte aus anderem Tabellenblatt in MsgBox
20.11.2016 13:02:34
Patrick
Danke dir Nepumuk.
Perfekt....erspart mir eine Menge an Arbeit.
Wie kommt man in so kurzer Zeit auf sowas :D beeindruckend
Vielen Dank
Danke auch dir Hajo!
Mfg Patrick
AW: Werte aus anderem Tabellenblatt in MsgBox
20.11.2016 13:00:59
Hajo_Zi
Zeile und Spalte wechselt.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row = 1 Then
If Target.Column Mod 2 = 0 Then
MsgBox Worksheets("Drucken").Cells(Target.Column, 1) & _
vbCrLf & Worksheets("Drucken").Cells(Target.Column, 2) & _
" " & Worksheets("Drucken").Cells(Target.Column, 3)
Cancel = True
End If
End If
End Sub
Gruß Hajo
Anzeige
AW: Werte aus anderem Tabellenblatt in MsgBox
20.11.2016 13:22:03
Patrick
Danke auch dir.
Das geht ja noch flotter!!
Bin begeistert.
MFG
AW: Werte aus anderem Tabellenblatt in MsgBox
20.11.2016 19:56:04
Patrick
Hallo,
muss da noch was fragen bzgl. der MsgBoxen.
Wie mache ich das so wenig umständlich wie möglich, dass wenn ich im Bereich B2:BP6 auf eine Zelle doppelklicke, dass sich dann eine MsgBox mit den Werten der neben gelegenen Zelle öffnet.
Die Werte der gleich daneben liegenen Zelle sieht man nicht.
lg Patrick
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Werte aus anderem Tabellenblatt in MsgBox anzeigen


Schritt-für-Schritt-Anleitung

Um eine MsgBox mit Werten aus einem anderen Tabellenblatt anzuzeigen, wenn Du auf eine bestimmte Zelle doppelklickst, kannst Du folgenden VBA-Code verwenden. Dieser Code reagiert auf Doppelklicks in den Zellen B1, D1, F1 und H1:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Select Case Target.Address(0, 0)
        Case "B1"
            MsgBox Worksheets("Drucken").Range("A2") & vbCrLf & Worksheets("Drucken").Range("B2") & _
            " " & Worksheets("Drucken").Range("C2")
        Case "D1"
            MsgBox Worksheets("Drucken").Range("A4") & vbCrLf & Worksheets("Drucken").Range("B4") & _
            " " & Worksheets("Drucken").Range("C4")
    End Select
    Cancel = True
End Sub

Wenn Du jedoch viele Zellen hast, ist es effizienter, den Code zu vereinfachen. Hier ist eine optimierte Variante, die alle geraden Zeilen in Spalte A, B und C für die Zellen B1, D1, F1 und H1 anspricht:

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("B1,D1,F1,H1")) Is Nothing Then
        With Worksheets("Drucken")
            MsgBox .Cells(Target.Column, 1) & vbCrLf & _
                   .Cells(Target.Column, 2) & " " & .Cells(Target.Column, 3)
        End With
        Cancel = True
    End If
End Sub

Häufige Fehler und Lösungen

  1. Fehler: MsgBox zeigt keine Werte an.

    • Lösung: Stelle sicher, dass das Tabellenblatt "Drucken" existiert und die Zellen A2, B2 und C2 die gewünschten Werte enthalten.
  2. Fehler: Der Code funktioniert nicht bei Doppelklick.

    • Lösung: Überprüfe, ob das Makro aktiviert ist und ob Du den Code im richtigen Arbeitsblatt-Modul eingefügt hast.
  3. Fehler: MsgBox zeigt nur leere Werte.

    • Lösung: Prüfe die Zellen im "Drucken"-Tab, um sicherzustellen, dass sie tatsächlich Werte enthalten.

Alternative Methoden

Eine alternative Methode, um Werte aus einem anderen Tabellenblatt in einer MsgBox anzuzeigen, ist die Verwendung einer Schleife, die alle relevanten Zellen überprüft. Hier ist ein Beispiel:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("B2:BP6")) Is Nothing Then
        MsgBox Worksheets("Drucken").Cells(Target.Row, Target.Column + 1).Value
        Cancel = True
    End If
End Sub

Dieser Code zeigt den Wert der Zelle rechts neben der Zelle an, die Du doppelt anklickst.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du den Code anpassen kannst:

  • Wenn Du nur den Wert der Zelle rechts von der aktuellen Zelle anzeigen möchtest, kannst Du den obigen Code verwenden, um auf die Zelle rechts zuzugreifen.
  • Wenn Du mehrere Zellen ansprechen möchtest, kannst Du die Range entsprechend anpassen.

Tipps für Profis

  • Verwendung von Variablen: Nutze Variablen, um den Code leserlicher und wartungsfreundlicher zu gestalten.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler abzufangen.
  • Modularität: Teile Deinen Code in kleinere, wiederverwendbare Subroutinen auf, um die Übersichtlichkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um mehr Zellen anzusprechen?
Du kannst die Zeilen in der Intersect-Funktion erweitern, um weitere Zellen hinzuzufügen.

2. Funktioniert dieser Code in Excel 365?
Ja, der Code funktioniert in Excel 365 sowie in anderen Versionen von Excel, die VBA unterstützen.

3. Kann ich die MsgBox anpassen, um eine andere Art von Informationen anzuzeigen?
Ja, Du kannst den Text in der MsgBox anpassen, indem Du die Zellen änderst, die Du anzeigst, oder zusätzliche Informationen hinzufügst.

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