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

fdd

fdd
11.08.2004 14:44:11
d
Hallo ihr Excel-Freaks! ;)
Ich hab da ein Problem und ich bin mir einfach nicht sicher, wie ich das lösen soll. Vielleicht könnt ihr mit ja auf die Sprünge helfen, wäre supi.
Folgendes Szenario:
In der Spalte A meiner Excel-Tabelle steht Text, also z.B.
A1: franz
A2: hans
A3: karl
So jetzt möchte ich aber den Inhalt meiner Zellen nicht immer von Hand eingeben, sondern hab mir einen Code geschrieben, der das für mich übernimmt. Das heißt also, ich lasse eine InputBox aufkommen, die mich nach dem Inhalt befragt, nach dem Klick auf OK soll das Makro dann in der Lage sein, den eingegebenen Begriff mit den bereits vorhandenen Zellinhalten zu vergleichen und mir dann an der richtigen alphabetischen Stelle eine Zeile einfügen und in dieser dann den Inhalt der InputBox reinschreiben.
Veranschaulicht sieht das dann so aus:
Tabelle:
A1: franz
A2: hans
A3: karl
nach der Eingabe von "gustav" in die InputBox, wird eine Zeile an der richtigen alphabetischen Stelle eingefügt und der Inhalt reingeschrieben, also:
Tabelle:
A1: franz
A2: hans
A3: gustav
A4: karl
Ich hoffe, ihr konntet mein Problem verstehen und wisst eventuell einen Lösungsansatz.
Vielen Dank schonmal an euch.

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: fdd
PeterW
Hallo ? (Realnamen werden hier gerne gesehen),
warum gehst du nicht den umgekehrten Weg? Zeichne dir ein Sortiermakro auf, gib die Namen am Ende der Liste ein und lass dann per Knopfdruck sortieren.
Gruß
Peter
AW: fdd
11.08.2004 15:00:08
Michl
Hallo PeterW!
Danke erstmal für deine Antwort. Ähm ja ich weiß, das des Mist war, hab des auch in meinem anderen Beitrag "Stringvergleich - komplex" reingeschrieben, kannst ja mal reinschaun.
Das sich das alphabetische Sortieren mit der Makro-Aufzeichnen-Funktion realisieren lässt, weiß ich schon.
Das Problem ist aber leider etwas komplexer, als ich es beschrieben habe, ich wollte es nur möglichst einfach beschreiben.
Neben den Zellen A1, A2 etc. stehen weitere Zellen mit Inhalten, ich müsste dann also komplette Datensätze alphabetisch sortieren lassen.
Deshalb möchte ich ja einen Stringvergleich machen und anschließend an der richtigen Stelle einfügen lassen, das ist meines erachtens leichter zu realisieren.
Anzeige
Bereich sortieren
PeterW
Hallo Michl,
dem kann ich nicht ganz folgen. Soll nicht immer nach einer Spalte als erstes Kriterium sortiert werden?
Gruß
Peter
AW: Bereich sortieren
11.08.2004 15:13:08
Claudi
Die einfachste Möglichkeit ist es doch in diesem Falle sich das ganze mal vom Excel aufzeichnen zu lassen und dann nach seinen Wünschen noch etwas abzuändern.
Ich hatte das Problem auch und habe es wie folgt gelöst.
Fügt immer an die letzte Zeile an, also die erste die wieder frei ist
s = InputBox(Beschreibung,Titel)
Range("A65536").End(xlUp).Offset(1, 0) = s
Sortiert dir dann das gesamte Tabellenblatt nach Spalte A
Tabelle.Activate
Range("A3:IS65535").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Gruß Claudi
Anzeige
AW: Bereich sortieren
Michl
Entschuldige, ich hab mich glaub nicht präzise genung ausgedrückt.
Also angenommen es sieht so aus:
A1: hans B1: hans.doc C1: 16.07.1999
B2: hans_s.ppt C2: fehlt noch
B3: hans_z.ppt C3: existiert
A4: gerhard B4: gerhard.doc C4: 04.06.2001
B5: gerhard_s.ppt C5: existiert
B6: gerhard_z.ppt C6: fehlt noch
So in etwa sieht die Excel-Matrix aus. Wenn ich jetzt eben die Spalten nach der Eingabe einfach sortieren lasse, dann stimmen ja die Daten nicht mehr überein. Deshalb wollte ich, dass die Eingabe der InputBox (z.B. peter) mit den Zellnamen der Spalte A verglichen wird und dann soll das Makro automatisch an der richtigen Stelle drei neue Zeilen einfügen und zwar so, dass die alphabetische Reihenfolge noch eingehalten wird und dort wird dann der Inhalt "peter" in die erste Spalte eingefügt und dann kann ich eben die nebenstehenden dazugehörigen Zellen ausfüllen.
Die Zellen A1, B1, B2, B3, C1, C2, C3 müssen immer so zusammenhängen, wie ich sie oben angegeben habe. Das gleiche gilt für die Zellen A4, B4, B5, B6, C4, C5, C6.
Ich hoffe, du kannst jetzt mein Problem nachvollziehen.
Anzeige
AW: Bereich sortieren
PeterW
Hallo Michl,
jetzt verstehe, was du möchtest. Schau dir das mal an, ist nicht elegant aber funktioniert.

