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

Finden und dann daraus etwas machen

Finden und dann daraus etwas machen
30.04.2022 14:19:25
Thomas
Guten Tag zusammen
Setzte hier mal mein noch unvollständiges Skript hin, erkläre unterhalb vom Skript was ich damit erreichen möchte.

Sub find()
Dim letztezeile As Long
Dim Row As Long
Dim finden As Range
With Worksheets("Tabelle1")
Set finden = .Range(Cells(2, 2), Cells(5, 2)).find(what:="Schmidt", lookat:=xlWhole)
If finden Is Nothing Then
'nicht gefunden
Row = finden.Row
.Cells(5, 2) = "W"
MsgBox "Der Begriff befindet sich in Zelle: "
End
Else
'gefunden
'Ausgeben lassen wie der gef undene Begriff heißt
MsgBox "Der gefundene Begriff lautet: " & finden
'Ausgeben lassen in welcher Zelle der Begriff steht
MsgBox "Der Begriff befindet sich in Zelle: " & finden.Address
End
End If
End With
End Sub
Ich beisse mir echt die Zähne daran aus weil mir das Wissen dazu fehlt.
Ich möchte folgendes erreichen.
Ich möchte mit der Find Methode in einer Range, zum Beispiel B5 bis B10 einen Wert 1, sagen wir mal W finden.
Dieser Wert möchte ich dann wenn es mal funktioniert über Variablen Dynamisch einbinden. Auch die Range der Findmethode möchte ich später dann Dynamisch verändern können.
Wenn der Wert W nicht gefunden wird muss in der Zelle B5 dieser Wert W eingefügt werden.
Wenn dann der zweite Wert zum Beispiel B nicht gefunden wird, soll ebenfalls dieser Wert B unterhalb vom letzten eingefügten wert aber nur ab B5 gezählt, eingefügt werden. (übrigens genau in dieser Passage beiss ich mir die Zähne aus.) Geht einfach nicht!
Wenn der Wert aber gefunden wurde, zum Beispiel das B, dann soll einfach dieses B überschrieben werden. Ich werde dann die Zelladresse auslesen und damit etwas machen wollen.
Das wäre eigentlich schon alles. Es soll für mich eine Grundfunktion, das wenn sie mal funktionieren würde dann Schritt für Schritt ausbauen will.
Ist noch etwas Unklar dann bitte frage.
Besten Dank an die Helfer!!!
Gruss
Thomas

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Finden und dann daraus etwas machen
30.04.2022 14:27:12
Oberschlumpf
Hi Thomas,
zeig doch bitte mal per Upload eine Excel-Bsp-Datei mit Bsp-Daten in den richtigen Zellen.
Ciao
Thorsten
AW: Finden und dann daraus etwas machen
30.04.2022 14:38:56
Thomas
Hallo Oberschlumpf
https://www.herber.de/bbs/user/152772.xlsm
Ich hoffe du meinst da so.
Die gefärbten Bereiche sind die Bereiche die ich später gerne Dynamisch erreichen will. Zum den wert finden und einfügen.
Hoffe du verstehst was ich meine
Gruss
Thomas
AW: Finden und dann daraus etwas machen
30.04.2022 14:33:41
ralf_b
schon lustig was die Leute sich so ausdenken.
If finden Is Nothing Then
'nicht gefunden
Row = finden.Row
Die Zeilennummer also Row von Nichts ist Nichts. Das dürfte also nicht funktionieren. Versuch die Logikt anders herum.

If Not finden is nothing then
'gefunden
else
'nichtgefunden
end if
Die Suchrange in eine Variable zu packen und sie dann bei Bedarf mittels offset(1,0) nach unten zu verschieben würde dein Versatzproblem lösen.
set rng = .Range(Cells(2,2), Cells(5,2))
set finden = rng.find ........
.... set rng = rng.offset(1) Suchbereich nach unten schieben. bei Bedarf noch ein Resize(anzahl zeilen, anzahl Spalten) dran dann ändert sich auch noch dessen Größe.
Anzeige
AW: Finden und dann daraus etwas machen
30.04.2022 19:36:03
Thomas
Ich habe die Find Methode weggelassen. Und mit den For Schleifen gelöst. es funktionert!

