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

Sortieren

Sortieren
30.04.2007 08:46:50
Christian
Hallo Forum!
Ich habe ein Problem mit einer sehr langen Tabelle, die ich umsortieren möchte. Die Ausgangstabelle enthält Datensätze blockweise untereinander (siehe https://www.herber.de/bbs/user/42134.xls ).
Ich möchte nun diese Blöcke (heraussuchen lassen und nebeneinander setzen. Mit SVERWEIS komme ich nicht weiter, da die Blöcke unterschiedlich groß sind.
Für eure Hilfe sehr dankbar
Christian S.

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

Betreff
Datum
Anwender
Anzeige
AW: Sortieren
30.04.2007 09:22:00
Oberschlumpf
Hi Christian
Versuch es mal mit dieser Datei:
https://www.herber.de/bbs/user/42136.xls
Mein Makro berücksichtigt nur Schlüssel 1 - 3
Sind noch mehr Schlüssel vorhanden, muss mein Code entsprechend erweitert werden.
Konnte ich helfen?
Ciao
Thorsten

AW: Sortieren
30.04.2007 09:29:06
Christian
Hi Thorsten,
habe zwar Makros aktiviert finde aber dein Markro -resp. dessen Ergebnisse- nicht. Wo finde ich den Code?
Gruß
Christian

GEFUNDEN - O.T.
30.04.2007 09:31:00
Christian

AW: Sortieren
30.04.2007 10:31:26
Christian
Hi Thorsten,
danke für deine tolle Hilfe! Ich denke, ich könnte das Makro so anpassen, dass es läuft.
Bei mir würden zwar ca. 160 case-Anweisunges stehen, aber dafür gibt es ja die Freunde copy & paste, gelle?
Erlaubt sei eine Frage:
Was fragt die erste If-Anweisung deines Makros ab?
Gruß
Christian

Anzeige
AW: Sortieren
30.04.2007 11:08:00
Oberschlumpf
Hi Christian
Du meinst das hier?

If Cells(Rows.Count, 17).End(xlUp).Row > 2 Then
Range("F2:Q" & Cells(Rows.Count, 17).End(xlUp).Row).Value = ""
End If


Die Zeile unter If löscht immer zuerst den gesamten Bereich F2:QletzteZeile
Dadurch kannst du mein Makro mehrmals verwenden.
Würde der Bereich nicht gelöscht werden, dann würde ein erneuter Makrostart alle Werte an die schon vorhandenen Werte unten "anhängen".
Die If-Zeile an sich überprüft nur, ob schon Einträge vorhanden sind.
Aber OK, ich hätte auch schreiben können
If Range("F2").Value = "" Then
...
End If
Ist vielleicht einfacher und bewirkt das Gleiche.
Ich verwendete die andere If-Variante, weil mir diese als erstes einfiel.
Konnte ich deine Frage beantworten?
Ciao
Thorsten

Anzeige
AW: Sortieren
30.04.2007 11:17:00
Christian
Hi Thorsten,
ich hoffe, du hast Geduld mit einem , der nicht viel Ahnung von VBA hat...
mir ist nicht klar, was mit dem Verkettungsoperator "&" angehängt wird. Cells(Rows.Count, 17)
Was bedeutet das?
Gruß
Christian

AW: Sortieren
30.04.2007 11:39:00
Oberschlumpf
Hi Christian
Ich fange mal vorne an :-) (versuche es zumindest)
Mit z Bsp
Range("A1").Value = 1000
wird in VBA der Zelle A1 (ganz oben links) der Wert 1000 zugewiesen.
Aber mit dieser VBA-Zeile kannst du eben NUR die Zelle A1 ansprechen und keine andere Zelle.
Wenn du aber nun z Bsp die Zellen A1 - A10 ansprechen möchtest, geht das entweder so:
Range("A1").Value = 1
Range("A2").Value = 2
Range("A3").Value = 3
Range("A4").Value = 4
Range("A5").Value = 5
Range("A6").Value = 6
Range("A7").Value = 7
Range("A8").Value = 8
Range("A9").Value = 9
Range("A10").Value = 10
die Zellen A1 - A10 haben nun den Wert 1 - 10
oder das kannst du auch so erreichen:
For Zeile = 1 To 10
Range("A" & Zeile).Value = Zeile
Next
Hier handelt es sich um eine Schleife, in der die Befehle innerhalb der Schleife bis zur größten angegeben Zahl durchlaufen werden - hier wird die Schleife also 10x durchlaufen.
Und die hier einzige Befehlszeile wird von Excel so aufgelöst:
Range("A" & Zeile).Value = Zeile ergibt
1. Durchlauf
Range("A" & 1).Value = 1 ergibt
Range("A1").Value = 1
2. Durchlauf
Range("A" & 2).Value = 2 ergibt
Range("A2").Value = 2
3. Durchlauf
Range("A" & 3).Value = 3 ergibt
Range("A3").Value = 3
....
10. Durchlauf
Range("A" & 10).Value = 10 ergibt
Range("A10").Value = 10
Der &-Operator verknüpft also den Buchstaben "A" mit dem Wert der Schleifenvariablen "Zeile".
So stimmt dann nach der Verknüpfung die Syntax für den Befehl Range(... und es können viele Zellen mit nur wenigen Befehlszeilen angesprochen werden.
Konnte ich helfen? :-)
Ciao
Thorsten

Anzeige
AW: Sortieren
30.04.2007 11:49:09
Christian
Hi Thorsten,
Aaaaahhhh, na klar!! Alles verstanden. Und wofür steht die '17' in Range("F2:Q" & Cells(Rows.Count, 17).End(xlUp).Row).Value = ""?
Christian

AW: Sortieren
30.04.2007 11:56:00
Oberschlumpf
hmm..Christian
letzte Chance...
...wenn du noch weitere Fragen hast, stelle sie bitte alle auf einmal....
Ich werde also wenn, dann nur noch 1x antworten..ok? :)
die 17 steht für die 17. Spalte
1 = Spalte A
2 = Spalte B
usw
mit dem Cells-Befehl wird die Spalte bis zur letzten benutzten Zeile auf Werte geprüft, für die der Wert - hier 17 - angegeben wurde
Konnte ich helfen?
ach ja...wenn noch weitere Fragen, dann bitte jetzt ALLE AUF EINMAL...oder erstelle einen neuen Thread, da ich ja auch noch was anderes tun muss - im neuen Thread antworten dann auch wieder andere
(ich hoffe aber, du fragst jetzt nicht Befehlszeile für Befehlszeile durch :) )
Ciao
Thorsten

Anzeige
AW: Sortieren
30.04.2007 12:03:14
Christian
Hi Thorsten,
Mit diesem neuen Wissen versuche ich nun, mich durchzukämpfen!
Danke erst mal für deine freundliche Unterstützung!
Christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige