Daten->Gültigkeit.. nach einem Kriterium füllen??
Moderator: Moderatoren
Daten->Gültigkeit.. nach einem Kriterium füllen??
Hallo,
habe ich die Möglichkeit die Gültigkeitsliste nach einem Kriterium zu füllen??
Als Beispiel:
A..1
B..2
C..1
D..2
E..3
wenn Zelle A1 = 1 ist soll in der Auswahlliste A und C stehen, ist A1 = 2 ist B und D drinn und bei A1 = 3 ist nur E zur Auswahl.
Hoffe es verständlich formuliert zu haben. Die Gesamtauswahlliste ist natürlich wesentlich länger als oben angegeben.
Gruß
Bernd
habe ich die Möglichkeit die Gültigkeitsliste nach einem Kriterium zu füllen??
Als Beispiel:
A..1
B..2
C..1
D..2
E..3
wenn Zelle A1 = 1 ist soll in der Auswahlliste A und C stehen, ist A1 = 2 ist B und D drinn und bei A1 = 3 ist nur E zur Auswahl.
Hoffe es verständlich formuliert zu haben. Die Gesamtauswahlliste ist natürlich wesentlich länger als oben angegeben.
Gruß
Bernd
Hallo Bernd,
ich denke so etwas kann man mit einem Macro lösen.
Mit diesem wird zuerst die Zahl in A1 ausgelesen und dann die
vordefinierten Werte in einen Zellbereich eingetragen der wiederum
den Zellen A2, A3 usw. über die Gültigkeit "Zellbereich" zugeordnet wird.
Der Zellbereich für die Gültigkeit ist in diesem Falle B1:B2.
Hier der Code dafür:
Viel Erfolg
Jürgen
ich denke so etwas kann man mit einem Macro lösen.
Mit diesem wird zuerst die Zahl in A1 ausgelesen und dann die
vordefinierten Werte in einen Zellbereich eingetragen der wiederum
den Zellen A2, A3 usw. über die Gültigkeit "Zellbereich" zugeordnet wird.
Der Zellbereich für die Gültigkeit ist in diesem Falle B1:B2.
Hier der Code dafür:
Code: Alles auswählen
Sub Auslesen
myDoc = thisComponent
mySheet = myDoc.sheets(0)
mycell = mysheet.getCellByPosition(0,0)
myvalue=mycell.value
if myvalue = 1 then
Auswahlliste1
end if
if myvalue = 2 then
Auswahlliste2
end if
if myvalue = 3 then
Auswahlliste3
end if
End Sub
Sub Auswahlliste1
myDoc = thisComponent
mySheet = myDoc.sheets(0)
mycell = mysheet.getCellByPosition(1,0) 'Zelle B1
mycell.string="A"
mycell = mysheet.getCellByPosition(1,1) 'Zelle B2
mycell.string="C"
End Sub
Sub Auswahlliste2
myDoc = thisComponent
mySheet = myDoc.sheets(0)
mycell = mysheet.getCellByPosition(1,0) 'Zelle B1
mycell.string="B"
mycell = mysheet.getCellByPosition(1,1) 'Zelle B2
mycell.string="D"
End Sub
Sub Auswahlliste3
myDoc = thisComponent
mySheet = myDoc.sheets(0)
mycell = mysheet.getCellByPosition(1,0) 'Zelle B1
mycell.string="E"
End Sub
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
hmm..
danke schon mal für die schnelle Antwort.
Ist aber etwas unpraktikabel, da sich der Inhalt der einzelnen Bereiche ändern kann, was in diesem Fall auch eine Änderung des Macros bedeutet.
Meine nächste "Idee":
Kann ich mir bei Gültigkeit -> Zellbereich -> Quelle auch einen Zellnamen zusammenstellen??
Dann würde ich mehrere Bereiche definieren (Namen1, Namen2, Namen3) und in der Quelle würde dann "Namen+Inhalt Zelle A1" stehen??
Damit käme ich dann auch auf Namen1, Namen2 usw.
Gruß Bernd
danke schon mal für die schnelle Antwort.
Ist aber etwas unpraktikabel, da sich der Inhalt der einzelnen Bereiche ändern kann, was in diesem Fall auch eine Änderung des Macros bedeutet.
Meine nächste "Idee":
Kann ich mir bei Gültigkeit -> Zellbereich -> Quelle auch einen Zellnamen zusammenstellen??
Dann würde ich mehrere Bereiche definieren (Namen1, Namen2, Namen3) und in der Quelle würde dann "Namen+Inhalt Zelle A1" stehen??
Damit käme ich dann auch auf Namen1, Namen2 usw.
Gruß Bernd
Hi Berlon,
mit diesem Makro kannst Du mit Zellbereichen arbeiten deren Inhalt ausgelesen
werden und dann für den Zellbereich der Gültigkeitsprüfung zur Verfügung stehen.
Jürgen
Jürgen
mit diesem Makro kannst Du mit Zellbereichen arbeiten deren Inhalt ausgelesen
werden und dann für den Zellbereich der Gültigkeitsprüfung zur Verfügung stehen.
Code: Alles auswählen
Sub Auslesen
myDoc = thisComponent
mySheet = myDoc.sheets(0)
mycell = mysheet.getCellByPosition(0,0)
myvalue=mycell.value
if myvalue = 1 then
oDocument = ThisComponent
oSheet1 = oDocument.Sheets.getByIndex(0) 'Quelle Tabelle1
oSheet2 = oDocument.Sheets.getByIndex(0) 'Ziel Tabelle1
' Quellbereich festlegen
oQuelleRange=oSheet1.getCellRangeByPosition(6,0,6,5) 'Zellen G1:G5
oQuellRangeAddresse = oQuelleRange.getRangeAddress
oZiel = oSheet2.getCellByPosition(1,0) 'Ziel ab B1 bis Ende Quellbereich
oZielCellAdresse=oZiel.getCellAddress
oSheet2.copyRange(oZielCellAdresse,oQuellRangeAddresse)
end if
if myvalue = 2 then
oDocument = ThisComponent
oSheet1 = oDocument.Sheets.getByIndex(0)
oSheet2 = oDocument.Sheets.getByIndex(0)
' Quellbereich festlegen
oQuelleRange=oSheet1.getCellRangeByPosition(7,0,7,5) 'Zellen H1:H5
oQuellRangeAddresse = oQuelleRange.getRangeAddress
oZiel = oSheet2.getCellByPosition(1,0)
oZielCellAdresse=oZiel.getCellAddress
oSheet2.copyRange(oZielCellAdresse,oQuellRangeAddresse)
end if
End Sub
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
hmm.. ist alles nicht so ohne, eure Vorschläge.
Besteht nicht die Möglichkeit, das ich den Quellbereichsnamen irgendwie zusammensetzten kann??
Sowas wie ="Test"&Text(A1).
Diesen Beispiel funktioniert nicht, habe ich schon versucht. Aber irgend so was in der Richtung.
Damit könnte ich den Bereich steuern, den ich benötige.
Nur setzt Gültigkeit in dem obrigen Beispiel Test ein.
cu
Bernd
Besteht nicht die Möglichkeit, das ich den Quellbereichsnamen irgendwie zusammensetzten kann??
Sowas wie ="Test"&Text(A1).
Diesen Beispiel funktioniert nicht, habe ich schon versucht. Aber irgend so was in der Richtung.
Damit könnte ich den Bereich steuern, den ich benötige.
Nur setzt Gültigkeit in dem obrigen Beispiel Test ein.
cu
Bernd
Hallo Bernd,
ein anderer Vorschlag (Die Gültigkeit wird in der Spalte A geprüft):
Bei Daten | Gültigkeit wählst du unter Zulassen: „Liste“
In das Eingabefeld gibst du folgende Formeln ein:
="Bauer"&" - "&INDIREKT(ADRESSE(ZEILE();SPALTE()+1))+INDIREKT(ADRESSE(ZEILE();SPALTE()+2))
="Meier"&" - "&INDIREKT(ADRESSE(ZEILE();SPALTE()+3))+INDIREKT(ADRESSE(ZEILE();SPALTE()+4))
="Hubertus"&" - "&INDIREKT(ADRESSE(ZEILE();SPALTE()+5))+INDIREKT(ADRESSE(ZEILE();SPALTE()+6))
Die Liste in Gültigkeit enthält also ganz normale Formeln.
In diesem Beispiel wird der Name und eine Summe ausgewiesen, z.B: „Bauer – 3“, die Summe aus der Spalte B+C.
Ich habe diese Formeln in Writer geschrieben und dann in die Gültigkeitsliste kopiert. So bleibt das „Ganze“ übersichtlicher.
Ich hoffe, dass du damit dein Problem lösen kannst!
Gruß
FranzX
ein anderer Vorschlag (Die Gültigkeit wird in der Spalte A geprüft):
Bei Daten | Gültigkeit wählst du unter Zulassen: „Liste“
In das Eingabefeld gibst du folgende Formeln ein:
="Bauer"&" - "&INDIREKT(ADRESSE(ZEILE();SPALTE()+1))+INDIREKT(ADRESSE(ZEILE();SPALTE()+2))
="Meier"&" - "&INDIREKT(ADRESSE(ZEILE();SPALTE()+3))+INDIREKT(ADRESSE(ZEILE();SPALTE()+4))
="Hubertus"&" - "&INDIREKT(ADRESSE(ZEILE();SPALTE()+5))+INDIREKT(ADRESSE(ZEILE();SPALTE()+6))
Die Liste in Gültigkeit enthält also ganz normale Formeln.
In diesem Beispiel wird der Name und eine Summe ausgewiesen, z.B: „Bauer – 3“, die Summe aus der Spalte B+C.
Ich habe diese Formeln in Writer geschrieben und dann in die Gültigkeitsliste kopiert. So bleibt das „Ganze“ übersichtlicher.
Ich hoffe, dass du damit dein Problem lösen kannst!
Gruß
FranzX