VBA Projekt von Excel auf LibreOffice umschreiben

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: VBA Projekt von Excel auf LibreOffice umschreiben

Re: VBA Projekt von Excel auf LibreOffice umschreiben

von Andreas77 » Fr, 26.11.2021 07:56

Hallo

vielen Dank für die geänderte Datei. Das funktioniert wirklich perfekt. Das mit dem Drucken bekomme ich hoffentlich selber hin. Habe mir dazu schon einiges durchgelesen.

Also vielen Dank nochmal

Gruß
Andreas

Re: VBA Projekt von Excel auf LibreOffice umschreiben

von Karolus » Do, 25.11.2021 19:06

Hallo

dieser VBA-modus-schrott macht wirklich jegliche Verwendung von normalen Starbasic ziemlich schwierig, ich musste im Prinzip ein neues VBA -UNBEHELLIGTES dokument aufsetzen:
zuerst die python-variante:

Code: Alles auswählen

def backup(*_):
    doc = XSCRIPTCONTEXT.getDocument()
    sheets = doc.Sheets
    kalk = sheets.Kalkulation
    vorschlag = sheets.Vorschlag
    ausgedruckt = sheets["ausgedruckte Vorschläge"]
    data = list(zip(*vorschlag["C4:C13"].DataArray))
    data = data[0]
    name, street , city, _ ,datum, *_ , rezept = data    
    out = [[datum, name, street, city, rezept]]
    ausgedruckt["A1:E1"].DataArray = out
    ausgedruckt.Rows.insertByIndex(0,1)
    ausgedruckt.Columns.OptimalWidth = True
    vorschlag["C4:C6"].clearContents(15)
    vorschlag["C13"].clearContents(15)
    for addr in ("C5:C21", "A25:C41"):
        kalk[addr].clearContents(15)
        
das funktioniert ebenso wie analog dazu:

Code: Alles auswählen

sub backup
	doc = ThisComponent
	sheets = doc.getSheets()
	kalkulation = sheets.Kalkulation
	vorschlag = sheets.getByName("Vorschlag")
	ausgedruckt = sheets.getByName("ausgedruckte Vorschläge")
	with vorschlag
		kname = .getCellRangeByName("C4").String
		strasse = .getCellRangeByName("C5").String
		ort = .getCellRangeByName("C6").String
		datum = .getCellRangeByName("C8").Value
		rezept = .getCellRangeByName("C13").String
		.getCellRangeByName("C4:C6").clearContents(15)
		.getCellRangeByName("C13").clearContents(15)
	end with
	if kname <>"" then
		out = array(array(datum, kname, strasse, ort, rezept))
		with ausgedruckt
			.getCellRangeByName("A1:E1").setDataArray(out)
			.Rows.insertByIndex(0,1)
			.Columns.OptimalWidth = True
		end with
	end if
	with kalkulation
		.getCellRangeByName("A25:C41").clearContents(15)
		.getCellRangeByName("C5:C21").clearContents(15)
	end with
end sub
vorschlag_neu.ods
(21.6 KiB) 104-mal heruntergeladen
beide Versionen sind im Dokument, momentan wird Python-variante vom Druck-button ausgeführt.

um den "druck-auftrag" hab ich mich mangels Drucker nicht gekümmert!!

Re: VBA Projekt von Excel auf LibreOffice umschreiben

von Andreas77 » Mi, 24.11.2021 13:55

Hier mal die Originaldatei in Excelformat. Da funktioniert alles
Vorschlag - Kopie.xls
(125.5 KiB) 111-mal heruntergeladen

Re: VBA Projekt von Excel auf LibreOffice umschreiben

von Andreas77 » Mi, 24.11.2021 13:54

Karolus hat geschrieben: Mi, 24.11.2021 12:40
Andreas77 hat geschrieben: Mi, 24.11.2021 12:34 Ja habe ich ja im Text erwähnt. Leider ohne sinnvolle Unterstützung. Hoffe, dass das hier anders ist.
Ach so der Tipp option VBASupport 1 hat dir also nicht geholfen!?
nein leider nicht

Re: VBA Projekt von Excel auf LibreOffice umschreiben

von Andreas77 » Mi, 24.11.2021 13:53

Karolus hat geschrieben: Mi, 24.11.2021 12:38
Der VBA Code läuft aber nicht perfekt(er kopiert nicht alles was er kopieren soll).
super…eine winzige Information deinerseits, wenn du jetzt noch sagst wo es klemmt, und vielleicht noch die Fehlermeldung dazu ??
Und wie bereits in denem Crosspost angemerkt, wo bleibt die Testdatei? Die will sich hier ebenfalls keiner zusammenreimen, um DEIN Problem zu lösen.
Es kopiert nicht mehr ab den Bereich. Fehlermeldung kommt keine. Es kopiert einfach nur ein leeres Feld.

Code: Alles auswählen

Sheets("Vorschlag").Range("C8").Copy
            Sheets("ausgedruckte Vorschläge").Range("A1").PasteSpecial xlPasteValues
            Sheets("ausgedruckte Vorschläge").Range("A1").Insert Shift:=xlDown
            
            Sheets("Vorschlag").Range("C13").Copy
            Sheets("ausgedruckte Vorschläge").Range("K2").PasteSpecial xlPasteValues
            
    
            Sheets("Vorschlag").Select
            Range("C4,C5,C6").Select
            Selection.ClearContents
    
            Range("C4").Select
   
        
            Sheets("Kalkulation").Select
            Range("C5:C21,C25:C41,A25:A41,B25:B41").Select
            Selection.ClearContents
    
            Range("C5").Select
    
   

End Sub

Re: VBA Projekt von Excel auf LibreOffice umschreiben

von Karolus » Mi, 24.11.2021 12:40

Andreas77 hat geschrieben: Mi, 24.11.2021 12:34 Ja habe ich ja im Text erwähnt. Leider ohne sinnvolle Unterstützung. Hoffe, dass das hier anders ist.
Ach so der Tipp option VBASupport 1 hat dir also nicht geholfen!?

Re: VBA Projekt von Excel auf LibreOffice umschreiben

von Karolus » Mi, 24.11.2021 12:38

Der VBA Code läuft aber nicht perfekt(er kopiert nicht alles was er kopieren soll).
super…eine winzige Information deinerseits, wenn du jetzt noch sagst wo es klemmt, und vielleicht noch die Fehlermeldung dazu ??
Und wie bereits in denem Crosspost angemerkt, wo bleibt die Testdatei? Die will sich hier ebenfalls keiner zusammenreimen, um DEIN Problem zu lösen.

Re: VBA Projekt von Excel auf LibreOffice umschreiben

von Andreas77 » Mi, 24.11.2021 12:34

Ja habe ich ja im Text erwähnt. Leider ohne sinnvolle Unterstützung. Hoffe, dass das hier anders ist.

Re: VBA Projekt von Excel auf LibreOffice umschreiben

von Mondblatt24 » Mi, 24.11.2021 12:28

Andreas77 hat geschrieben: Mi, 24.11.2021 12:13 VBA Projekt von Excel auf LibreOffice umschreiben
Hier übrigens auch!

VBA Projekt von Excel auf LibreOffice umschreiben

von Andreas77 » Mi, 24.11.2021 12:13

Hallo Forenmitglieder,

Ich habe ein VBA Projekt, das ich gern in LibreCalc nutzen möchte. Der VBA Code läuft aber nicht perfekt(er kopiert nicht alles was er kopieren soll). Da ich "LEIHE" bin, würde ich mich über Hilfe bei diesem Problem freuen. Im LibreOffice Forum hat das zumindest nicht funktioniert. Da versucht man nicht konstruktiv einen zu Helfen und weiterzubringen, sondern hofft, das der Hilfesuchende das Problem von alleine erkennt. Daher hoffe ich, dass das hier anders ist.

Wenn ich irgendwelche Info´s noch posten soll, die hilfreich sind bitte einfach schreiben.

hier mal der Code

Code: Alles auswählen

Code: Alles auswählen

Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Sub ausgedruckteVorschlägekopieren()
    
   With Worksheets("Vorschlag")
        If .Range("C4") <> "" Then
            .Range("C4:E4").Copy Sheets("ausgedruckte Vorschläge").Range("B1")
            Sheets("ausgedruckte Vorschläge").Range("B1:K1").Insert Shift:=xlDown
        End If
        If .Range("C5") <> "" Then
            .Range("C5:E5").Copy Sheets("ausgedruckte Vorschläge").Range("E2")
        End If
        If .Range("C6") <> "" Then
            .Range("C6:E6").Copy Sheets("ausgedruckte Vorschläge").Range("H2")
        End If
    End With
    
            Sheets("Vorschlag").Range("C8").Copy
            Sheets("ausgedruckte Vorschläge").Range("A1").PasteSpecial xlPasteValues
            Sheets("ausgedruckte Vorschläge").Range("A1").Insert Shift:=xlDown
            
            Sheets("Vorschlag").Range("C13").Copy
            Sheets("ausgedruckte Vorschläge").Range("K2").PasteSpecial xlPasteValues
            
    
            Sheets("Vorschlag").Select
            Range("C4,C5,C6").Select
            Selection.ClearContents
    
            Range("C4").Select
   
        
            Sheets("Kalkulation").Select
            Range("C5:C21,C25:C41,A25:A41,B25:B41").Select
            Selection.ClearContents
    
            Range("C5").Select
    
   

End Sub
Dank schon mal an alle, die helfen wollen und können.

Andreas

Nach oben