Makroumsetzung von Excel

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: Makroumsetzung von Excel

Re: Makroumsetzung von Excel

von sorcerer » Mo, 18.08.2008 17:10

Hallo
DANKE
Grüße
Kai

Re: Makroumsetzung von Excel

von komma4 » Mo, 18.08.2008 17:02

Kai,

so geht's:

Code: Alles auswählen

oBlatt = ThisComponent.Sheets().getByName( "save" )
oBereich = oBlatt.getCellRangeByPosition( 1, 0,  65535, 0 )


oSuchBeschr = oBlatt.createSearchDescriptor()
With oSuchBeschr
 .SearchRegularExpression = FALSE
 .SearchCaseSensitive = FALSE
 .SearchString = sSuchbegriff
End With

oGefunden = oBlatt.findFirst( oSuchBeschr )

print "gefunden in Zeile " & oGefunden.CellAddress.Row + 1 
wobei die gefundene Zeile (wenn gefunden) bei dem Suchbereich immer A ist...

Re: Makroumsetzung von Excel

von sorcerer » Mo, 18.08.2008 15:47

Hallo Komma4
Danke für die Antwort.
Die Setx Zeile läuft auch mit dem VBA Code von Excel.
Was ich nicht kann und was ich auch nicht gefunden habe ist die andere Zeile.
Die, die nach dem Wert Setx im Blatt Save in Spalte A sucht und mir die Zeilennummer zurück gibt.
x = Sheets("save").Range("a2:a65536").Find(setx).Row

Grüße
Kai

Re: Makroumsetzung von Excel

von komma4 » Mo, 18.08.2008 15:27

sorcerer hat geschrieben:Da ich mich nicht unbedingt tiefer in die OO-Makroprogrammierung einarbeiten will (es ist nur für diese Tabelle) bräuchte ich nur die OO Übersetzung
Was zahlst Du?

Das Setzen oder Lesen von Werten in Calc Zellen war des öfteren schon Gegenstand hier. Die Suchfunktion hilft Dir weiter.

setx = ThisComponent.Sheets().getByName( "save").getCellByPosition( 33, 4).getValue()

Re: Makroumsetzung von Excel

von sorcerer » Mo, 18.08.2008 14:33

Hallo
Ich hatte die Makros ja schon in Excel fertig.
Dann habe ich das xls in OpenOffice geöffnet und als sxc gespeicher.OO hat die Makros von Excel in Extras-Makros-Verwalten-Cardmaker OO-Standart-Modul1 aufgeführt.
Dort stehen die Excel Makros in Excel-VBA.
Die meisten liefen auch sofort oder nach Löschung von ein paar Zeilen (.Pattern = xlSolid).
Scheinbar geht VBA in Grenzen auch in OO, z.B.:
Sub set1()
If Range("e6") = "" Then
Range("l18").ClearContents
Range("l19").ClearContents
Else
Range("E2").Copy
Range("L18").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("E3").Copy
Range("L19").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If
wert = Range("c16")
Select Case wert
Case "Att-Will"
....
läuft ohne Probleme.
Ich denke, das setzen und laden von Zellen sollte ich auch mit VBA hinbekommen.
Da ich mich nicht unbedingt tiefer in die OO-Makroprogrammierung einarbeiten will (es ist nur für diese Tabelle) bräuchte ich nur die OO Übersetzung für:
setx = Range("E34").Value
x = Sheets("save").Range("a2:a65536").Find(setx).Row
Das Find für die row sollte sich dabei auf das Blatt "save" beziehen.
Geht das überhaupt? Nach der Antwort von Lupo sieht das für mich so aus, als wenn nur Blatt Nummer in ihrer Reihenfolge angesprochen werden können.
In einem der laufenden Excel Makros unter OO funtioniert aber auch:
Sheets("save").Cells(letzte, 2).Value = Sheets("work").Range("L18")
Grüße
Kai

Re: Makroumsetzung von Excel

von komma4 » Mo, 18.08.2008 09:01

Für das Setzen der Farbe, siehe meine Beispiele colorSelection oder colorRows

Zum Programmierenlernen für OOo: Andrew Pitonyaks Makro Dokument

Re: Makroumsetzung von Excel

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

Makroumsetzung von Excel

von sorcerer » So, 17.08.2008 14:49

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

Nach oben