Seite 1 von 1

VBA Makro in Starbasic

Verfasst: Di 28. Mai 2013, 11:14
von xr3daronx
Hallo zusammen,

ich bräuchte nochmal eure Hilfe.
Ich habe diesen VBA-Code eines Makros das in Excel aufgezeichnet wurde, dieses Funktioniert momentan nicht und es kommt immer ein Fehler (siehe Anhang).
Der erste Fehler wird bei dem ersten "Selection.Copy" angezeigt.
Nach etwas Recherche war mir klar, dass dieser VBA-Code umgeschrieben werden muss.
Allerdings besitze ich keine Kenntnisse in Starbasic und nur Schulkenntnisse in VBA, daher frage ich ob ihr mir behilflich seien könnt.

Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1


Sub zurück()
'
' zurück Makro
' Makro am 10.11.97 von Rodriguez aufgezeichnet
'

'
Sheets("Tarif Wackler ").Select
Range("B8").Select
End Sub
Sub Zoneneinstellung()
'
' Zoneneinstellung Makro
' Makro am 10.11.97 von Rodriguez aufgezeichnet
'

'
Range("B8").Select
Sheets("Zoneneinteilung").Select
Range("A1").Select
End Sub
Sub PLZ()
'
' PLZ Makro
' Makro am 10.11.97 von Rodriguez aufgezeichnet
'
'
Range("B8").Select
Sheets("Zoneneinteilung").Select
Columns("B:B").Select
Selection.Copy
Sheets("Tarif Wackler ").Select
Range("A8").Select
ActiveWindow.LargeScroll Down:=1
Range("A22").Select
ActiveSheet.Paste
Range("A23:A45").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Druck").Select
Range("C56").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("Tarif Wackler ").Select
Range("A46:A69").Select
Selection.Copy
Sheets("Druck").Select
Range("E56").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("Tarif Wackler ").Select
Range("A70:A93").Select
Selection.Copy
Sheets("Druck").Select
Range("G56").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("Tarif Wackler ").Select
Range("A94:A117").Select
Selection.Copy
Sheets("Druck").Select
Range("I56").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1").Select
Sheets("Tarif Wackler ").Select
ActiveWindow.LargeScroll Down:=-1
Range("A84").Select
ActiveWindow.LargeScroll Down:=-1
Range("A67").Select
ActiveWindow.LargeScroll Down:=-1
Range("A50").Select
ActiveWindow.LargeScroll Down:=-1
Range("A33").Select
ActiveWindow.LargeScroll Down:=-1
Range("A22:A117").Select
Selection.ClearContents
Range("B8").Select
End Sub
Ich hoffe ihr könnt mir helfen.

Re: VBA Makro in Starbasic

Verfasst: Di 28. Mai 2013, 13:21
von karolus
Hallo
Steht da doch klar und deutlich:
"Das Kommando kann nicht auf Mehrfachselektionen angewendet werden."

Karolus

Re: VBA Makro in Starbasic

Verfasst: Di 28. Mai 2013, 15:48
von xr3daronx
Danke Karolus,
hab das ja auch schon gelesen.
Mir geht es eigentlich darum, wie ich dieses Problem lösen kann.
Hab von Makroprogrammierung leider nicht so viel Ahnung.

xr3daronx

Re: VBA Makro in Starbasic

Verfasst: Di 28. Mai 2013, 16:01
von karolus
Hallo
Hab von Makroprogrammierung leider nicht so viel Ahnung.
Und deshalb sollen wir uns durch gefühlt 100 Zeilen VBA-murks durchwühlen, aus dem Code erfassen worum es eigentlich geht, um dir einen Code zu schreiben der auf exakt diesem einen Anwendungfall funktioniert.?

Karolus

Re: VBA Makro in Starbasic

Verfasst: Di 28. Mai 2013, 16:08
von xr3daronx
Wenn es sehr viel Arbeit ist dann lässt es sich nicht ändern, es hätte ja auch sein können das man nur eine Zeile ändern muss oder so.
Aber dann weiß ich wenigstens bescheid.

xr3daronx

Re: VBA Makro in Starbasic

Verfasst: Di 28. Mai 2013, 16:23
von karolus
Hallo
Es ist keine Frage von 'viel' oder 'wenig' Arbeit.
Ich persönlich habe keine Lust dazu mich mit einem Code zu beschäftigen der im wesentlichen auf einem Tabellenblatt mit dem schicken Namen "Tarifwackler" hin und her scrollt und dabei verschiedene oder identische Copy&Paste Aktionen ausführt.

Karolus

Re: VBA Makro in Starbasic

Verfasst: Do 13. Jun 2013, 12:10
von spanier
Hallo,

Selection.Copy aus Excel.VBA funktioniert leider nicht unter Calc-Basic.

Du müsstest einen Bereich definieren, der dem selektierten Bereich entspricht (Beispiel "A1:A10"). Dann diesen Bereich selektieren und ihn dann kopieren. Das sind mindestens 3 Befehlszeilen in Basic. Es ist leider so, das man in Calc-Basic selber mehr Programmieren muss als in Excel-VBA, bedingt einerseits durch das Objektmodel von Calc und Basic andererseits durch die reichhaltige Vielfalt der Objektzugriffe.

Gruß Spanier