Zeile nach unten verschieben
Moderator: Moderatoren
Zeile nach unten verschieben
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.
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.
Re: Zeile nach unten verschieben
kann mir denn niemand helfen, bzw. sagen wo ich mir das erforderliche Wissen anlesen kann 

Re: Zeile nach unten verschieben
Hallo diggoli
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
Den ersten Beitrag von Stephan Informationen zur StarBasic-Programmierung hier im Forum hast Du schon gesehen, und auch durchgestöbert?wo ich mir das erforderliche Wissen anlesen kann
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
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
wehr rächtschraipfähler findet khan si behalden
wehr rächtschraipfähler findet khan si behalden

Re: Zeile nach unten verschieben
Leider bringt mich das nicht viel weiter
brauche wohl einen größeren Denkanstoß 


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

Hab dem Listenfeld die Zahlen 1-10 über Güktigkeit zugewiesen, aber weiter kommich leider nicht.
Re: Zeile nach unten verschieben
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
- 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) 58-mal heruntergeladen
Re: Zeile nach unten verschieben
Soweit so gutbst 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

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
Abend diggoli,

Oder aber mache das denn vielleicht besser gleich im Kontextmenü der Zelle.
cu, Bernd
ja, ich hatte das nicht weiter als wichtig angesehen sondern vermutet es geht Dir um das Prinzip wie man das überhaupt machen kannallerdings schneidet der die Zeile nicht aus

So hatte ich denn Deine Anfrage verstanden.und färbt immer die Zeile ein die man über die Zahl anwählt
Möglich, darüber habe ich noch nicht näher nachgedacht.geht das nicht auch über die Gültigkeit?
Hilfe, wozu denn? M.E. sollte doch eine einzige Auswahlliste reichen, ggf. lasse die halt auf die aktuelle gewählte Zelle losgehen.Ich kann ja nicht 100 oder gar 1000 von Listenfeldern machen. Brauche diese Auswahl in jeder Zeile.
Oder aber mache das denn vielleicht besser gleich im Kontextmenü der Zelle.
cu, Bernd
Re: Zeile nach unten verschieben
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
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
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
--
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