Seite 1 von 1
Re: Mit Makro aus Zellinhalt Ordner erzeugen
Verfasst: Di, 10.11.2015 21:20
von Stephan
z.B.:
Code: Alles auswählen
Sub Main
tc = ThisComponent.Sheets().getByName("Tabelle1")
For i = 0 To 2000
If tc.getCellByPosition(0,i).FormulaLocal <> "" Then
MkDir "C:\Neu\" & tc.getCellByPosition(0,i).FormulaLocal
Else
Msgbox "Fertig"
Exit Sub
End If
Next i
End Sub
Gruß
Stephan
Re: Mit Makro aus Zellinhalt Ordner erzeugen
Verfasst: Di, 10.11.2015 21:53
von F3K Total
Hi,
hier noch eine andere Lösung mit einer benutzerdefinierten FUNCTION()
Code: Alles auswählen
CONST Mainpath$ = "C:\Neu\"
Function CREATE_DIRECTORY(A,B,C,D)
bB = false
bC = false
bD = false
IF IsNumeric(B) then
if B > 0 then bB = true
else
if B <> "" then bB = true
endif
IF IsNumeric(C) then
if C > 0 then bC = true
else
if C <> "" then bC = true
endif
IF IsNumeric(D) then
if D > 0 then bD = true
else
if D <> "" then bD = true
endif
IF bB * bC * bD = true then
IF fileexists(Mainpath + A) Then
msgbox ("Das Verzeichnis "+Mainpath + A+" existiert bereits",16,"Fehler")
CREATE_DIRECTORY = CHR(10005)
else
MKDIR Mainpath + A
CREATE_DIRECTORY = CHR(10003)
endif
else
CREATE_DIRECTORY = ""
endif
End function
Siehe Beispiel, trage in Spalte D Zahlen ein, und schau unter
C:\Neu\ nach, ob etwas passiert ist.
Ist schon bis Zeile 2000 vorbereitet.
Gruß R
Re: Mit Makro aus Zellinhalt Ordner erzeugen
Verfasst: Di, 10.11.2015 22:30
von Lars123
Schonmal vielen Dank!!
Lösung 1 funktioniert, nur muß ich hierbei die Zellinhalte noch einmal kopieren und als reinen Text einfügen, damit die hinterlegte Formel (Aneinanderreihung) verschwindet. Ist aber nur ein Schönheitsfehler. Vllt kann man ja das Makro noch so anpassen, dass der reine Inhalt gelesen wird und nicht die Formel!?
Lösung 2 habe ich auch ausprobiert. Das Makro wird ohne Fehler ausgeführt, aber es werden keine Ordner erstellt.
Re: Mit Makro aus Zellinhalt Ordner erzeugen
Verfasst: Di, 10.11.2015 22:42
von Stephan
Vllt kann man ja das Makro noch so anpassen, dass der reine Inhalt gelesen wird und nicht die Formel!?
ja, "String" statt "FormulaLocal"
Code: Alles auswählen
Sub Main
tc = ThisComponent.Sheets().getByName("Tabelle1")
For i = 0 To 2000
If tc.getCellByPosition(0,i).FormulaLocal <> "" Then
MkDir "C:\Neu\" & tc.getCellByPosition(0,i).String
Else
Msgbox "Fertig"
Exit Sub
End If
Next i
End Sub
Gruß
Stephan
Re: Mit Makro aus Zellinhalt Ordner erzeugen
Verfasst: Di, 10.11.2015 22:48
von Lars123
Top!!
Läuft!!
Danke!!!
Re: Mit Makro aus Zellinhalt Ordner erzeugen
Verfasst: Mi, 11.11.2015 06:19
von F3K Total
Zu Lösung 2
F3K Total hat geschrieben: trage in Spalte D Zahlen ein, und schau unter C:\Neu\ nach, ob etwas passiert ist.
Moin,
bei mir werden Verzeichnisse angelegt!
Kannst Du es bitte noch einmal versuchen?
Es reicht nicht, die function zu kopieren, du mußt schon die Beispieldatei verwenden.
Denn es gehört eine Formel dazu.
Gruß R
Re: Mit Makro aus Zellinhalt Ordner erzeugen
Verfasst: Mi, 11.11.2015 14:20
von Lars123
Beispiel-Datei habe ich verwendet und in Spalte E erscheint #WERT! mit dem Hinweis "falscher Datentyp"
Re: Mit Makro aus Zellinhalt Ordner erzeugen
Verfasst: Mi, 11.11.2015 17:00
von F3K Total
Hi,
kannst Du bitte mal schreiben, welche Version von OpenOffice du verwendest und mit welchem Betriebssystem?
EDIT: Vergiß es.
Ich habe es gerade unter Windows mit
AOO 4.1.2, AOO 3.4.1 und OO 3.3.0 sowie LO 5.0.3, LO 4.4.6, LO 4.3.7 und LO 4.2.8 erfolgreich getestet.
... Das Ergebnis
#Wert bekomme ich nur, wenn ich die Ausführung von Makros
NICHT zulasse.
Natürlich muss die Ausführung von Makros zugelassen werden, sonst kann es nicht funktionieren.
Damit das Makro laufen darf, stellst du unter Extras/Einstellungen/Openoffice/Sicherheit/Makrosicherheit mindestens die Stufe "Mittel" ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest. Das beantwortest du mit "Makros aktivieren".
Gruß R
Re: Mit Makro aus Zellinhalt Ordner erzeugen
Verfasst: Mi, 11.11.2015 17:37
von Lars123
War das Sicherheitsproblem! Mein Fehler Sorry!
Läuft jetzt auch super!! thx