Seite 1 von 1
Waagerechte Zeilenbenennung
Verfasst: Fr, 09.06.2006 23:07
von WildpigDE
Wenn ich mehrere senkreche Zellen in einem Makro benennen will lautet das ja z.B. "A3:A1" . Wenn ich das selbe für die Waagerechte mache, also z.B. "M1:M10" klappt das nicht. Wie muss es hier heissen?
Bis dann
Klaus
Verfasst: Sa, 10.06.2006 00:03
von nevis
M1:M10 ist einfach keine Waagerechte?
Verfasst: Sa, 10.06.2006 23:30
von WildpigDE
Doch, schon. Aber wenn ich das für eine ComboBox eingebe sehe ich nur die erste Zahl, also die in M1. Alle andern sind nicht da. In der senkrechten passt es. Da sind alle Zahlen zu sehen.
Bis dann
Klaus
Verfasst: Sa, 10.06.2006 23:41
von Stephan
M1:M10 ist keine Waagerechte! Auch nicht mit "Doch schon".
Du kannst doch in der Tabelle tadellos ablesen wie die Bezeichnungen lauten, warum machst Du das nicht einfach? Vielleicht meinst Du:
M1:V1
oder
M10:V10
aber dass ist doch meinerseits nur Raterei, Du gibst exakte Bezeichnungen an M1:M10 und die sind keine Waagerechte.
Gruß
Stephan
Verfasst: So, 11.06.2006 00:51
von WildpigDE
ja, ist mir auch grade aufgefallen... peinlich...naja, ist halt schon spät.
Richtig muss es natürlich sein: B1:M1 Hier bekomme ich nur den ersten Wert (also bei B1) raus. die anderen tauchen nicht auf.
Verfasst: So, 11.06.2006 00:59
von Stephan
Ja, und Nun?
Niemand versteht was Du willst. Von einer Combobox ist die Rede, ja aber was weiter ...
Gruß
Stephan
Verfasst: So, 11.06.2006 01:37
von WildpigDE
umpf, vieleicht echt schon zu spät.
Also aus einer Tabelle lese ich über =SVERWEIS die Werte aus. Ich habe zwei ComboBoxen: eine für die waagerechten Werte, eine für die senkrechten. Die Werte werden in zwei Zeilen angegeben, die ich in der Formel habe. Das Funzt alles. So, die senkrechten Werte, also bei mir A3:A10 werden per Makro in die Combobox geladen. Das Klappt auch. Nur bei der Senkrechten haut das nicht hin (bei mir B1:M1). Angezeigt wird in der Box nur der Wert aus B1. Was ich genau wissen möchte ist, ob es richtig für die Waagerecht zu schreiben B1:M1 oder ob die Angabe anders lauten muss.
Verfasst: So, 11.06.2006 02:04
von Stephan
Obwohl ich es nicht verstehe das das Ganze nun so geheim wäre das Du es nicht übers Herz bringst Deinen Code zu posten, so das man sehen könnte ob dort was fehlerhaft ist, rate ich einfach mal und denke mit das Du mit SVERWEIS() keine Zeilen, sondern nur Spalten lesen kannst, versuchst Du es trotzdem wirkt die Zeile wie eine einzeilige Spalte.
Verwende also WVERWEIS()
Gruß
Stephan
Verfasst: So, 11.06.2006 12:07
von WildpigDE
Geheim! Nee wirklich nicht. Bin halt blutiger Anfänger. Die Tabelle siehst du hier:
viewtopic.php?t=7827
Da das große Geheimnis nun raus ist: in der einen Combobox will ich die Schraubengüte ablesen. Das klappt. In der anderen die auftretende Kraft. Das klappt nicht. Da steht nur "1" drinn. Alle anderen Werte sind nicht aufgeführt.
Code: Alles auswählen
'Kraft
Sub Write_To_Destination_Cell_Kraft()
Dim oDoc As Object
Dim oSheet As Object
Dim oForm As Object
Dim oComboBox As Object
Dim oCellRangeDestination As Object
Set oDoc = ThisComponent
Set oSheet = oDoc.Sheets.GetByName("dyn_axial")
Set oForm = oSheet.DrawPage.Forms.GetByName("Standard")
Set oComboBox = oform.getByName("ComboBox02")
Set oCellRangeDestination = oSheet.getCellRangeByName("D13")
oCellRangeDestination.FormulaLocal = oComboBox.text
End Sub
Sub Load_Values_List_Kraft()
Dim oDoc As Object
Dim oSheet As Object
Dim oForm As Object
Dim oComboBox As Object
Dim oCellRangeSource As Object
Dim aSourceDataArray()
Dim aDataArrayRow()
Dim aSource() As String
Dim I As Integer
Set oDoc = ThisComponent
Set oSheet = oDoc.Sheets.GetByName("dyn_axial")
Set oForm = oSheet.DrawPage.Forms.GetByName("Standard")
Set oComboBox = oform.getByName("ComboBox02")
Set oCellRangeSource = oSheet.getCellRangeByName("B1:M1")
'extract the data from the range
aSourceDataArray() = oCellRangeSource.getDataArray()
Redim Preserve aSource(UBound(aSourceDataArray())) As String
'
For I = LBound(aSource()) To UBound(aSource())
aDataArrayRow() = aSourceDataArray(I)
aSource(I) = aDataArrayRow(0)
Next I
oComboBox.StringItemList = aSource()
End Sub
Das it jetzt für die Box "Kraft" Und,

wenn wir schonmal dabei sind, wie kann ich die Tabelle auf einem Tabellenblatt haben und die Combobox mit der Ausgabezelle auf einem anderen Tabellenblatt?
Bis dann
Klaus
Verfasst: So, 11.06.2006 16:01
von Stephan
Das klappt nicht. Da steht nur "1" drinn. Alle anderen Werte sind nicht aufgeführt.
Ja, weil Du immer nur den ersten Wert übergibst:
Und aSource() auch nur einen Wert aufnehmen kann (UBOUND(aSource) --> = 0) und somit:
auf:
For I = 0 To 0
hinausläuft
bzw.:
UBound(aSourceDataArray()) --> = 0
Verwende beispielsweise:
Code: Alles auswählen
Sub Load_Values_List_Kraft()
Dim oDoc As Object
Dim oSheet As Object
Dim oForm As Object
Dim oComboBox As Object
Dim oCellRangeSource As Object
Dim aSourceDataArray()
Dim aDataArrayRow()
Dim aSource() As String
Dim I As Integer
Set oDoc = ThisComponent
Set oSheet = oDoc.Sheets.GetByName("dyn_axial")
Set oForm = oSheet.DrawPage.Forms.GetByName("Standard")
Set oComboBox = oform.getByName("ComboBox02")
Set oCellRangeSource = oSheet.getCellRangeByName("B1:M1")
'extract the data from the range
aSourceDataArray() = oCellRangeSource.getDataArray()
Redim Preserve aSource(UBOUND(aSourceDataArray(0))) As String
'
For I = LBound(aSource()) To UBound(aSource())
aDataArrayRow() = aSourceDataArray(0)
aSource(I) = aDataArrayRow(I)
Next I
oComboBox.StringItemList = aSource()
End Sub
wie kann ich die Tabelle auf einem Tabellenblatt haben und die Combobox mit der Ausgabezelle auf einem anderen Tabellenblatt?
Indem Du die Combobox auf dem anderen Blatt einfügt und im Code für das Lesen der Daten und Schreiben in die Liste der Combobox entsprechend verschiedene Tabellen referierst, z.B.:
Code: Alles auswählen
'...
Set oDoc = ThisComponent
Set oSheet = oDoc.Sheets.GetByName("dyn_axial")
Set oSheet2 = oDoc.Sheets.GetByName("andereTabelle")
Set oForm = oSheet.DrawPage.Forms.GetByName("Standard")
Set oComboBox = oform.getByName("ComboBox02")
Set oCellRangeSource = oSheet2.getCellRangeByName("B1:M1")
'extract the data from the range
aSourceDataArray() = oCellRangeSource.getDataArray()
Redim Preserve aSource(UBOUND(aSourceDataArray(0))) As String
'
For I = LBound(aSource()) To UBound(aSource())
aDataArrayRow() = aSourceDataArray(0)
aSource(I) = aDataArrayRow(I)
Next I
oComboBox.StringItemList = aSource()
'...
Gruß
Stephan
Verfasst: So, 11.06.2006 22:54
von WildpigDE
Jau, das klappt! Gut 3 Stunden habe ich gebraucht, aber jetzt läuft alles in die richtige Richtung. Vielen Dank dir dafür.
Ich hoffe, das nächstemal Frage ich gleich genau genug....
Bis dann
klaus