Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
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

Vorgegebene Kriterien-Anzahl aus Sichtbaren Bereich ausgeben

Vorgegebene Kriterien-Anzahl aus Sichtbaren Bereich ausgeben
28.03.2024 09:16:47
Andre´
Hallo alle zusammen,

ich möchte gern per VBA in einer ListBox oder MsgBox alles angezeigt bekommen,
was in einer ausgewählten aktiven Zelle an sichtbaren Kriterien in Anzahl vorhanden ist.

Die Kriterien (bis 300 verschiedene) werden in einen Bereich vorgegeben (im Bsp nur 4 => M2:M5)

Ausgelesen soll ab der Zeile 10.

Wenn nun im aktiven Blatt nichts gefiltert wird, und die aktive Zelle ist z.B. E7, dann soll in einer ListBox oder MsgBox das ausgegeben werden,
was ich manuell in E3:E6 eingetragen habe.

Userbild


Wird z.B. der Filter gesetzt wie folgt, dann soll das ausgegeben werden, was ich in E2 : G5 eingetragen habe je nach dem welche Zelle aktiv ist.

Userbild

Also z.B.:

Aktive Zelle = E3, dann Ausgabe wie E2:E5
aktive Zelle = G25, dann Ausgabe wie in G2:G5
Aktibe Zelle = F9, dann Ausgabe wie in F2:F5

Ich hoffe mir kann hier jemand eine VBA Lösung anbieten.

Hier die Bsp-Datei https://www.herber.de/bbs/user/168376.xlsx

Vielen Dank im Voraus!

MFG Andre

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vorgegebene Kriterien-Anzahl aus Sichtbaren Bereich ausgeben
28.03.2024 10:00:03
Yal
Hallo André,

achte bitte drauf, wie Du deinen Hilferuf formulierst: "Ich hoffe mir kann hier jemand eine VBA Lösung anbieten."
Da hier nichts kostenpflichtig angeboten werden darf, können wir mit diesem Satz nur davon ausgehen, dass Du eine vollständige, kostenlose Lösung erwartest. Wir verstehen uns als Helfer, nicht als Erlediger. Es gibt natürlich einige (und ich gehöre auch dazu), die die Fragestellung so spannend finden, dass sie mitmachen (immer Sudoku ist ja langweilig :-) Aber eine solche Formulierung ist schwierig.

Aber dann müsstest Du deine Fragestellung komplett neuaufstellen: stell Dir vor, Du hast absolut null Ahnung von dem Thema und liest deine Beitrag durch. Dann bekommst einen Gefühl, wie wir da mit unsere Fragezeichen im Kopf stehen.

Letztens: Du stufst dich selbst als VBA-Unerfahrenen, verlang aber eine VBA-Lösung. Kannst Du dann damit selbständig umgehen? Oder kommt gleich die nächste Nachfrage ("Es tut nicht")? Vielleicht kannst Du deine Frage in so kleine Einzelteile zerlegen, dass was VBA abdecken muss, so easy, dass wir sicher sind, dass Du damit zuercht kommst.

VG
Yal
Anzeige
AW: Vorgegebene Kriterien-Anzahl aus Sichtbaren Bereich ausgeben
28.03.2024 10:44:47
Andre´
Hallo Yal,

du hast natürlich recht.
Formuliert habe ich es deshalb so, weil es immer wieder Vorschläge gibt z.B. mit PQ oder einer Formel-Lösung
wo ich aber eine VBA-Lösung gern hätte und hier mir nur ein VBA-User weiter helfen kann.

Den anderen Helfern möchte ich damit Zeit sparen mir eine mögliche PQ Lösung anzubieten.

Bezüglich Einstufung: Excel-Kenntnisse... ich habe schon gewisse VBA Erfahrungen und kann auch selbständig damit umgehen, schätze mich aber auch nicht als "gut" ein, weil in anderen Beiträgen auch mal Sprüche kommen wie "mit Deinen Kenntnissen" usw.

Die Aufgabenstellung ist schon etwas schwer zu beschreiben.... deshalb auch die Bildchen.

MFG Andre
Anzeige
Vorgegebene Kriterien-Anzahl aus Sichtbaren Bereich ausgeben
28.03.2024 11:13:49
Andre´
Hallo zusammen,

Hinweis wenn es aus meiner ersten Beschreibung nicht so hervor ging ... es soll nur aus einer Spalte (aktive Spalte) die Daten geladen werden.

Ich hoffe mir kann jemand helfen.

Vielen Dank!

MFG Andre
AW: Vorgegebene Kriterien-Anzahl aus Sichtbaren Bereich ausgeben
28.03.2024 11:34:04
Yal
Hallo André,

versuche zu verstehen, dass die Wörte, die Du verwendest, nur für dich eine Bedeutung haben.
Was bedeutet "es soll .. Daten geladen werden"?
Wenn 90% des Wissens noch in deinem Kopf und nicht in die Beschreibung steht, wird nur eine Zauberer dir helfen können (ist aber ein anderen Forum).

Du wirst anwenden, dass die Beschreibung dann sehr lang und keiner sie lesen wird. Tja, die richtige Antwort kommt nach der richtige Frage. Schon die Auseinandersetzung "wie formuliere ich die richtige Frage" könnte dich sehr nah an der Lösung bringen. Also, es lohnt sich.

VG
Yal
Anzeige
Vorgegebene Kriterien-Anzahl aus Sichtbaren Bereich ausgeben
28.03.2024 12:25:43
Andre´
Hallo Yal,

