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 ?

Code: Alles auswählen

myctrl = MyDlg.GetControl("Klient")
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"). :shock: :shock:
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

Code: Alles auswählen

osheet = odoc.Sheets().getByName("Tabelle12")
und das ein paar Zeilen weiter gleich wieder verwirfst

Code: Alles auswählen

oSheet = ThisComponent.Sheets.GetByName("Rechnungen")

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. :D
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?