Bereich ausblenden

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Bereich ausblenden

Re: Bereich ausblenden

von hebbe » Do, 10.01.2013 21:08

Hallo Zusammen,

habe nochmal an meinem Tabellenblatt weiter gefeilt und dazu noch eine Frage, bei der mir hoffentlich jemand weiterhelfen kann.

In den Zeilen die ausgeblendet werden, befinden sich auch Markierfelder. Blende ich die Zeilen aus, bleiben die Markierfelder aber
nach wie vor sichtbar, egal ob ich sie an einer Zelle oder der Seite verankere.

Gibt es überhaupt eine Möglichkeit, diese gemeinsam mit den Zeilen "unsichtbar" zu machen.

Wünsche einen schönen Abend

hebbe

Re: Bereich ausblenden

von hebbe » Di, 11.12.2012 22:41

Hallo R,

vielen lieben Dank, das ist genau das wonach ich gesucht habe. Einfach perfekt.

Jetzt bin ich glücklich.

Wünsche noch einen schönen Abend

hebbe

Re: Bereich ausblenden

von F3K Total » Di, 11.12.2012 22:26

Hallo,
da bin ich wohl hereingefallen, es gibt databaseranges und namedranges, die, die du verwendest, sind namedranges, hier ein Makro das damit funktioniert.

Code: Alles auswählen

sub hiderowsunternehmen_namedRanges
    Dim oDoc As Object
    Dim oSheet As Object
    Dim oDrawPage As Object
    Dim oForm As Object
    Dim oDatabaseRanges as Object
    Dim sRangenames(2) as string
	
    sRangenames(0) = "Analyse1"
    sRangenames(1) = "Analyse2"
    sRangenames(2) = "Analyse3"
	
    oDoc = ThisComponent
    oNamedRanges = oDoc.NamedRanges
    oSheet = oDoc.Sheets.getByName("Unternehmen (1)")
    oDrawPage = oSheet.DrawPage
    oForm = oDrawPage.Forms.GetByIndex(0) 'Auswahl des ersten Formulares im Sheet Unternehmen (1)
    MF1 = oForm.getByName("Markierfeld 1")
    
    for i = 0 to 2
        oRows = oNamedRanges.getByName(sRangenames(i)).ReferredCells.Rows
        if MF1.state = 0 then 
            oRows.isvisible = true
        else
            oRows.isvisible = false
        endif
    next i
End Sub
Viel Erfolg
Gruß R

Re: Bereich ausblenden

von F3K Total » Di, 11.12.2012 22:09

Hallo,
hebbe hat geschrieben:Bin doch richtig, dass ich das über Einfügen | Namen festlegen definiere.
Ich habe die Bereiche anders festgelegt:
Daten/Bereich festlegen
Daran wird es liegen.
Gruß R

Re: Bereich ausblenden

von F3K Total » Di, 11.12.2012 21:39

Hi,
vielleicht kannst Du ein Beispieldokument hochladen, so ist es schwierig.
Das der Code funzt, kannst Du am angehängten Beispiel sehen.

Gruß R
Dateianhänge
Hide_named_Ranges.ods
(10.99 KiB) 132-mal heruntergeladen

Re: Bereich ausblenden

von hebbe » Di, 11.12.2012 21:19

Hallo Balu,

danke für den Hinweis. Ist aber leider nicht das Problem. War nur ein Fehler beim Abtippen.
Im Makro tatsächlich als Database... erfasst.

Grüße

hebbe

Re: Bereich ausblenden

von balu » Di, 11.12.2012 20:57

Hallo hebbe,

versuchs doch mal hiermit.
oRows = oDatabaseRanges.getByName(SRangenames(i)).ReferredCells.Rows
Bedenke bitte: Ein e ist kein a :lol:



Gruß
balu

Re: Bereich ausblenden

von hebbe » Di, 11.12.2012 20:22

Hallo R,

doch, habe ich eben nochmal nachgeschaut. Es sind alle 3 Bereiche so benannt.

Bin doch richtig, dass ich das über Einfügen | Namen festlegen definiere.

Grüße

hebbe

Re: Bereich ausblenden

von F3K Total » Di, 11.12.2012 05:32

Moin,
vermutlich gibt es in deinem Dokument wenigstens einen der drei Bereiche
Analyse1
Analyse2
Analyse3

nicht.
Gruß R

Re: Bereich ausblenden

von F3K Total » Fr, 07.12.2012 23:07

Hi Hebbe,
so geht's:

Code: Alles auswählen

sub hiderowsunternehmen1
    Dim oDoc As Object
    Dim oSheet As Object
    Dim oDrawPage As Object
    Dim oForm As Object
    Dim oDatabaseRanges as Object
    Dim sRangenames(2) as string
	
    sRangenames(0) = "Analyse1"
    sRangenames(1) = "Analyse2"
    sRangenames(2) = "Analyse3"
	
    oDoc = ThisComponent
    oDatabaseRanges = oDoc.DatabaseRanges
    oSheet = oDoc.Sheets.getByName("Unternehmen (1)")
    oDrawPage = oSheet.DrawPage
    oForm = oDrawPage.Forms.GetByIndex(0) 'Auswahl des ersten Formulares im Sheet Unternehmen (1)
    MF1 = oForm.getByName("Markierfeld 1")
    
    for i = 0 to 2
        oRows = oDatabaseRanges.getByName(sRangenames(i)).ReferredCells.Rows
        if MF1.state = 0 then 
            oRows.isvisible = true
        else
            oRows.isvisible = false
        endif
    next i
End Sub
Viel Erfolg
Gruß R

Bereich ausblenden

von hebbe » Fr, 07.12.2012 13:20

Hallo,

bin neu hier, weil ich mich auch erst seit kurzem mit Open Office und den Makros beschäftige.

Ich habe hier folgendes Makro, mit dem bestimmte Zellen im Tabellenblatt durch ein Makro ein- bzw. ausgeblendet werden können,
was soweit auch wunderbar funktioniert:

sub hiderowsunternehmen1

Dim myDoc As Object
Dim mySheet As Object
Dim DrawPage As Object
Dim oForm As Object
myDoc = ThisComponent
mySheet = myDoc.Sheets.GetByIndex(2) ' Unternehmen (1)
xSheet = myDoc.Sheets.getByName("Unternehmen (1)")
DrawPage = mySheet.DrawPage
oForm = DrawPage.Forms.GetByIndex(0) 'Auswahl der ersten Grafik im Sheet Unternehmen (1)
myRange = xsheet.getcellrangebyposition(0,165,0,180).getrows()
myRange1 = xsheet.getcellrangebyposition(0,198,0,213).getrows()
myRange2 = xsheet.getcellrangebyposition(0,214,0,216).getrows()
MF1 = oForm.getByName("Markierfeld 1")
if MF1.state = 0 then myRange.isvisible = true
if MF1.state = 1 then myRange.isvisible = false
if MF1.state = 0 then myRange1.isvisible = true
if MF1.state = 1 then myRange1.isvisible = false
if MF1.state = 1 then myRange2.isvisible = true
if MF1.state = 0 then myRange2.isvisible = false
End Sub


Jetzt ist es allerdings so, dass die Nutzer des Tabellenblattes bestimmte Zeilen im Dokument einfügen bzw. löschen können.
Dadurch werden dann ggf. nicht mehr die korrekten Zeilen ein- bzw. ausgeblendet.
Habe den entsprechenden Zeilen der Tabelle Namen zugeordnet (Zeile165-Zeile180: Analyse1; Zeile 198-213: Analsye2; Zeilen 214-216: Analsye 3).
Jetzt würde ich diese definierten "Bereiche" gerne in das Makro so einbinden, damit diese entsprechend ausgeblendet werden.

Ich hoffe, ich konnte mich verständlich genug ausdrücken, damit ihr wisst, was ich gerne hätte.
Hoffe zudem, dass das auch so möglich ist. Bin nämlich bisher nicht fündig geworden.

Danke schon mal vorab und viele Grüße

hebbe

Nach oben