ok ich versuche es besser zu beschreiben

Die Kriterien die gezählt werden sollen aus einem sichtbaren Bereich einer aktiven Zelle befinden sich in M2 bis M5.
Userbild

Ist meine aktive Spalte z.B. Spalte E, dann soll ab dem Bereich E10 bis zum letzten Eintrag der Spalte E alle sichtbaren Zellen die mit den Kriterien
übereinstimmen in einer List-Box oder MsgBox aufgelistet werden.

In dem Bsp. wäre es wie folgt:

Userbild


Vielen Dank für die Bemühungen.

MGF Andre
Anzeige
AW: Vorgegebene Kriterien-Anzahl aus Sichtbaren Bereich ausgeben
28.03.2024 13:26:46
Yal
Hallo Andre´,

sieht endlich nach etwas, was ich vertehne kann.

Probiere folgende Code (in einem Modul ablegen, nicht im Codepane von einer Tabelle oder Mappe):

Sub Auflisten()

Dim Dic 'Dictionary
Dim Z As Range 'Z wie Zelle
Dim Elt 'Element of dictionary
Dim Msg As String

Set Dic = CreateObject("Scripting.Dictionary")
'Vergleichsliste aufbauen
For Each Z In Range("M2:M5")
Dic(Z.Value) = 0
Next
'Zellen prüfen und aufzählen
For Each Z In Range(Cells(10, ActiveCell.Column), Cells(Rows.Count, ActiveCell.Column).End(xlUp))
If Not Z.EntireRow.Hidden Then
For Each Elt In Dic.keys
If Z.Value = Elt Then Dic(Elt) = Dic(Elt) + 1
Next
End If
Next
'Ergebnis anzeigen
For Each Elt In Dic.keys
Msg = Msg & vbLf & Elt & ": " & vbTab & Dic(Elt)
Next
MsgBox "Im sichtbaren Bereich: " & Msg
Set Dic = Nothing
End Sub


VG
Yal
Anzeige
AW: Vorgegebene Kriterien-Anzahl aus Sichtbaren Bereich ausgeben
28.03.2024 13:38:18
schauan
Hallöchen,

hier mal ein Ansatz für Spalte F. Das ist jetzt alles entsprechend Deinem Beispiel ziemlich festgeschnallt, kann man aber auch noch flexülisieren :-))
Die Angabe x=> usw. kann man über benutzerdefinierte Formatierung einstellen oder das im Anschluss das Makro erledigen lassen und die Ausgabe natürlich direkt in die vorgesehenen Spalten leiten.
Für die anderen beiden Spalten kannst Du eine Schleife aussen herum programmieren und dabei die Bereichsangaben für die 3 Spalten flexibel gestalten. Falls Du nicht weißt, wie, nochmal fragen ...

Sub zzzzst()

'Variablendeklarationen
Dim rngZellen, arrTreff(3)
'Schleife ueber alle sichtbaren Zellen der Spalte F
For Each rngZellen In Sheets("Gefiltert").Range("F10:F30").SpecialCells(xlCellTypeVisible)
Fallunterscheidung
Select Case rngZellen.Value
'Je nach Zellinhalt erfolgt in Abhaengigkeit des Eintrags in Spalte M die Zuzaehlung im Treffer-Array
Case Range("M2").Value: arrTreff(0) = arrTreff(0) + 1
Case Range("M3").Value: arrTreff(1) = arrTreff(1) + 1
Case Range("M4").Value: arrTreff(2) = arrTreff(2) + 1
Case Range("M5").Value: arrTreff(3) = arrTreff(3) + 1
End Select
Next
'Uebernahme der Ergebnisse in Spalte J
Range("J2:J5").Value = WorksheetFunction.Transpose(arrTreff)
End Sub


Anzeige
Auch dir einen lieben Dank! oT
28.03.2024 14:10:37
Andre´
Denkfehler
28.03.2024 13:34:22
Yal
zwar funktioniert der vorigen Code, aber da es einen Dictionary verwendet wird, kann man direkt die Schlüssel für die Prüfung verwenden:

Sub Auflisten()

Dim Dic 'Dictionary
Dim Z 'Z wie Zelle, wird auch als allg. Durchlaufvarible verwendet
Dim Msg As String

Set Dic = CreateObject("Scripting.Dictionary") 'Besser wäre die Anbindung von "Microsoft Scripting Runtime" (siehe "Extras", "Verweise...")
'Vergleichsliste aufbauen
For Each Z In Range("M2:M5")
Dic(Z.Value) = 0
Next
'Zellen prüfen und aufzählen
For Each Z In Range(Cells(10, ActiveCell.Column), Cells(Rows.Count, ActiveCell.Column).End(xlUp))
If Not Z.EntireRow.Hidden Then If Dic.Exists(Z.Value) Then Dic(Z.Value) = Dic(Z.Value) + 1
Next
'Ergebnis anzeigen
For Each Z In Dic.Keys
Msg = Msg & vbLf & Z & ": " & vbTab & Dic(Z)
Next
MsgBox "Im sichtbaren Bereich: " & Msg
Set Dic = Nothing
End Sub


VG
Yal
Anzeige
Vorgegebene Kriterien-Anzahl aus Sichtbaren Bereich ausgeben
28.03.2024 13:52:45
Andre´
Hallo Yal,

vielen lieben DANK! funktioniert wie gewünscht;-)
Bei 300 Kriterien werden ich es in eine List-Box einlesen.

Wünsche schon mal ein frohes Osterfest!

MFG Andre

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige