Frage zum Übersetzten

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: Frage zum Übersetzten

Re: Frage zum Übersetzten

von Andre01 » Di, 24.02.2009 07:41

Hallo
sorry war mit anderen Sachen beschäftigt und habe das Problem etwas vor mir her geschoben.

von den Sachen von denen Du gerade sprichst Hawe habe ich leider überhaupt keine Ahnung. Ich war froh das ich das Problem mit hilfe in Excel gelöst bekommen habe.
Also die sache mit der Ereignislösung hört sich für mich schon ganz gut an. Aber die frage kommt bei der Praxis ausführung.

gruß André

Re: Frage zum Übersetzten

von hawe » Mo, 02.02.2009 11:09

oo Kann das schon....
Nur nicht mit dem Ansatz aus Excel.

Vereinfachen würde sich das Problem, die Farbeinstellung per Bedingter Formatierung zu machen. Dazu wäre eine abfragbare Bedingung im Tabellenblatt notwendig - gibt es die oder kann man die konstruieren.
Oder man macht eine Ereignislösung, einen Modify-Listener, der Veränderungen der Zelle erkennt und darauf reagiert...

Re: Frage zum Übersetzten

von Andre01 » So, 01.02.2009 21:06

Hallo Hawe,
also das mit den Farben hat den Hintergrund das sich sowas in einer Übersicht besser an sehen läßt.
Die Funktion farben_zählen die ich in meiner Antwort beigefügt habe ist aus Excel und Funktioniert.
Ich habe leider nicht so ganz verstanden was du meinst Hawe.
Denke was Du mir sagen wolltest ist das das übersetzten nicht funktioniert bzw. das OOO das nicht kann?

Gruß André

Re: Frage zum Übersetzten

von hawe » Do, 29.01.2009 14:41

Der ANsatz in XL mit Volatail ist ein Krücke und verbietet sich bei einer sauberen Programmierung.

Grundsätzlich wäre zu fragen, wieso man eigentlich Farben zählen will?
Richtig angefasst wäre eine Bedingung in der Tabelle zu hinterlegen und eine Bedingte Formatierung zur Farbanzeige anzuwenden.
Dann hätte man die Bedingung entsprechend auszuwerten.
ODER
man arbeitet Ereignisgesteuert.
Nutzt das Change-Ereignis in XL bzw. einen Modify-Listener in Calc und wertet damit die Farbinformation in dem fraglichen Zellenbereich aus...

Re: Frage zum Übersetzten

von Andre01 » Fr, 23.01.2009 09:24

Hallo Jürgen
Es hilft mir im Prinzip schon etwas weiter. etwas zu mindest
In Excel war es so da habe ich ich das makro aufgerufen
=farbezählen(A3:BH33;3)
das erste ist der Anfangsbreich, Endbreich, und das dritte ist die Farbe die gezählt werden soll.

Damit ist es halt eine "allgemeine Funktion" die ich aus jeder Zelle ausrufen kann.

Hintergrund ist halt das es sich um einen Breitschaftplan handelt und mit der Funktion sollen die farblich Markierten Tage ( bereitschaft, urlaub usw. ) gezählt werden.
In deinem Makro ist es eine Box die ja aufgeht, Ich brauche das in einem Feld.

Gruß André

Re: Frage zum Übersetzten

von turtle47 » Do, 22.01.2009 19:41

Hallo André,
Andre01 hat geschrieben:Mit Range kann OOO wohl nicht wirklich was anfangen.
Wieso nicht?
Andre01 hat geschrieben:Kann mir jemand dabei helfen.
Ich will's mal versuchen.

Wenn Du über Menue > Einfügen > Namen > Festlegen einem Zellbereich einen Namen "Bereich" vergeben hast funktioniert folgender Code:

Code: Alles auswählen

Sub Farben_zaehlen1
	oDoc = thisComponent
	oSheet = oDoc.sheets(0)
	oCellRange = osheet.getCellRangeByName("Bereich") 'Bereich der überprüft wird
	iErsteSpalte = oCellRange.rangeAddress.startColumn
	iErsteZeile = oCellRange.rangeAddress.startRow
	iLetzteSpalte = oCellRange.rangeAddress.EndColumn
	iLetzteZeile = oCellRange.rangeAddress.EndRow
	For i = 0 to iLetzteZeile
	For m = 0 to iLetzteSpalte
	oCell=oCellRange.getCellByPosition(m,i)
	if oCell.Cellbackcolor <> -1 Then
	x = x + 1
	end if	
	next m
	next i
	msgbox "Anzahl farbiger Zellen = " & x
End Sub
Ansonsten geht auch das:

Code: Alles auswählen

Sub Farben_zaehlen2
	oDoc = thisComponent
	oSheet = oDoc.sheets(0)
	oCellRange = osheet.getCellRangeByName("A1:B10")'Bereich der überprüft wird
	iErsteSpalte = oCellRange.rangeAddress.startColumn
	iErsteZeile = oCellRange.rangeAddress.startRow
	iLetzteSpalte = oCellRange.rangeAddress.EndColumn
	iLetzteZeile = oCellRange.rangeAddress.EndRow
	For i = 0 to iLetzteZeile
	For m = 0 to iLetzteSpalte
	oCell=oCellRange.getCellByPosition(m,i)
	if oCell.Cellbackcolor <> -1 Then
	x = x + 1
	end if	
	next m
	next i
	msgbox "Anzahl farbiger Zellen = " & x
End Sub
Hilft das weiter?

Viel Erfolg.

Jürgen

Frage zum Übersetzten

von Andre01 » Do, 22.01.2009 12:38

Hallo
ich versuche gerade ein makro aus einer Excel tabelle zu übersetzen. Leidr Funktioniert das nicht so wie ich will.
Mit Range kann OOO wohl nicht wirklich was anfangen. Kann mir jemand dabei helfen.
Ich habe das mal versucht soweit wie möglich 1 zu 1 zu übersetzen...

Code aus Excel

Code: Alles auswählen

Function FARBEZÄHLEN(Bereich As Range, Farbe As Byte) As Long
Application.Volatile
Dim c As Range
  For Each c In Bereich
    If c.Interior.ColorIndex = Farbe Then
      FARBEZÄHLEN = FARBEZÄHLEN + 1
    End If
  Next c
End Function


OOO code aus Calc

Code: Alles auswählen

Sub FARBEZAEHLEN(Bereich As Range, Farbe As Byte) As Long   
	oCalc = thisComponent
	oSheet = oCalc.sheets(0) 'erstes Tabellenblatt
  
Dim c As Range
  For Each c In Bereich
    If oCell.Cellbackcolor = Farbe Then
      FARBEZAEHLEN = FARBEZAEHLEN + 1
    End If
  Next c
End Sub
danke und Gruß
André

Nach oben