Sub Michl()
Dim strText As String
Dim lngRow As Long
strText = InputBox("Name eingeben", "Name?")
'die Namen beginnen in Zeile 1, ansonsten lngRow anpassen!!
lngRow = 1
Do Until Cells(lngRow, 1) > strText Or Cells(lngRow, 1) = ""
lngRow = lngRow + 3
Loop
Rows(lngRow & ":" & lngRow + 2).Insert
Cells(lngRow, 1) = strText
End Sub

Gruß
Peter
AW: Bereich sortieren
Michl
Vielen Dank Peter!
Ich werde es gleich Morgen ausprobieren und dir dann selbstverständlich bescheid sagen.
Also bis dahin,
viele Grüße
Anzeige
AW: Bereich sortieren
PeterW
Hallo Michl,
bevor du es versuchst solltest du noch eine Zeile einfügen: nach
strText = InputBox("Name eingeben", "Name?")
die Zeile
If strText = "" Then Exit Sub.
Falls du den Code abbrichst werden dir sonst oben in der Tabelle leere Zeilen eingefügt.
Gruß
Peter
AW: Bereich sortieren
Michl
How, supi supi!
Peter du hast mir echt super geholfen, der Code lübbt einwandfrei, ohne Probleme. :)
Großes Danke an dich.
MfG,
Michl
AW: Bereich sortieren
Michl
Hallo Peter!
Du jetzt gibts doch ein Problem mit dem Code.
Ich hab das Phenomen beobachtet, dass alle Begriffe ab dem Buchstaben R (also R, S, T, U, V, W, X, Y, Z) nicht mehr korrekt eingeordnet werden.
Wenn also ein Begriff ab dem Buchstaben R in die InputBox eingegeben wird, kann er diesen nicht mehr richtig einordnen, er schreibt ihn irgendwo in die Spalte A rein.
Der Vorgang an und für sich läuft ja korrekt ab, nur die alphabetische Einordnung funktioniert dann nicht mehr.
Kannst du mir eventuell weiterhelfen? Hoffe du weißt woran des liegt.
Gruß,
Michl
Anzeige
AW: Bereich sortieren
PeterW
Hallo Michl,
kann ich nur bedingt nachvollziehen. Probleme gibt es, wenn du mal Groß- und mal Kleinbuchstaben benutzt. Das läßt sich hiermit umgehen:

Sub Michl()
Dim strText As String
Dim lngRow As Long
strText = InputBox("Name eingeben", "Name?")
If strText = "" Then Exit Sub
'die Namen beginnen in Zeile 1, ansonsten lngRow anpassen!!
lngRow = 1
Do Until WorksheetFunction.Proper(Cells(lngRow, 1)) > WorksheetFunction.Proper(strText) Or Cells(lngRow, 1) = ""
lngRow = lngRow + 3
Loop
Rows(lngRow & ":" & lngRow + 2).Insert
Cells(lngRow, 1) = WorksheetFunction.Proper(strText)
End Sub

Wenn es das nicht war lade bitte eine Beispieltabelle auf den Server.
Gruß
Peter
Anzeige
AW: Bereich sortieren
Michl
Ok, danke. An der Groß-und Kleinschreibung kann es auf jeden Fall nicht liegen,da ich alles einheitlich aufgebaut habe.
Höchstwahrscheinlich liegt es nicht an deinem Codeteil, sondern an dem Restlichen, den ich programmiert habe. Wahrscheinlich habe ich da irgendwo einen Fehler eingebaut, mal schaun.
Ich hoffe ich finde ihn, ansonsten meld ich mich nochmal und lade eine Beispieltabelle auf den Server hoch.
Trotzdem Danke für deine Bemühungen.
AW: Bereich sortieren
Michl
So Peter, ich hab meinen Fehler gefunden!
War ein Fehler meinerseits, hab ich auch jetzt erst gesehen.
Also nochmal ein riesen Dankeschön an dich, dass du mir weitergeholfen hast. :)
Tschö,
Michl
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige