Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Ausgabe in Popup


Betrifft: Ausgabe in Popup von: Leon
Geschrieben am: 21.04.2017 22:30:38

Hallo liebe Leute,

ich habe folgendes Problem:
In meiner Exceltabelle werden Datumsangaben miteinander verglichen und sobald eine definierte Differenz auftritt ein Symbol (z.B. ein !) in einer Spalte (z.B. K) gesetzt.
Ich suche jetzt eine Funktion welche beim Starten der Tabelle die Spalte K nach gesetzten Symbolen dursucht. Findet diese Funktion ein oder mehrere gesetzte Symbole soll aus der/den entsprechenden Zeilen die Spalte A in einem popup ausgegeben werden.

Beispiel:
...A ...K
1 Aa ..!
2 Bb ..-
3 Cc ..!
4 Dd ..!
5 Ee ..-

Bei diesem Beispiel soll die Ausgabe im popup also wie folgt aussehen:

Aa
Cc
Dd

Ich hoffe mein Vorhaben ist verständlich geworden und ihr könnt mir weiterhelfen. In diesem Sinne schon mal Danke für eure Bemühungen.
Leon

  

Betrifft: AW: Ausgabe in Popup von: CitizenX
Geschrieben am: 21.04.2017 23:38:45

Hi,

kopiere den Code ins Modul deiner Tabelle
(Rechtsklick auf den Tabellenreiter,Code anzeigen auswählen und ins rechte Fenster einfügen)
!Beachte die Komentare im Code zu deiner eigenen Anpassung(Spalte, Startzeile etc.)

Option Explicit

Private Sub Worksheet_Activate()
    Dim i&, lastRow&, strInfo$
    Dim myCollection As New Collection, colObject, out
    
    strInfo = "Hallo,folgende Daten wurden gefunden." 'anpassen
    Const IN_COLUMN As Integer = 11, START_ROW As Integer = 2 ' Spalte & Startzeile anpassen
    Const SIGN As String = "!" 'Zeichen anpassen
    
    With ActiveSheet
        lastRow = Application.Max(START_ROW, .Cells(.Rows.Count, IN_COLUMN).End(xlUp).Row)
        For i = START_ROW To lastRow
        If .Cells(i, IN_COLUMN) Like "*!" Then
        myCollection.Add .Cells(i, IN_COLUMN).Text
        End If
        Next i
    End With
    For Each colObject In myCollection
        out = out & colObject & Chr(13)
    Next
    
    MsgBox strInfo & Chr(13) & out
    
End Sub
VG
Steffen


  

Betrifft: AW: Ausgabe in Popup von: Leon
Geschrieben am: 22.04.2017 12:17:03

Danke dir für die schnelle Antwort!

Ein Problem habe ich jetzt noch. Die Funktion lässt sich nur in der VBA Umgebung nach anklicken von Sub/UserForm (F5) ausführen starten. Was muss ich ändern, damit die Funktion beim Starten und beim ändern der Symbole in der Spalte durchlaufen und das Ergebnis anzeigt wird?

Mit freundlichen Grüßen
Leon


  

Betrifft: AW: Ausgabe in Popup von: Sepp
Geschrieben am: 21.04.2017 23:39:17

Hallo Leon,

' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Open()
Dim rng As Range
Dim strMsg As String

With Sheets("Tabelle1") 'Tabellenname - Anpassen!
  For Each rng In Intersect(.UsedRange, .Columns(11)).Cells
    If rng = "!" Then strMsg = strMsg & .Cells(rng.Row, 1).Text & vbLf
  Next
End With

If Len(strMsg) Then MsgBox strMsg

End Sub


Gruß Sepp



  

Betrifft: Zusatzfrage von: WalterK
Geschrieben am: 22.04.2017 09:44:57

Hallo Sepp,

kann man es so einrichten, dass höchstens 20 Datensätze angezeigt werden und wenn mehr als 20 vorhanden wären dann als letzter Datensatz die der Text "Es sind noch weitere vorhanden ..." erscheint.

Danke uns Servus, Walter


  

Betrifft: AW: Zusatzfrage von: Sepp
Geschrieben am: 22.04.2017 09:50:15

Hallo Walter,

sicher.

Private Sub Workbook_Open()
Dim rng As Range
Dim strMsg As String, lngC As Long

With Sheets("Tabelle1") 'Tabellenname - Anpassen!
  For Each rng In Intersect(.UsedRange, .Columns(11)).Cells
    If rng = "!" Then
      strMsg = strMsg & .Cells(rng.Row, 1).Text & vbLf
      lngC = lngC + 1
    End If
    If lngC = 20 Then
      strMsg = strMsg & "Es sind noch weitere vorhanden ..."
      Exit For
    End If
  Next
End With

If Len(strMsg) Then MsgBox strMsg

End Sub


Gruß Sepp



  

Betrifft: oder besser so! von: Sepp
Geschrieben am: 22.04.2017 11:04:29

Private Sub Workbook_Open()
Dim rng As Range
Dim strMsg As String, lngC As Long

With Sheets("Tabelle1") 'Tabellenname - Anpassen!
  For Each rng In Intersect(.UsedRange, .Columns(11)).Cells
    If rng = "!" Then
      lngC = lngC + 1
      If lngC > 20 Then
        strMsg = strMsg & "Es sind noch weitere vorhanden ..."
        Exit For
      Else
        strMsg = strMsg & .Cells(rng.Row, 1).Text & vbLf
      End If
    End If
  Next
End With

If Len(strMsg) Then MsgBox strMsg

End Sub


Gruß Sepp



  

Betrifft: Besten Dank Sepp, passt genau! Servus, Walter oT von: WalterK
Geschrieben am: 22.04.2017 11:09:25




  

Betrifft: AW: Ausgabe in Popup von: Leon
Geschrieben am: 22.04.2017 12:18:06

Danke für deine schnelle Antwort!

Mit freundlichen Grüßen
Leon


Beiträge aus den Excel-Beispielen zum Thema "Ausgabe in Popup"