Text in Spalten mit Makro

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

mikeleb
*******
Beiträge: 1427
Registriert: Fr, 09.12.2011 16:50

Re: Text in Spalten mit Makro

Beitrag 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?
Gruß,
mikeleb
frischling
*
Beiträge: 10
Registriert: Mi, 17.12.2014 15:09

Re: Text in Spalten mit Makro

Beitrag 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
Dateianhänge
beispiel datei.zip
(372 Bytes) 81-mal heruntergeladen
frischling
*
Beiträge: 10
Registriert: Mi, 17.12.2014 15:09

Re: Text in Spalten mit Makro

Beitrag von frischling »

Entschuldigt nochmal ich meine die Spalte J mit den Katgorien und nicht M. Danke
mikeleb
*******
Beiträge: 1427
Registriert: Fr, 09.12.2011 16:50

Re: Text in Spalten mit Makro

Beitrag von mikeleb »

Hallo,

du möchtest nicht im Ernst ein Openoffice-Makro auf eine Excel- bzw. CSV-Datei anwenden?
Gruß,
mikeleb
mikeleb
*******
Beiträge: 1427
Registriert: Fr, 09.12.2011 16:50

Re: Text in Spalten mit Makro

Beitrag 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).
Gruß,
mikeleb
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Text in Spalten mit Makro

Beitrag 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
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
mikeleb
*******
Beiträge: 1427
Registriert: Fr, 09.12.2011 16:50

Re: Text in Spalten mit Makro

Beitrag von mikeleb »

Hallo clag,
du hast völlig Recht. Vielleicht bekommst du ja eine Amtwort, meine wiederholte blieb bisher unbeantwortet.
Gruß,
mikeleb
Benutzeravatar
ChristianAC
***
Beiträge: 91
Registriert: So, 30.11.2014 23:59

Re: Text in Spalten mit Makro

Beitrag 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
Internetrechner mit Win 7 OO 3.0.0 sowie Notebook mit XP und AOO 4.1.1
VideoPoker-Spiel
Antworten