Mit Makro aus Zellinhalt Ordner erzeugen

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

Moderator: Moderatoren

Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Mit Makro aus Zellinhalt Ordner erzeugen

Beitrag 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
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Mit Makro aus Zellinhalt Ordner erzeugen

Beitrag 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
Dateianhänge
Froesche.ods
(30.88 KiB) 174-mal heruntergeladen
Lars123
Beiträge: 4
Registriert: Di, 10.11.2015 17:38

Re: Mit Makro aus Zellinhalt Ordner erzeugen

Beitrag 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.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Mit Makro aus Zellinhalt Ordner erzeugen

Beitrag 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
Lars123
Beiträge: 4
Registriert: Di, 10.11.2015 17:38

Re: Mit Makro aus Zellinhalt Ordner erzeugen

Beitrag von Lars123 »

Top!!
Läuft!!
Danke!!!
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Mit Makro aus Zellinhalt Ordner erzeugen

Beitrag 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
Lars123
Beiträge: 4
Registriert: Di, 10.11.2015 17:38

Re: Mit Makro aus Zellinhalt Ordner erzeugen

Beitrag von Lars123 »

Beispiel-Datei habe ich verwendet und in Spalte E erscheint #WERT! mit dem Hinweis "falscher Datentyp"
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Mit Makro aus Zellinhalt Ordner erzeugen

Beitrag 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. :roll:
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
Lars123
Beiträge: 4
Registriert: Di, 10.11.2015 17:38

Re: Mit Makro aus Zellinhalt Ordner erzeugen

Beitrag von Lars123 »

War das Sicherheitsproblem! Mein Fehler Sorry!
Läuft jetzt auch super!! thx
Antworten