Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1552to1556
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
Inhaltsverzeichnis

Ausgabe in Popup

Ausgabe in Popup
21.04.2017 22:30:38
Leon
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

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausgabe in Popup
21.04.2017 23:38:45
CitizenX
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
Anzeige
AW: Ausgabe in Popup
22.04.2017 12:17:03
Leon
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
AW: Ausgabe in Popup
21.04.2017 23:39:17
Sepp
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

Anzeige
Zusatzfrage
22.04.2017 09:44:57
WalterK
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
AW: Zusatzfrage
22.04.2017 09:50:15
Sepp
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

Anzeige
oder besser so!
22.04.2017 11:04:29
Sepp
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

Anzeige
Besten Dank Sepp, passt genau! Servus, Walter oT
22.04.2017 11:09:25
WalterK
AW: Ausgabe in Popup
22.04.2017 12:18:06
Leon
Danke für deine schnelle Antwort!
Mit freundlichen Grüßen
Leon

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige