Probleme bei Zellen mit Farbe füllen

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: Probleme bei Zellen mit Farbe füllen

von Toxitom » Mi, 29.11.2006 18:03

Hey cldi,

also, weisst du überhaupt, was du da so alles machst?

Fangen wir oben an:

oSheet enthält nun dein gerade aktives Tabellenblatt.

Deine verschachtelte For-Schleifen liefern dir jede 6. Zeile von Zeile 6 bis Zeile 18 (also die Zeilen 6, 12 und 18) sowie die Spalten 4 bis 34 dieser Zeilen.(E-...)
Für jede Zelle prüfst du nun, ob darin ein "u" steht, dann solle etwas passieren.
Zunächst soll die Zelle den Wert "U" erhalten???? "U" ist ein String, kein Wert. Das müsste String heissen- im Extremfall sollte es auch mit "formular" gehen, aber eigentlich sollte es einen Fehler geben.
Dann färbst du die Zellen der gleichen Zeile, aber der Spalten vor , die aktuelle selbst sowie die der beiden folgenden ein.
Und dann noch die Zeile mit der Indexnummer der Spalte des ersten Tabellenblattes. ???

Hmm, und wie soll das nun mit deiner Aufgabestellung übereinstimmen?

Im Prinzip müsste es so laufen:

Code: Alles auswählen

 oSheet = thisComponent.getCurrentController.getActivesheet()

 For x = 5 To 17 Step 6     'Zeile    
    For y = 3 To 33           ' Spalte  
        oZelle = oSheet.getCellByPosition(y,x)
        If (UCase(oZelle.string) = "U") Then
          oSheet.getCellByPosition(y,x).String = "U"
       
          For i = 0 to 5  'Zählwert 5 Zellen
          	oSheet.getCellByPosition(y,x-1+i).CellBackColor =_
     rgb(255,255,0)
           next
  '    ThisComponent.sheets(0).rows(y).CellBackColor =_
   '   rgb(255,255,0)
                 
      end if
     Next y
  Next x
Also, das färbt dir die 5 Zellen entsprechend dem Bild ein, was diese "sheet(0).row(y) ... machen soll, weiss ich nicht. Da musst du selbst ein wenig experimentieren.

Gruss
Thomas

Probleme bei Zellen mit Farbe füllen

von cldi » Mi, 29.11.2006 17:27

Hallo,

bastel jetzt einige Tage schon an diesem Problem und komm leider nicht weiter :(

Sachverhalt:

Wenn in einer Zelle zwischen C6 und AG6 (bzw. C12 - AG12 und C18 - AG18) ein "U" eingegeben wird, soll der ein bestimmter Bereich eingefärbt werden.
Beispiel: Eingabe U in D6 --> eingefärbter Bereich von D5-D10

Mit folgendem Code habe ich zwar etwas eingefärbt, jedoch nicht den Bereich, den ich will.
Vorallem wundert es mich, dass er die Zeileneinfärbung bis zum Ende macht, obwohl durch die For-Schleife eine Begrenzung eingebaut ist.

Code: Alles auswählen

Sub UpdateColors

Dim x As Integer
Dim y As Integer
Dim oSheet As Object
Dim oZelle As Object

oSheet = thisComponent.getCurrentController.getActivesheet()

 For x = 5 To 17 Step 6			
 	For y = 3 To 33    			
         oZelle = oSheet.getCellByPosition(y,x)
     
        If (UCase(oZelle.string) = "U") Then
            oSheet.getCellByPosition(y,x).Value = "U"
        
          oSheet.getCellByPosition(y-1,x).CellBackColor =_
	  rgb(255,255,0) 
	  oSheet.getCellByPosition(y,x).CellBackColor =_
	  rgb(255,255,0)
	  oSheet.getCellByPosition(y+1,x).CellBackColor =_
	  rgb(255,255,0) 
	  oSheet.getCellByPosition(y+2,x).CellBackColor =_
	  rgb(255,255,0) 
	 ' oSheet.getCellByPosition(y+3,x).CellBackColor =_
	  'rgb(255,255,0) 
	 ' oSheet.getCellByPosition(y+4,x).CellBackColor =_
	  'rgb(255,255,0) 
	   	            
    	ThisComponent.sheets(0).rows(y).CellBackColor =_
		rgb(255,255,0) 
		            
      end if 
     Next y
  Next x

End Sub
Kann mir jemand bei dem Problem helfen??

Danke schon mal....

Nach oben