Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1828to1832
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

Identische Werte suchen und ausgeben

Identische Werte suchen und ausgeben
09.05.2021 19:56:21
timi
Hallo zusammen,
ich zwar neu hier, aber versuche mein Problem so genau wie möglich zu schildern. Leider weiss ich auch noch nicht, wie man seinen Code richtig darstellt, also leider nur copy/paste sorry.
Ich habe im Bereich von C12:G42 verschiedene Wert erzeugt und diese sind variabel, da sie an Eingangsparameter gekoppelt sind. Mit Hilfe von Zählenwenn suche ich jede Zeile nach dem Wert 100 ab und stelle dar, wie oft dieser vorkommt. In der Zeile 32 kommt es vor, dass in C32, D32, E32 und G32 der Wert 100 steht. Die Zahlen der Spalten (also c=3, d=4, usw.) brauche ich für weitere Berechnungen und möchte diese nicht immer händisch eingeben müssen, da die Datei noch wachsen wird. Also wollte ich einen Code schreiben, der mir die Eingabe der Spaltennummern per Hand abnimmt.
Ich habe hier mit Find in Zeile 32 nach dem Wert aus I6 (=100) suchen lassen und möchte, dass mir der Code jetzt die Spaltennummern ausgibt. Die Werte der Spaltennummern sollen in M11 bis M14 stehen, da ich ja vier Werte habe. Also in M11 dann der Wert 3, in M12 der Wert 4, in M13 der Wert 5 und in M14 dann der Wert 7, da in Zelle F32 nicht der Wert 100 steht.
Ich habe folgenden Code ausprobiert, aber irgendwie funktioniert das nicht so recht. Der Fehler liegt nach dem Else, da in den Zeilen M11 bis M14 immer 100 erscheint, wonach ja gesucht wird, aber nicht die Spaltennummer.
Set Ergebnis = Tabelle1.Rows(32).Find(what:=Tabelle1.Range("I6").Value, _
lookat:=xlWhole)
For m = 11 To 14
If Ergebnis Is Nothing Then
MsgBox "Leider nichts gefunden", vbOKOnly + vbExclamation, "Achtung!"
Else
Sheets("Tabelle1").Cells(m, 13).Value = Tabelle1.Cells(32, Ergebnis.Column).Value
End If
Next m
Falls mir jemand helfen könnte wäre ich sehr dankbar.
Gruß
timi1209

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Identische Werte suchen und ausgeben
10.05.2021 06:40:14
MCO
Guten Morgen!
Die eingerückte Darestellung erreichst du mit Text markieren - "ZITAT", damit werden die HTML-Befehle gesetzt.
Für ein besseres Verständnis wäre es besser eine Beispielmappe hochzuladen, da deine Mappe keiner nachbauen wird.
Gruß, MCO
AW: Identische Werte suchen und ausgeben
10.05.2021 12:44:17
Yal
Hallo Timi,
für ein geschlossene, rechteckige Bereich ist ein For Each sinnvoller als einen Find.

Public Function Hundert_zählen(Target As Range) As Long
Dim Z As Range
For Each Z In Target.Cells
If Z = 100 Then Hundert_zählen = Hundert_zählen + 1
Next
End Function
Diese Function kann, wenn sie in einem Modul abgelegt ist, als eine normale Excelformel abgerufen werden.
Oder per Coding wie folgt eingesetz werden.

Sub Test()
Const cRng = "C12:G42"
MsgBox "In """ & cRng & """ sind " & vbCr & Hundert_zählen(Tabelle1.Range(cRng)) & " Zellen mit dem Zahl hundert vorhanden."
End Sub
VG
Yal
Anzeige
AW: Identische Werte suchen und ausgeben
10.05.2021 15:20:18
timi
Hallo zusammen,
erst einmal vielen Dank an Yal für den Tipp mit For Each, somit konnte ich mein Problem lösen. Anbei ist der Code. Allerdings hat sich ein neues Problem ergeben. Da die Werte in meiner Tabelle variabel sind, ist nicht immer Zeile 32 die Zeile, die untersucht werden soll. Gibt es eine Möglichkeit, anstatt

Set Ergebnis = Tabelle1.Range("C32:G32")
zu schreiben auch eine Schreibweise, wo ich nur die Zeilennummer eintragen kann? Ungefähr so:

Set Ergebnis = Tabelle1.Rows(a)
Hier nochmal der ganze Code:

Dim Zelle As Range
Dim Ergebnis As Range
Dim i As Integer
i = 0
Set Ergebnis = Tabelle1.Range("C32:G32")
For Each Zelle In Ergebnis
If Zelle.Value = "100" Then
Tabelle1.Cells(11 + i, 13).Value = Zelle.End(xlUp).Value
i = i + 1
End If
Next Zelle

Anzeige
AW: Identische Werte suchen und ausgeben
10.05.2021 15:54:21
Yal
Hallo Timi,
es heisst bei Dir "Ergebnis" und bei mir Target, sind aber beide den Range, der zu untersuchen gilt.
Du siehst in dem gegebenen Test-Prozedure, wie diese dynamisch übergeben werden kann.
Ein von der aktiven Zelle abhängige Bereich Cx:Gx kannst Du wie folgt abbilden:

Sub Test2()
Dim R As Range
Set R = ActiveCell.EntireRow.Range("C1:G1")
MsgBox "In """ & cRng & """ sind " & vbCr & Hundert_zählen(Tabelle1.Range(cRng)) & " Zellen mit dem Zahl hundert vorhanden."
End Sub
Wenn ein bestimmten Bereich beschrieben wird ( "Tabelle1.Cells(11 + i, 13).Value = " ), ist die Function nicht mehr als Excel-Formel verwendbar.
VG
Yal
Anzeige
AW: Identische Werte suchen und ausgeben
10.05.2021 16:50:07
timi
Hallo,
hat alles wunderbar funktioniert.
Vielen Dank Yal
Gruß
Timi1209

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige