von lupolupp1 » Mo, 18.08.2008 07:57
Hallo Kai,
in OpenOffice sind die Makros, anders als bei Excel VBA, nicht mit einem Tabellenblatt verknüpft. Wenn du ein Makro in einem bestimmten Tabellenblatt oder von einem bestimmten Button aus starten möchtest, so muss man den Code entsprechend zuordnen.
Wenn du daher einfach mit Cells() oder Range arbeitest, weiß der Code nicht, was du meinst.
Du musst folgende Adressierung verwenden:
oRange = ThisComponent.Sheets(0).getByIndex(0).getCellRangeByName("N17:N19")
oRange.Select
Ggf. musst du noch den Wert des Sheets ändern.
Bei OpenOffice beginnt die Adressierung übrigens mit 0 und nicht mit 1!
Ich bin auch relativ neu, hoffe, dass es so funktioniert und ich dir helfen konnte.
Viele Grüße
Lupo
sorcerer hat geschrieben:Hallo
Ich bin neu hier und programmiere eigentlich Excel-VBA.
Ich habe eine kleine Tabelle mit ein paar Makros für ein Spiel erstellt.
Da ein paar meiner Freunde Open Offic benutzen ,habe ich diese Tabelle auf Open Office umgestellt.
Die Formeln waren kein Problem und die meisten Makros paar der Makros laufen auch nach ein paar Anpassungen.
Ein Makro bekomme ich aber nicht zum laufen. Das Makro sucht auf einem anderen Blatt eine Zeile mit dem Wert aus E34 und damit dort 3 Werte.
Die 3 Werte werden eingetragen, der dritte ist auch die Farbe für die Fläche.
Wie sieht dies Makro in OpenOffice aus?
Grüße und Danke für die Hilfe
Kai
Sub Set_laden()
setx = Range("E34").Value
x = Sheets("save").Range("a2:a65536").Find(setx).Row
'1
Sheets("work").Range("L16").Value = Sheets("save").Cells(x, 4) 'color
Sheets("work").Range("L18").Value = Sheets("save").Cells(x, 2) 'wert1
Sheets("work").Range("L19").Value = Sheets("save").Cells(x, 3) 'wert2
colorx = Sheets("save").Cells(x, 4)
Range("L17:L19").Select
With Selection.Interior
.ColorIndex = colorx
.Pattern = xlSolid
End With
'2
Sheets("work").Range("n16").Value = Sheets("save").Cells(x, 7) 'color
Sheets("work").Range("n18").Value = Sheets("save").Cells(x, 5) 'wert1
Sheets("work").Range("n19").Value = Sheets("save").Cells(x, 6) 'wert2
colorx = Sheets("save").Cells(x, 7)
Range("n17:n19").Select
With Selection.Interior
.ColorIndex = colorx
.Pattern = xlSolid
End With
end sub
Hallo Kai,
in OpenOffice sind die Makros, anders als bei Excel VBA, nicht mit einem Tabellenblatt verknüpft. Wenn du ein Makro in einem bestimmten Tabellenblatt oder von einem bestimmten Button aus starten möchtest, so muss man den Code entsprechend zuordnen.
Wenn du daher einfach mit Cells() oder Range arbeitest, weiß der Code nicht, was du meinst.
Du musst folgende Adressierung verwenden:
oRange = ThisComponent.Sheets(0).getByIndex(0).getCellRangeByName("N17:N19")
oRange.Select
Ggf. musst du noch den Wert des Sheets ändern.
Bei OpenOffice beginnt die Adressierung übrigens mit 0 und nicht mit 1!
Ich bin auch relativ neu, hoffe, dass es so funktioniert und ich dir helfen konnte.
Viele Grüße
Lupo
[quote="sorcerer"]Hallo
Ich bin neu hier und programmiere eigentlich Excel-VBA.
Ich habe eine kleine Tabelle mit ein paar Makros für ein Spiel erstellt.
Da ein paar meiner Freunde Open Offic benutzen ,habe ich diese Tabelle auf Open Office umgestellt.
Die Formeln waren kein Problem und die meisten Makros paar der Makros laufen auch nach ein paar Anpassungen.
Ein Makro bekomme ich aber nicht zum laufen. Das Makro sucht auf einem anderen Blatt eine Zeile mit dem Wert aus E34 und damit dort 3 Werte.
Die 3 Werte werden eingetragen, der dritte ist auch die Farbe für die Fläche.
Wie sieht dies Makro in OpenOffice aus?
Grüße und Danke für die Hilfe
Kai
Sub Set_laden()
setx = Range("E34").Value
x = Sheets("save").Range("a2:a65536").Find(setx).Row
'1
Sheets("work").Range("L16").Value = Sheets("save").Cells(x, 4) 'color
Sheets("work").Range("L18").Value = Sheets("save").Cells(x, 2) 'wert1
Sheets("work").Range("L19").Value = Sheets("save").Cells(x, 3) 'wert2
colorx = Sheets("save").Cells(x, 4)
Range("L17:L19").Select
With Selection.Interior
.ColorIndex = colorx
.Pattern = xlSolid
End With
'2
Sheets("work").Range("n16").Value = Sheets("save").Cells(x, 7) 'color
Sheets("work").Range("n18").Value = Sheets("save").Cells(x, 5) 'wert1
Sheets("work").Range("n19").Value = Sheets("save").Cells(x, 6) 'wert2
colorx = Sheets("save").Cells(x, 7)
Range("n17:n19").Select
With Selection.Interior
.ColorIndex = colorx
.Pattern = xlSolid
End With
end sub[/quote]