Sub Personal()
Dim KW As String, KT As String, Name As String, Objekt As String, Zeit As String
Dim RowKWZ As Long
Dim Daten As Long '...................Daten im Kalender auslesen
Dim KWZ As Long '.....................Kalendrwoche suchen
Dim NameZ As Long '...................Nam suchen
With Worksheets("Kalender")
For Daten = 6 To 1000 '...............Daten auslesen
If Cells(Daten, 2) = "" Then End '....Daten auslesen beenden wenn Zellen leer sind
KW = .Cells(Daten, 2)
KT = .Cells(Daten, 3)
Name = .Cells(Daten, 5)
Objekt = .Cells(Daten, 6)
Zeit = .Cells(Daten, 33)
MsgBox "Daten   " & KW & "    " & KT & "    " & Name & "    " & Objekt & "     " & Zeit
With Worksheets("PersonalPlan")
For KWZ = 10 To 100 '.................Kalenderwoche suchen
RowKWZ = .Cells(KWZ, 2).Row '.........Zeilennummer von Kalenderwoche auslesen
If .Cells(KWZ, 2) = KW Then MsgBox "Zeilennummer" & RowKWZ
For NameZ = KWZ To 50 '...............Name suchen
If .Cells(RowKWZ, 5) = Name Then
MsgBox Name
Exit For
End If
Next NameZ
Next KWZ
End With
Next Daten
End With
End Sub
Danke den Helfer!
Anzeige
AW: Finden und dann daraus etwas machen
30.04.2022 19:38:41
Oberschlumpf
Hi Thomas,
mist, ich war/bin zu langsam :-)
Bin noch dabei, für dich ne Lösung zu erstellen, die auch eine gewisse Dynamik im Suchbereich und auch bei Auswahl der zu suchenden Texte zulässt.
Bist du noch interessiert?
Ciao
Thorsten
AW: Finden und dann daraus etwas machen
30.04.2022 19:51:43
Thomas
Hallo Thorsten
ui, ui ui, ich wollte dich damit jetzt aber nicht stressen.
Ja sicher bin ich noch interessiert, wenn es dir damit nicht die Zeit raubt. Nur schon wie du es machst interessiert mich. Ich kriege mit der Find Methode für dieses Projekt einfach keine Lösung her ohne Murks. Und das brennt unter den Fingernägel.
Gruss
Thomas
Anzeige
AW: Finden und dann daraus etwas machen
30.04.2022 20:55:41
Oberschlumpf
soo...
Hi Thomas,
da bin ich wieder :-)
Nee, keine Angst, du stressst mich nicht - Excel ist eines meiner Hobbies, und manchmal kann ich nicht genug davon kriegen :-)
Hier nun meine Idee
https://www.herber.de/bbs/user/152778.xlsm
Öffne mal die Datei, und wie du siehst, hab ich deine Namenspalte mit 2 weiteren Textspalten erweitert.
Klick mal auf den Button - es poppt ne Meldung auf - die solltest du beachten und danach handeln...wenn nicht, kommt diese Meldung immer wieder :-)
So, is die Meldung weg? Dann hast du alles richtig gemacht - und du müsstest gemerkt haben, dass du sowohl im SUCHEN-Zellbereich (die Zellen, in denen gesucht werden soll) und auch FINDEN-Zellbereich (die Zellen mit den Texten, nach denen gesucht werden soll) jeweils 3 unterschiedliche Zellbereiche auswählen kannst.
Wenn die farbigen Zellen alle einen Eintrag haben, musst du diese wieder per Hand löschen.
Grundsätzlich macht die Datei nun genau das, was du gewollt hast, oder?
Und die Datei kann dir auch helfen, zu verstehen, WARUM sie das macht, was du gewollt hast.
IM VBA-Code habe ich viele Kommentare hinterlassen. Ich hoffe, mit den Erklärungen verstehst du schneller, was genau der Code wann macht.
konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Finden und dann daraus etwas machen
01.05.2022 13:41:12
Thomas
Hallo Thorsten,
wow das ist beeindruckend echt. Besten Dank für die Zeit die du dir für mich locker gemacht hast Thorsten.
Nun ein Beispiel habe ich jetzt was ich machen kann. Aber aus lauter Bäume sehe ich im Moment den Wald überhaupt nicht mehr. Das hat mich jetzt eine ganze Woche geschlaucht mit überlegen und probieren und testen und mir raubt es gerade echt viel Zeit und lasse dadurch dinge hängen was nicht wirklich gut ist.
Nun Thorsten, ich will dir nichts aufzwingen oder dazu verleiten, einfach nur wenn du Zeit und Lust hast dir mein Vorhaben in der richtigen Struktur anzusehen dann würde es mich sehr freuen. Aber wenn nicht dann geht es auch in Ordnung.
Hier den Link: https://www.herber.de/bbs/user/152786.xlsm
Erklärung:
Auf der ersten Seite siehst du die Struktur wo ich Daten ablege. Das sind Kalenderwochen, Kalendertage, Namen, Einsatzorte und Zeit.
Das alles sammle ich Tag für Tag, Woche für Woche, Monat für Monat, das ganze Jahr durch.
Jetzt brauche ich hierzu für gewissen Rechtfertigungen und Organisationen einen Überblick auf der zweiten Tabelle. Dort sollten die Kalenderwochen der reihe nach übertragen werden mit ihren Inhalten von Kalendertage, Namen, einsatzorten und Zeit.
Da es dabei vorkommt das in einer Kalenderwoche am selben Kalendertag der Selbe Name vorkommt, aber einfach einen anderen Einsatzort hat und dadurch auch eine Einsatzzeit hat, soll der Eintrag in die selbe , jeweilige Zelle auf kumuliert werden. Das bedeutet, dass der Name hier einfach überschrieben wird, und der Einsatzort im Richtigen Kalendertag dazugefügt wird mit einem Komma dazwischen und die Zeitangabe dann als Gesamtzahl zusammengezählt wird.
Dieser Prozess soll dann einfach mit einem Klick ins rollen gebracht werden bis hin zum Schluss.
Das wäre diese dinge die ich fängs richtig gut kann und auch spaß macht. Aber das mit der Suchfunktion und dann dabei die richtige Zeile finden das hat mir jetzt echt Kopfschmerzen verursacht und stecke einfach fest.
Solltest du mich verstanden haben was ich will, und du dieses in die Realität umsetzen möchtest dann bedanke ich mich jetzt schon herzlich dafür. Für mich ist die Find Methode aber auch eine andere Art von Methode in einer solchen Kombination etwas das für mich ein Schritt zu Groß ist.
Es grüßt
Thomas
PS: Für die, die es als Unsinn ansehen weil man sowas machen will, verstehe ich. Ich finde es eher Müll als nur Unsinn. Der Grund weshalb ich das mache ist, dass ich eine etwas modernere Art von Tabellenführung mit einer ganz alten Tabellenstruktur veredeln muss weil es für einen noch langen Zeitraum nicht Möglich ist, die Alten Strukturen abzuschaffen.
Anzeige
AW: Finden und dann daraus etwas machen
01.05.2022 16:35:38
Oberschlumpf
Hi Thomas,
vielleicht versuche ich mein Glück - aber...
Im Tabellenblatt "Kalender" hast du Einträge für die KW 19 bis 21, aber im Tabellenblatt "PersonalPlan" nur Vorgaben für die KW 1 bis 3.
Erweiter bitte die Bsp-Datei für - alle! - Kalenderwochen, die in - beiden! - Tabellenblättern benötigt werden.
Denn ich werde nicht für dich so viele zusätzliche Kalenderwochen hinzufügen - das ist dein Job ;-)
...und aus 1 bis 3 = 19 bis 21 zu machen ist ja auch nicht Sinn der Übung, oder?...
Und zeig bitte noch viele mehr Bsp-Datenzeilen, dann ist das Testen + Entwickeln einfacher.
Ach so, zeig bitte für 1 oder 2 Personen in "PersonalPlan", wie genau das Ergebnis aussehen soll...vllt hab ich ja nicht alles richtig verstanden. Und Ergebnisse fix + fertig zeigen ist immer der bessere Weg, als zu versuchen, Wunschergebnisse nur zu versuchen, diese zu beschreiben.
Ciao
Thorsten
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige