Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
972to976
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
972to976
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilennummern suchen und sortieren über VBA

Zeilennummern suchen und sortieren über VBA
07.05.2008 08:26:00
Berger
Ich habe ein Exceltabelle in der in Spalte VPLZ die Werte öfters vorkommt.
Die Häufigkeit des Vorkommens wird bereits in der Letzten Spalte per Zählenwenn ermittelt.
Zeile; Postl cod; City; VPLZ; Entfer; Ort; Menge; VPLZ Anzahl
312; 10117; Berlin; 10787; 3,37; Berlin; 102; 4
429; 10623; Berlin; 10787; 1,09; Berlin; 102; 4
650; 10719; Berlin; 10787; 1,61; Berlin; 102; 4
903; 10789; Berlin; 10787; 0,72; Berlin; 102; 4
543; 10623; Berlin; 12103; 5,77; Berlin; 47; 3
714; 10719; Berlin; 12103; 4,67; Berlin; 47; 3
956; 10789; Berlin; 12103; 4,77; Berlin; 47; 3
Nun möchte ich per VBA alle Zeilen auslesen, die den Wert z.b. 10787 enthalten.
Die Zeilennummern sollen dann aufsteigend nach der Entfernung einer Variablen zugewiesen werden.
Eine Sortierung der Grundtabelle sollte nicht erfolgen.
Ergebnis sollte sein bei dem Wert 10787
Variablel(1) = 903; Variable(2) = 429; Variable(3) = 650; Variable(4) = 312
Ergebnis sollte sein bei dem Wert 12103
Variable(1) = 714; Variable(2) = 956; Variable(3) = 956
Die gesamtzahl der Einträge in der Tabelle liegt bei 6000 Zeilen.

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
versuchs erst mal mit "Hallo" und "Ciao"..o.T.
07.05.2008 08:31:14
Oberschlumpf

AW: versuchs erst mal mit "Hallo" und "Ciao"..o.T.
07.05.2008 08:53:59
Berger
Hallo lieber Oberschlumpf,
du hast ja recht, ich habe einfach noch nicht ganz ausgeschlafen.
Vielen Dank für deine Info.
Kannst du mir bei meinem eigenlichen Problem auch weiterhelfen?
Gruß
Alf

AW: versuchs erst mal mit "Hallo" und "Ciao"..o.T.
07.05.2008 09:01:48
Chris
Servus Berger,
hier mal ein Beispiel, wie so was ausschauen könnte:

Sub sucher()
Dim rSuche As Range, rFinde As Range
Dim arrZeile() As Long, strErste As String
Dim lngspalte As Long, lngLauf As Long
Set rFinde = Range("A:A") ' suchrange
Set rSuche = rFinde.Find(what:=Range("C1").Value, LookAt:=xlWhole, LookIn:=xlValues) '  _
Suchterminus / Suchstring in C1
x = 0
If Not rSuche Is Nothing Then
strErste = rSuche.Address
Do ' Suchschleife
'MsgBox rSuche.Row
ReDim Preserve arrZeile(x) ' Einlesen Array
arrZeile(x) = rSuche.Row
x = x + 1
Set rSuche = rFinde.FindNext(rSuche)
Loop While Not rSuche Is Nothing And rSuche.Address  strErste
Else
MsgBox "Suchstring wurde nicht gefunden!"
Exit sub
End If
Set rFinde = Nothing
Set rSuche = Nothing
For lngLauf = LBound(arrZeile()) To UBound(arrZeile()) ' Arrayinhalt widergeben
MsgBox arrZeile(lngLauf)
Next lngLauf
End Sub


bei diesem Beispiel-Makro stehen die Suchbegriffe in Spalte A und der Suchstring in C1.
Gruß
Chris

Anzeige
AW: versuchs erst mal mit "Hallo" und "Ciao"..o.T.
07.05.2008 09:16:00
Oberschlumpf
Hi Chris
ups...dein Beitrag hatte ich nich gesehn....nu hat sich das Prob ja vllt erledigt
Ciao
Thorsten

AW: schau'n wir mal
07.05.2008 09:22:00
Chris
Servus Thorsten,
naja, das glaub ich noch nicht ganz. Du sagst es ja selbst, ohne "Lastenheft" gibt's sehr viel Nachbesserung.
Gruß
Chris

AW: schau'n wir mal
07.05.2008 10:37:35
Berger
Hi Chris,
dein VBA ist für den ersten Teil meines Problem eine wunderbare Lösung.
Jetzt habe ich alle Zeilennummern, in denen ein bestimmter Suchwert vorkommt.
Nur die aufsteigende Reihung erfolgt mit der aufsteigenden Zeilennummerierung.
Ist es möglich den Wert arrZeile nach dem Kriterium KM aufsteigend zu sortieren.
Wenn in Zeile 305 der Wert KM kleiner ist als in Zeile 150 dann sollte die Zeile 305 als Wert arrZeile(1) und
dann erst der die Zeile 150 als Wert arrZeile(2) auftreten.
Ich kann mir vorstellen, dass du dazu auch eine Lösung findest.
Vielen Dank.
Alf

Anzeige
AW: schau'n wir mal
07.05.2008 15:22:55
Chris
Servus Alf,
hat ein bisschen gedauert, bin jetzt erst wieder online:
Anbei eine Testversion:
Die Makros befinden sich im Modul Tabelle1:
https://www.herber.de/bbs/user/52196.xls
Hierbei wird wie gehabt erst eingelesen, dann der Array ArrOffset und ArrZeile nach ArrOffset sortiert.
Das musst du eben entsprechend deiner datei anpassen.
Gruß
Chris

AW: schau'n wir mal
08.05.2008 08:12:00
Berger
Guten Morgen Chris,
du bist einfach genial.
Das war genau das was ich benötigte.
Habe mein VBA bereits entsprechend modiviziert.
Vielen herzlichen dank.
Alf

Anzeige
AW: versuchs erst mal mit "Hallo" und "Ciao"..o.T.
07.05.2008 09:03:00
Oberschlumpf
Hi Alf
Ich kann es versuchen, würde mich aber freuen, wenn du eine Bsp-Datei per Upload zur Verfügung stellst, da ein "Nachbau" durch uns doch immer wieder mit Fehlern behaftet ist, weil der Fragende doch das eine oder andere Detail vergessen kann - und dann muss man wieder von vorn anfangen.
Ciao
Thorsten

AW: versuchs erst mal mit "Hallo" und "Ciao"..o.T.
07.05.2008 09:35:50
Berger
https://www.herber.de/bbs/user/52172.xls
Hallo Thorsten
ich soll in der Datei die am nächsten liegende VPLZ in der Letzten Spalte mit Ja kennzeichnen
alle anderen sollen mit nein gekennzeichnet sein.
Danke.
Alf

Anzeige
AW: versuchs erst mal mit "Hallo" und "Ciao"..o.T.
07.05.2008 10:17:00
Oberschlumpf
Hi Alf
Hmm...danke zwar für die Bsp-Datei, aber aufgrund deiner Beschreibungen versteh ich nun erst mal trotzdem nichts mehr, weil....
zuerst schreibst du:
Nun möchte ich per VBA alle Zeilen auslesen, die den Wert z.b. 10787 enthalten.
Die Zeilennummern sollen dann aufsteigend nach der Entfernung einer Variablen zugewiesen werden.
Eine Sortierung der Grundtabelle sollte nicht erfolgen.
Ergebnis sollte sein bei dem Wert 10787
Variablel(1) = 903; Variable(2) = 429; Variable(3) = 650; Variable(4) = 312
Ergebnis sollte sein bei dem Wert 12103

(wie setzt sich der Wert 12103 zusammen und in welcher Zeile/Spalte soll er erscheinen?)
jetzt schreibst du:
ich soll in der Datei die am nächsten liegende VPLZ in der Letzten Spalte mit Ja kennzeichnen
alle anderen sollen mit nein gekennzeichnet sein.

Nach meinem Verständnis sind das 2 völlig verschiedene Anforderungen, und ich weiß nicht, wo/wie/was ich anfangen soll.
Ciao
Thorsten

Anzeige
AW: versuchs erst mal mit "Hallo" und "Ciao"..o.T.
07.05.2008 10:29:00
Berger
Hallo Thorsten
das mit der Kennzeichnung bekomme ich dann schon hin.
Wichtig ist mir erstmal die Zeilennummern entsprechend zu ermitteln.
Das VBA von Chris ist ein ganz guter Ansatz.
Damit werden alle Zeilen wiedergegeben, die dem Suchkriterium entsprechen.
Leider nur in der aufsteigenden Reihenfolge wie sie in der Liste auftreten und
keine Sortierung nach dem Wert KM in meiner Liste.
Wenn du dazu eine Lösung hast bin ich einen ganzen Meilenstein in meinem Projekt weiter.
Vielen Dank, auch für die schnellen Rückmeldungen.
Gruß
Alf

AW: versuchs erst mal mit "Hallo" und "Ciao"..o.T.
07.05.2008 10:42:00
Oberschlumpf
Hi Alf
OK, nun ist schon mal klar, dass du nur den ersten Teil gelöst haben möchtest.
Aber...noch immer ist mir nicht bekannt, wie sich der Wert 12103 zusammen setzt, und wo er stehen soll.
Sorry, ich programmiere ungern "ins Blaue", da so etwas oft unnötigen Arbeits- und Zeitaufwand nach sich ziehen kann.
Ciao
Thorsten

Anzeige
AW: versuchs erst mal mit "Hallo" und "Ciao"..o.T.
07.05.2008 11:19:00
Berger
Hallo Thosten,
du hast ja inzwischnen meine Tabelle bestimmt auf deinem Rechner.
In Spalte A ist eine PLZ
In Spalte B der dazugehörige Ort
In Spalte C steht ebenfalls eine PLZ
In Spalte D steht nun die Entfernung zwischen Spalte A und Spalte D
Da die Informationen aus Spalte C und D aus einer Umkreisselektion entstehen bilden
sich in den Schnittbereichen der PLZ (Spalte C) doppelte oder dreifache oder vierfache Überschneidungen.
Ich möchte nun derjenigen PLZ aus Spalte A die PLZ aus Spalte C zuordnen, die am nächsten drann ist, ohne die Umkreisselektion durch löschen zu zerstören.
Ich hoffe ich konnte ihnen mein Problem ausdeutschen. Ist nicht ganz einfach zu verstehen.
Gruß Alf
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige