Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
556to560
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
556to560
556to560
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabelle erstellen

Tabelle erstellen
02.02.2005 09:59:48
Oemes
Hi Zusammen!
Ich habe in Excel Daten als Liste aus einer txt-Datei importiert. Diese Daten stehen jeweils als ein langes Wort in Spalte A. In der ersten Zeile der Spalten B bis E habe ich eine Aufteilung des Datenstrings vorgenommen. Jetzt will ich mit einem Makro alle Zeilen der Liste automatisch ausfüllen. Ein weiterer Punkt ist aber, das die Gesamtlänge der Liste variiert und das Ausfüllen der Zeilen mit der letzten Zeile der Liste enden muss.
Dachte als Lösung alles in eine Zählschleife zu packen. Habt ihr ne bessere Idee?
Als Beispiel habe ich eine kleine Datei hochgeladen:

Die Datei https://www.herber.de/bbs/user/17306.xls wurde aus Datenschutzgründen gelöscht

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

Betreff
Datum
Anwender
Anzeige
AW: Tabelle erstellen
Luc
Hallo Oemes,
das bringt eine for...next-Schleife nicht! Nimm do...loop! Vgl dazu die lfd Diskussion auf die Frage von Henri und meine Antworten!
Gruß Luc
AW: Tabelle erstellen
02.02.2005 10:30:07
Roland
@ Oemes,
unterstellt, die eingelesenen Texte landen immer in Spalte A und die von dir entwickelten Formeln passen auch auf die weiteren Datensätze:

Sub TexteEntzerren()
Range("G1").FormulaR1C1 = "=TRIM(MID(RC[-6],17,28))"
Range("H1").FormulaR1C1 = "=LEFT(RC[-1],FIND("" "",RC[-1]))"
Range("I1").FormulaR1C1 = "=TRIM(RIGHT(RC[-2],LEN(RC[-2])-LEN(RC[-1])))"
Range("J1").FormulaR1C1 = "=MID(RC[-9],45,4)"
Range("K1").FormulaR1C1 = "=VALUE(RIGHT(RC[-10],8))"
With Range("G1:K" & Range("A65536").End(xlUp).Row)
.FillDown
.Copy
.PasteSpecial Paste:=xlPasteValues
End With
End Sub

Dieser Ansatz kopiert deine Formeln solange runter, wie in Spalte A was eingetragen ist und ersetzt die Formelergebnisse durch Festwerte.
Feedback wäre nett :-))
@ Luc
Dein Einwand passt bei der vorliegenden Aufgabenstellung nicht, da sie ohne Schleife zu lösen ist. Selbst wenn man eine Schleife anwendet, könnte eine For-Next-Schleife angewendet werden.
Gruß Roland
Anzeige
sah auf 1.Blick so aus, macht weiter -owT
Luc
AW: Tabelle erstellen
03.02.2005 08:38:26
Oemes
Hi Roland!
Dein Ansatz läuft bestens! Dank dir! Könntest du vielleicht noch kurz erklären, was die Argumente der With-Anweisung sind(With Range("G1:K" & Range("A65536").End(xlUp).Row)
und .PasteSpecial Paste:=xlPasteValues)? Schon mal ein Dank im voraus!
AW: Tabelle erstellen
03.02.2005 11:01:07
Roland
Hallo Oemes,
Range("A65536").End(xlUp).Row ist die letzte Zeile mit Inhalt in Spalte A, Range("G1:K" & .. erfasst damit die SpaltenG-K bis zu der besagten Zeile.
PasteSpecial Paste:=xlPasteValues heißt nichts anderes als "Werte kopieren" und bewirkt hier, dass nur noch die Formelergebnisse in der Tabelle stehen. Ich mache das immer dann, wenn ich bei der weiteren Arbeit mit der Tabelle die Formeln nicht mehr brauche. Du kannst die Zeilen
.Copy
.PasteSpecial Paste:=xlPasteValues
auch weg lassen, dann stehen eben die heruntergezogenen Formeln in der Tabelle.
Gruß Roland
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige