Zeile nach unten verschieben

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: Zeile nach unten verschieben

Re: Zeile nach unten verschieben

von bst » Mi, 17.03.2010 12:43

Hi diggoli,

möglicherweise geht das auch anders, ich bin denn selber noch OOo Einsteiger...

Was Du versuchen könntest ist es einen Modify-Listener zu installieren, dort vielleicht noch auf Ja/Nein prüfen und den Cursor dann zu positionieren.

Du musst hier die Sub AddListener einmal aufrufen, mache das ggf. automatisch beim Öffnen des Dokumentes.

HTH, Bernd
--

Code: Alles auswählen

REM  *****  BASIC  *****

Option Explicit

Global oRange
Global oListener

Const LISTENER_TABLE = "Tabelle1"	' die zu überwachende Tabelle
Const LISTENER_RANGE = "A2:A99"		' der zu überwachende Bereich

Sub AddListener()
	oListener = CreateUnoListener("Change_", "com.sun.star.util.XModifyListener")
    oRange = ThisComponent.Sheets(LISTENER_TABLE).getCellRangeByName(LISTENER_RANGE)
    oRange.addModifyListener(oListener)
End Sub

Sub RemoveListener()
    On Error Resume Next
    oRange.removeModifyListener(oListener)
End Sub

Sub Change_modified()
	dim oCell as Object, oView as Object, oSheet as Object,oNewCell as Object
	
	oCell = ThisComponent.getCurrentSelection
	if oCell.supportsService("com.sun.star.sheet.SheetCell") Then ' eine einzelne Zelle
		oSheet = ThisComponent.currentcontroller.activesheet
		oNewCell = oSheet.getCellByPosition(5, oCell.getRangeAddress.StartRow) ' Gehe in Spalte F
   		oView =  ThisComponent.CurrentController
   		oView.Select(oNewCell)
	endif
End Sub

Re: Zeile nach unten verschieben

von diggoli » Mi, 17.03.2010 09:32

Hallo,

hast recht, habe das alles jetztz nochmals umgeworfen da es nur für einen bestimmten Typ an Tabelle in Frage kam. Danke Trortzdem für die super Hilfe.
Nun aber eine neue Frage: Ich habe über Gültigkeit eine ja/nein Auswahl erzeugt und möchte das die Maus bei ja in eine bestimmte Spalte in der gleichen Zeile spring. Machbar?

Gruss diggoli

Re: Zeile nach unten verschieben

von bst » Di, 16.03.2010 22:00

Abend diggoli,
allerdings schneidet der die Zeile nicht aus
ja, ich hatte das nicht weiter als wichtig angesehen sondern vermutet es geht Dir um das Prinzip wie man das überhaupt machen kann ;-)
und färbt immer die Zeile ein die man über die Zahl anwählt
So hatte ich denn Deine Anfrage verstanden.
geht das nicht auch über die Gültigkeit?
Möglich, darüber habe ich noch nicht näher nachgedacht.
Ich kann ja nicht 100 oder gar 1000 von Listenfeldern machen. Brauche diese Auswahl in jeder Zeile.
Hilfe, wozu denn? M.E. sollte doch eine einzige Auswahlliste reichen, ggf. lasse die halt auf die aktuelle gewählte Zelle losgehen.

Oder aber mache das denn vielleicht besser gleich im Kontextmenü der Zelle.

cu, Bernd

Re: Zeile nach unten verschieben

von diggoli » Di, 16.03.2010 20:15

bst hat geschrieben:Abend auch,

mal ein Versuch. Nimm ein Listenfeld aus Formular-Steuerelemente. Ordne dem eine Liste mit den Zahlen 1-10 unter Kontrollfeld-Daten zu. Ordne dem unter Kontrollfeld-Ereignisse-Modifiziert die Sub lstAuswahl_Change zu.

HTH, Bernd
Soweit so gut :-),
allerdings schneidet der die Zeile nicht aus und färbt immer die Zeile ein die man über die Zahl anwählt. Also bei 4 zeile 4 unter dem Feld usw.
geht das nicht auch über die Gültigkeit? Ich kann ja nicht 100 oder gar 1000 von Listenfeldern machen. Brauche diese Auswahl in jeder Zeile.

Re: Zeile nach unten verschieben

von bst » Di, 16.03.2010 10:05

Hi,

- Ansicht-Symbolleisten-Formular Steuerelemente
- Entwurfsmodus oben rechts einschalten
- Listenfeld in Zelle ziehen
- Assi abbrechen
- rechte Maustaste Kontrollfeld, dort die Zuordnungen treffen
- Entwurfsmodus abschalten

cu, Bernd
Dateianhänge
CopyRows.ods
(10.22 KiB) 59-mal heruntergeladen

Re: Zeile nach unten verschieben

von diggoli » Di, 16.03.2010 09:26

Danke, nur leider kann ich kein Kontrollfeld einfügen, es wird mir in der Menüzeile nur schattiert angezeigt. Kann es somit nicht ausprobieren :(
Hab dem Listenfeld die Zahlen 1-10 über Güktigkeit zugewiesen, aber weiter kommich leider nicht.

Re: Zeile nach unten verschieben

von bst » Mo, 15.03.2010 21:40

Abend auch,

mal ein Versuch. Nimm ein Listenfeld aus Formular-Steuerelemente. Ordne dem eine Liste mit den Zahlen 1-10 unter Kontrollfeld-Daten zu. Ordne dem unter Kontrollfeld-Ereignisse-Modifiziert die Sub lstAuswahl_Change zu.

HTH, Bernd
--

Code: Alles auswählen

Sub lstAuswahl_Change(oEvt As Object)
	nSrc = oEvt.Source.Model.selectedItems(0)

	oSheet = ThisComponent.sheets(0)
	oCellCursor = oSheet.createCursor
    oCellCursor.GotoEndOfUsedArea(False)
    nDst = oCellCursor.getRangeAddress().endRow	+ 5
    
	oSheet.Rows.CellBackColor = -1

	oSrcRange = oSheet.getCellRangeByPosition(0, nSrc, 255, nSrc).getRangeAddress
	oDstCell  = oSheet.getCellbyPosition(0, nDst).getCellAddress
	oSheet.copyRange(oDstCell, oSrcRange)

	oSheet.rows(nSrc).CellBackColor = RGB(255,255,0)
End Sub

Re: Zeile nach unten verschieben

von Charly » Mo, 15.03.2010 17:49

Hallo Diggoli!

Ich würde dir gerne helfen, aber mir reichen die Informationen nicht aus.

Vielleicht kannst du eine Testdatei mit ein paar Zeilen erstellen und hier hochladen. Insbesondere interressieren mich die Auswahlfelder in Spalte A. Ich muss ja mit dem Makro auf die Daten dieser Felder zugreifen können.

Soll die Einfärbung auch über das Makro erfolgen. Dann in deine Testdatei 10 Zellvorlagen mit den gewünschten Farben kreieren.

Ist mit verschieben einer Zeile gemeint, dass die ursprüngliche Zeile gelöscht werden muss und 5 Zeilen nach dem Ende wieder eingefügt werden soll (vier Leerzeilen)?

Handelt es sich immer nur um eine Zeile oder kann es auch sein, dass mehrere gleichzeitig verschoben werden sollen?

Ist der Start des Makros über einen Button in Ordnung?

Gruß
Chary

Re: Zeile nach unten verschieben

von diggoli » Sa, 13.03.2010 15:11

Leider bringt mich das nicht viel weiter :-( brauche wohl einen größeren Denkanstoß :-)

Re: Zeile nach unten verschieben

von balu » Fr, 12.03.2010 17:58

Hallo diggoli
wo ich mir das erforderliche Wissen anlesen kann
Den ersten Beitrag von Stephan Informationen zur StarBasic-Programmierung hier im Forum hast Du schon gesehen, und auch durchgestöbert?

Und dann kann ich dir noch die Seiten von Michael empfehlen.

Vielleicht ist ja etwas passendes dabei, wenn Du die SuFu mal befragst.

Da ich mich mit Makros nicht so auskenne, kann ich dir auch nicht weiterhelfen.


Gruß
balu

Re: Zeile nach unten verschieben

von diggoli » Fr, 12.03.2010 16:06

kann mir denn niemand helfen, bzw. sagen wo ich mir das erforderliche Wissen anlesen kann :(

Zeile nach unten verschieben

von diggoli » Do, 11.03.2010 12:12

Hallo,

hier: viewtopic.php?f=2&t=36755 bereits andiskutiert, möchte ich über eine Auswahlfeld(in der ersten Spalte) die Zahl 1-10 auswählen und dann dementsprechend die ganze Zeile einfärben. Wenn die Zelle einen bestimmte Zahl bekommt, soll zusätzlich die ganze Zeile nach unten, mit einem Abstand von 5 Zeilen, hinter den letzten Datensatz gehängt werden.

Ich hoffe ihr könnt mir helfen.

Nach oben