Seite 2 von 2

Re: Text in Spalten mit Makro

Verfasst: Di, 10.03.2015 13:52
von mikeleb
Hallo,

nochmal meine Frage: Macht das Makro das, was es soll oder nicht?
nun will ich eine spalte ( bei die spalte M )
Im Makro wird die Spalte E aufgesplittet (so wie dein Beispiel es wünscht). Welche Spalte meinst du?

Re: Text in Spalten mit Makro

Verfasst: Di, 10.03.2015 14:57
von frischling
Hallo,
als anhang habe ich die richtige datei eingefügt wo die spalte M gespaltet werden muss. Vielen Dank für die Hilfe

Re: Text in Spalten mit Makro

Verfasst: Di, 10.03.2015 15:00
von frischling
Entschuldigt nochmal ich meine die Spalte J mit den Katgorien und nicht M. Danke

Re: Text in Spalten mit Makro

Verfasst: Di, 10.03.2015 16:06
von mikeleb
Hallo,

du möchtest nicht im Ernst ein Openoffice-Makro auf eine Excel- bzw. CSV-Datei anwenden?

Re: Text in Spalten mit Makro

Verfasst: Di, 10.03.2015 19:52
von mikeleb
Hallo,

in Ergänzung: So richtig verstehe ich nach wie vor nicht, was dein Ziel ist.
Du hast eine csv-Datei, die du mit Calc öffnest. Anschließend willst du eine Spalte noch einmal in mehrere Spalten aufsplitten. Und dann? Als Calc -Datei weiterbenutzen, wieder als csv speichern, ...?
In einer csv-Datei kannst du aber keine Makros speichern.
Also wäre eine Variante, das Makro nicht in einer Datei sondern unter ->Makros->Basic -> Meine Makros-> Standard abzulegen. Dann ist es für alle Dokumente verfügbar.
Ich habe das Makro noch etwas erweitert:

Code: Alles auswählen

Sub text_in_spalten
	spalte=9	'Spaltennummer beginnend bei 0
	anzahl=4	'Zerlegung in ... Spalten
	odoc=thiscomponent
	oblatt=odoc.Sheets(0)
	oblatt.columns.insertbyindex(spalte+1,anzahl-1)
	ocurs = oblatt.createCursor()
	ocurs.gotoEndOfUsedArea(False)
	adress = ocurs.RangeAddress
	lastRow = ocurs.Rangeaddress.StartRow
	obereich=oblatt.getcellrangebyposition(spalte,1,spalte,lastRow)
	aText=oBereich.getdataarray
	for i=lbound(aText) to ubound(aText)
		alt=aText(i)(0)
		neu()=split(alt," > ",anzahl)
		Redim preserve neu(anzahl-1)
		for j=0 to anzahl-1
			if isempty(neu(j)) then neu(j)=""
		next 
		aText(i)=neu()
	next
	obereich=oblatt.getcellrangebyposition(spalte,1,spalte+anzahl-1,lastRow)
	oBereich.setdataarray(aText)
End Sub
In den ersten beiden Zeilen kannst du festlegen, welche Spalte (9=J) in wie viele zerlegt werden soll (hier: aus 1 mach 4).

Re: Text in Spalten mit Makro

Verfasst: Mi, 11.03.2015 08:19
von clag
Hallo ihr Beiden,

wenn man hier mitliest erscheint es schon etwas merkwürdig wie sich das Thema entwickelt und welche Ansprüche frischling hat,
im zweiten Beitrag steht
frischling hat geschrieben: ich habe das Ziel das ganze später mit einer batch zu Automatisieren und weil sich die csv Datei jeden tag ändert
warum dieser ganze Zauber mit Calc und CSV import ?

CSV's haben auch deshalb immer noch ihre Berechtigung weil man sie mit Komandozeilenbefehlen leicht bearbeiten kann,
also warum tut frischling nicht das was er ankündigt und vorgibt eigentlich tun zu wollen nämlich das Problem mit einer Batch lösen?

Manchmal scheint doch wirklich der Weg das ziel zu sein;)

Mit ein paar Zeilen in einer Batchdatei ist das für 50 CSV Dateien in 10 Sekunden erledigt, je nach Größe der CSV

ACHTUNG dies ist eine DOS batchdatei!

Code: Alles auswählen

@echo off &setlocal
set "search=Kategorie,E"
set "replace=Kategorie,,,,E"
set "search2= > "
set "replace2=,"
for /f %%x in ('dir /b *.csv') do (
(for /f "delims=" %%i in (%%x) do (
    set "line=%%i"
    setlocal enabledelayedexpansion
    set "line=!line:%search%=%replace%!"
    set "line=!line:%search2%=%replace2%!"
    echo(!line!
    endlocal
))>"%%~nx"
ren %%x ~%%~nx.bak
ren %%~nx %%~nx.csv
)
diese batch generiert aus allen *.csv Dateien im aktuellen Verzeichnis
eine nach frischlings Vorgaben geänderte Version, die original Dateien bleiben als *.bak erhalten.

CSV Dateien die nicht dieser Prozedur unterzogen werden sollen, sollten sich auch nicht in dem Verzeichnis befinden.

viel Erfolg

Re: Text in Spalten mit Makro

Verfasst: Mi, 11.03.2015 15:13
von mikeleb
Hallo clag,
du hast völlig Recht. Vielleicht bekommst du ja eine Amtwort, meine wiederholte blieb bisher unbeantwortet.

Re: Text in Spalten mit Makro

Verfasst: Do, 12.03.2015 10:52
von ChristianAC
meine Fresse,pfiffig pfiffig
man wundert sich immer wieder neu
über die Skillz mancher Leute hier

böhmisches Dorf, ich grüsse dich