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

Forumthread: Spalte nach bestimmten Wert durchsuchen und msgbox

Spalte nach bestimmten Wert durchsuchen und msgbox
20.04.2016 10:25:19
Pflaume
Hallo liebe Excelperten ;)
ich möchte die Spalten A, B und C jedes Mal beim öffnen der Mappe nach dem Wert "Status offen" abfragen. Wenn in Spalte a der Wert gefunden wird soll sich eine MsgBox öffnen "ALM Status für SG_A noch offen". Wenn in Spalte B der Wert gefunden wird, "ALM Status für SG_B noch offen" usw. und wenn der Wert in 2 oder allen 3 Spalten gefunden wird "Achtung, mehrere ALMs offen". Kann mir da jemand weiterhelfen? Das wäre super! Vielen Dank schon mal.
Gruß Pflaume

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte nach bestimmten Wert durchsuchen und msgbox
20.04.2016 11:13:48
ChrisL
hi
Sub CheckStatus()
If CheckSpalte(1) + CheckSpalte(2) + CheckSpalte(3) > 1 Then
MsgBox "mehrere"
Else
If CheckSpalte(1) Then MsgBox "Spalte A"
If CheckSpalte(2) Then MsgBox "Spalte B"
If CheckSpalte(3) Then MsgBox "Spalte C"
End If
End Sub

Private Function CheckSpalte(iSpalte As Integer) As Byte
If WorksheetFunction.CountIf(Columns(iSpalte), "Status offen") > 0 Then _
CheckSpalte = 1
End Function

cu
Chris

Anzeige
AW: Spalte nach bestimmten Wert durchsuchen und msgbox
20.04.2016 12:16:12
Nina
Ok, ich werde das morgen in der Arbeit mal testen. Vielen Dank schon einmal. Ich melde mich. Gruß Pflaume

AW: Spalte nach bestimmten Wert durchsuchen und msgbox
23.04.2016 19:29:13
Nina
Ok, ich werde das morgen in der Arbeit mal testen. Vielen Dank schon einmal. Ich melde mich. Gruß Pflaume

AW: Spalte nach bestimmten Wert durchsuchen und msgbox
20.04.2016 11:45:45
Michael
Hallo!
Da war jetzt der Chris schneller, als ich (wiedermal) die Liste aktualisiert hab.
Hier noch meine Variante, weil schon geschrieben - Nimm's mir nicht übel Chris!
Private Sub Workbook_Open()
Const SuchBlatt As String = "Tabelle1"
Const SuchText As String = "*Status offen*"
Const SuchSpalten As String = "A,B,C"
Dim Spalten
Dim Treffer As String
Dim i As Long
Spalten = Split(SuchSpalten, ",", , vbTextCompare)
With Me.Worksheets(SuchBlatt)
For i = LBound(Spalten) To UBound(Spalten)
If WorksheetFunction.CountIfs(.Range(Spalten(i) & ":" & _
Spalten(i)), SuchText) > 0 Then
Treffer = Treffer & Spalten(i)
End If
Next i
End With
Select Case Len(Treffer)
Case Is = 1
MsgBox "ALM Status für SG_" & Treffer & " noch offen", vbCritical
Case Is > 1
MsgBox "Achtung, mehrere ALMs offen", vbCritical
Case Else
Exit Sub
End Select
End Sub
LG
Michael
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Spalte nach bestimmten Wert durchsuchen und MsgBox anzeigen


Schritt-für-Schritt-Anleitung

Um die Spalten A, B und C beim Öffnen der Arbeitsmappe nach dem Wert "Status offen" zu durchsuchen und entsprechende Meldungen anzuzeigen, kannst du den folgenden VBA-Code verwenden. Stelle sicher, dass du in Excel die Entwicklertools aktiviert hast.

  1. Öffne Excel und lade deine Arbeitsmappe.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf VBAProject (deineMappe).
    • Wähle Einfügen > Modul.
  4. Kopiere und füge den folgenden Code ein:

    Private Sub Workbook_Open()
       Const SuchBlatt As String = "Tabelle1"
       Const SuchText As String = "Status offen"
       Const SuchSpalten As String = "A,B,C"
       Dim Spalten
       Dim Treffer As String
       Dim i As Long
       Spalten = Split(SuchSpalten, ",", , vbTextCompare)
       With Me.Worksheets(SuchBlatt)
           For i = LBound(Spalten) To UBound(Spalten)
               If WorksheetFunction.CountIfs(.Range(Spalten(i) & ":" & Spalten(i)), SuchText) > 0 Then
                   Treffer = Treffer & Spalten(i)
               End If
           Next i
       End With
       Select Case Len(Treffer)
           Case Is = 1
               MsgBox "ALM Status für SG_" & Treffer & " noch offen", vbCritical
           Case Is > 1
               MsgBox "Achtung, mehrere ALMs offen", vbCritical
           Case Else
               Exit Sub
       End Select
    End Sub
  5. Speichere die Datei als Makro-fähige Arbeitsmappe (.xlsm).

  6. Schließe den VBA-Editor und öffne die Arbeitsmappe erneut, um den Code auszuführen.


Häufige Fehler und Lösungen

  • Fehler: "Zugriff auf das Objekt ist nicht möglich"

    • Überprüfe, ob das Arbeitsblatt mit dem Namen "Tabelle1" existiert. Wenn nicht, passe den Code entsprechend an.
  • Fehler: MsgBox erscheint nicht

    • Stelle sicher, dass die Datei als Makro-fähige Arbeitsmappe (.xlsm) gespeichert ist und dass die Makros aktiviert sind.
  • Fehler: Falsche Spalten werden geprüft

    • Überprüfe die Konstante SuchSpalten im Code. Stelle sicher, dass die Spaltenbuchstaben korrekt angegeben sind.

Alternative Methoden

Wenn du keine Makros verwenden möchtest, kannst du die Funktion SVERWEIS oder FILTER in Excel verwenden, um die gewünschten Werte zu suchen. Diese Methoden bieten jedoch nicht die gleiche Benutzererfahrung wie eine MsgBox.


Praktische Beispiele

Angenommen, du hast eine Tabelle mit den folgenden Daten:

A B C
Status offen Status geschlossen Status offen
Status geschlossen Status offen Status geschlossen
Status offen Status offen Status offen

Beim Öffnen der Mappe wird die MsgBox anzeigen, dass für SG_A, SG_B und SG_C der Status offen ist.


Tipps für Profis

  • Du kannst den Suchtext in SuchText anpassen, um nach anderen Werten zu suchen.
  • Experimentiere mit weiteren Funktionen von VBA, um die Automatisierung deiner Arbeitsabläufe zu verbessern.
  • Denke daran, den Code zu kommentieren, um die Lesbarkeit und Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Frage: Funktioniert dieser Code auch in Excel 365?
Antwort: Ja, der Code ist mit Excel 365 sowie anderen Versionen kompatibel.

2. Frage: Kann ich die Spalten, die überprüft werden sollen, ändern?
Antwort: Ja, passe einfach die Konstante SuchSpalten im Code an, um die gewünschten Spalten festzulegen.

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