Seite 1 von 1
Wert aus Listbox in Zelle schreiben
Verfasst: Fr, 07.08.2015 17:09
von Jörg
Hallo Fachleute,
ich habe in meinem Dialog eine Listbox erstellt. Das Lesen eines Zellbereiches klappt.
Code: Alles auswählen
Public oDialog7 as Object
Sub Listbox_Dialog7
oForm = DialogLibraries.Standard.Dialog7
oDialog7 = CreateUnoDialog( oForm )
oSheet = ThisComponent.Sheets.GetByName("Eingabemaske Kunden")
oCellRangeSource = oSheet.getCellRangeByName("N1:N13")
aSourceDataArray() = oCellRangeSource.getDataArray()
Dim aSource(UBound(aSourceDataArray())) As String
For I = LBound(aSource()) To UBound(aSource())
aDataArrayRow() = aSourceDataArray(I)
aSource(I) = aDataArrayRow(0)
Next I
oDialog7.Model.getByName("ListBox1").StringItemList = aSource()
oDialog7.execute
End Sub
Aber mit dem Schreiben komme ich nicht klar.
Habe dazu im Forum diesen Code gefunden.
Code: Alles auswählen
Sub speichern
'
myctrl = oDialog7.GetControl("Klient")
myDoc = thisComponent
oSheet = myDoc.Sheets.getByName("Eingabemaske Kunden")
mycell = osheet.getCellRangeByName("$B$20")
Klient = myctrl.selecteditem
mycell.string = Klient
end sub
Was bedeutet diese Codezeile ?
Was genau muß an dieser Stelle deklariert werden?
Vielen Dank schon mal im Voraus
Gruß Jörg
Gelöst:Re: Wert aus Listbox in Zelle schreiben
Verfasst: Fr, 07.08.2015 17:18
von Jörg
Hallo,
so klappt es:
Code: Alles auswählen
Sub Rechnungsnummer_eintragen
myctrl = oDialog7.GetControl("ListBox1")
myDoc = thisComponent
oSheet = myDoc.Sheets.getByName("Eingabemaske Kunden")
mycell = osheet.getCellRangeByName("$B$20")
ListBox1 = myctrl.selecteditem
mycell.string = ListBox1
end sub
Gruß Jörg
Re: Wert aus Listbox in Zelle schreiben
Verfasst: Fr, 07.08.2015 18:33
von Jörg
Hallo nochmal,
nun hab ich ein anderes Problem.
Neben der Listbox habe ich noch mehrere Textfelder, die Werte aus einer Tabelle (Tabelle12) lesen. Haben sie bisher auch gemacht. Nachdem ich aber über die Listbox die entsprechende Zelle fülle(Rechnungsnummer) lesen die Textfelder in der Tabelle("Rechnungen").
Irgendwo im Code muß der Fehler stecken.
Code: Alles auswählen
Public oDialog4 as Object
Dim osheet as Object
Dim oZelle as Object
Dim ocell as Object
Dim cell as Object
Dim mahnung1 as Object
Dim mahnung2 as Object
Dim mahnung3 as Object
Dim mycell as Object
Dim Zelle as Object
Dim Nr as Object
Dim Name1 as Object
Dim Vorname1 as Object
Dim Mahnziel1 as Object
Dim Mahnziel2 as Object
Dim Mahnziel3 as Object
Dim Anschrift as Object
Dim zahlungsziel as Object
Dim Rechnungsbetrag as Object
Dim Mahnbetrag as Object
sub Dialog4
odoc = ThisComponent
osheet = odoc.Sheets().getByName("Tabelle12")
oZelle = osheet.getCellRangebyName("H25")
mycell = osheet.getCellRangebyName("G24")
mahnung1 = osheet.getCellRangebyName("K25")
mahnung2 = osheet.getCellRangebyName("K26")
mahnung3 = osheet.getCellRangebyName("K27")
ocell = osheet.getCellRangebyName("H26")
cell = osheet.getCellRangebyName("H27")
Zelle = osheet.getCellRangebyName("I20")
DialogLibraries.loadLibrary("Standard")
oDialog4 = CreateUnoDialog(DialogLibraries.Standard.Dialog4)
oForm = DialogLibraries.Standard.Dialog4
oDialog4 = CreateUnoDialog( oForm )
oSheet = ThisComponent.Sheets.GetByName("Rechnungen")
oCellRangeSource = oSheet.getCellRangeByName("A2:A500")
aSourceDataArray() = oCellRangeSource.getDataArray()
Dim aSource(UBound(aSourceDataArray())) As String
For I = LBound(aSource()) To UBound(aSource())
aDataArrayRow() = aSourceDataArray(I)
aSource(I) = aDataArrayRow(0)
Next I
oDialog4.Model.getByName("ListBox1").StringItemList = aSource()
lesen
oDialog4.execute
end sub
'
' ###############################################
'
Sub Rechnungsnummer_eintragen 'Eigenschaften Listbox Aktion ausführen
myctrl = oDialog4.GetControl("ListBox1")
myDoc = thisComponent
mySheet = myDoc.Sheets.getByName("Tabelle12")
Ziel = mysheet.getCellRangeByName("$B$8")
ListBox1 = myctrl.selecteditem
Ziel.value = ListBox1
end sub
'
' ###################################################################
'
sub lesen
'status
mycell = osheet.getCellRangeByName("G24")
myString1 = mycell.string
oDialog4.getControl("TextField2").Text = myString1
'1.Mahnungsdatum
oZelle = osheet.getCellRangeByName("H25")
myString2 = oZelle.string
oDialog4.getControl("TextField1").Text = myString2
'2.Mahnungsdatum
ocell = osheet.getCellRangeByName("H26")
myString3 = ocell.string
oDialog4.getControl("TextField7").Text = myString3
'3.Mahnungsdatum
cell = osheet.getCellRangeByName("H27")
myString4 = cell.string
oDialog4.getControl("TextField8").Text = myString4
'1.Mahnung_ja
mahnung1 = osheet.getCellRangeByName("K25")
myString5 = mahnung1.string
oDialog4.getControl("TextField3").Text = myString5
'2.Mahnung_ja
mahnung2 = osheet.getCellRangeByName("K26")
myString6 = mahnung2.string
oDialog4.getControl("TextField4").Text = myString6
'3.Mahnung_ja
mahnung3 = osheet.getCellRangeByName("K27")
myString7 = mahnung3.string
oDialog4.getControl("TextField5").Text = myString7
'Zinsatz
Zelle = osheet.getCellRangeByName("I20")
myString8 = Zelle.string
oDialog4.getControl("TextField6").Text = myString8
'Rechnungsnummer
Nr = osheet.getCellRangeByName("B8")
myString9 = Nr.string
oDialog4.getControl("TextField9").Text = myString9
'Name
Name1 = osheet.getCellRangeByName("E8")
myString10 = Name1.string
oDialog4.getControl("TextField10").Text = myString10
'Vorname
Vorname1 = osheet.getCellRangeByName("F8")
myString11 = Vorname1.string
oDialog4.getControl("TextField11").Text = myString11
'Zahlungsziel 1. Mahnung
Mahnziel1 = osheet.getCellRangeByName("H28")
myString12 = Mahnziel1.string
oDialog4.getControl("TextField12").Text = myString12
'Zahlungsziel 2. Mahnung
Mahnziel2 = osheet.getCellRangeByName("H29")
myString13 = Mahnziel2.string
oDialog4.getControl("TextField13").Text = myString13
'Zahlungsziel 3. Mahnung
Mahnziel3 = osheet.getCellRangeByName("H30")
myString13 = Mahnziel3.string
oDialog4.getControl("TextField14").Text = myString13
'Anschrift
myArray = oSheet.getCellRangeByName("G8:I8").getdataArray
mStrings = myArray(0)
sLongText = join(mStrings()," ")
oDialog4.getControl("TextField15").Text = slongText
'Zahlungsziel
Zahlungsziel = osheet.getCellRangeByName("K24")
myString14 = Zahlungsziel.string
oDialog4.getControl("TextField16").Text = myString14
'Rechnungsbetrag
Rechnungsbetrag = osheet.getCellRangeByName("I18")
myString15 = Rechnungsbetrag.string
oDialog4.getControl("TextField17").Text = myString15
'Mahnbetrag
Mahnbetrag = osheet.getCellRangeByName("I22")
myString16 = Mahnbetrag.string
oDialog4.getControl("TextField18").Text = myString16
end sub
Hat jemand eine Idee?
Gruß Jörg
Re: Wert aus Listbox in Zelle schreiben
Verfasst: Fr, 07.08.2015 20:25
von clag
Hallo Jörg,
Jörg hat geschrieben:Irgendwo im Code muß der Fehler stecken.
stimmt
wenn zuerst in diese Zeile oSheet definierst
und das ein paar Zeilen weiter gleich wieder verwirfst
ist es eigentlich nicht verwunderlich das mit oSheet "Tabelle12" nicht mehr gefunden wird
verwende deutliche Namen dann verhedderst du dich nicht so leicht zB
Code: Alles auswählen
oTab12 = odoc.Sheets().getByName("Tabelle12")
oRechn = ThisComponent.Sheets.GetByName("Rechnungen")
oder so ...
hilft das?
Re: Wert aus Listbox in Zelle schreiben
Verfasst: Sa, 08.08.2015 09:01
von Jörg
Guten Morgen clag,
das hat geholfen. So was ähnliches hatte ich mir auch gedacht. Aber manchmal sehe ich den Wald vor lauter Bäumen nicht.
Danke für Deinen Tipp mit den Namen.
Hatte damit auch schon angefangen, aber dann nicht konsequent umgesetzt.
Schönes WE.
Gruß Jörg
Re: Wert aus Listbox in Zelle schreiben
Verfasst: Mi, 12.08.2015 11:41
von Jörg
Hallo Fachleute,
Gibt es eine Möglichkeit die Werte in einer Listbox (hier Rechnungsnummern) in der Listbox direkt zu sortieren oder muß die Tabelle mit dem Zellbereich sortiert werden?
Gruß Jörg
Re: Wert aus Listbox in Zelle schreiben
Verfasst: Mi, 12.08.2015 12:08
von clag
Hallo Jörg,
ja klar geht das,
abersei doch so gut und mach mal für neue Fragen ein neues Thema auf,
dann finden später auch andere Leser under dem Betreff die Infos,
zeig dann auch gleich mal die Schreibwelse der ReNr. Text oder Zahl?