4.2k Aufrufe
Gefragt in Tabellenkalkulation von
Liebe Supportnet-Mitglieder,
ein Neuling erbittet Hilfe.
Apache OpenOffice 4 CALC:

Wenn in A1 eine Ganzzahl eingegeben wurde,
soll der (vorher eingestellte) Zellschutz von A2, A3 und A4 aufgehoben werden,
damit A2, A3 und A4 für Eingaben entsperrt werden.

Wie ist dies realisierbar?

8 Antworten

0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo hhjoost,

Soweit ich informiert bin ist es auch in OO möglich Makros aufzuzeichnen.

Die Formel jedenfalls funktioniert:

Prüfe in irgendeiner Zelle, ob in A1 eine Ganzzahl steht:Ö

=WENN(GANZZAHL(A1)=A1;1;"")

anschließend versuche ein Makro mit relativem Verweis aufzuzeichnen:

http://www.teialehrbuch.de/Kostenlose-Kurse/Excel-Basis-2003/18033-Beispiel-143-Makro-mit-relativen-Verweisen-fuer-eine-Arbeitsmappe-aufzeichnen.html

Gruß

Paul1

nutze:
Excel 2003
OO-calc gelegentlich
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Nachtrag,

sollte A1 leer sein:

=WENN(A1="";"";WENN(GANZZAHL(A1)=A1;1;""))

übrigens, habe versucht in OO-calc ein dementsprechendes Makro aufzuzeichnen, wenn in der Prüfzelle eine 1 steht, dass die Zellen A2:A4 entsperrt werden, es wird trotzdem das Kennwort verlangt, obwohl vor Aufzeichnung beenden das Kennwort eingegeben wurde - verstehe ich nicht.

Wenn in der Prüfzelle kein 1er drinnensteht teilt er lediglich mit, dass der Begriff nicht gefunden wurde.

wie gesagt, ich arbeite selten mit OO.

Gruß

Paul1
0 Punkte
Beantwortet von halfstone Profi (18.3k Punkte)
Hallo hhjoost,

dir auf deine per Adminpager gestellte Frage zu antworten ist nicht ganz leicht, da du keinerlei Kontaktmöglichkeiten hinterlassen hast.

Antworten kannst du ganz einfach immer unten auf der Seite auf der auch deine Frage steht.

Gruß Fabian
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo hhjoost,

Wie @halfstone schon ausführte, schreibe Dein Rückfragen direkt in den Beitrag, zumal ich die PN nicht immer lese und außerdem haben so auch andere interessierte User die Möglichkeit sich mit Deinem Problem zu beschäftigen.

Deine Fragen zitat:

Fragen:
1. Wie sieht der Makroaufruf aus,
wenn in A1 eine 1 steht?
2. Wie sieht das Makro aus?


zu 1)
>Extras>Makro aufzeichnen
über die Funktion
>Bearbeiten
>Suchen & Ersetzen wird die 1 gesucht
>Haken bei >nur ganze Zellen
>Mehr Optionen
>Suchen in >Werten
dann suchen
Wenn die Zelle mit der 1 gefunden wird:
>Extras
>Dokument schützen
>Tabelle
>Tabellenschutz aufheben
>Kennwort eingeben
>OK
>Aufzeichnung beenden

zu2)

sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(17) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 1
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.Backward"
args1(4).Value = false
args1(5).Name = "SearchItem.Pattern"
args1(5).Value = false
args1(6).Name = "SearchItem.Content"
args1(6).Value = false
args1(7).Name = "SearchItem.AsianOptions"
args1(7).Value = false
args1(8).Name = "SearchItem.AlgorithmType"
args1(8).Value = 0
args1(9).Name = "SearchItem.SearchFlags"
args1(9).Value = 65552
args1(10).Name = "SearchItem.SearchString"
args1(10).Value = "1"
args1(11).Name = "SearchItem.ReplaceString"
args1(11).Value = ""
args1(12).Name = "SearchItem.Locale"
args1(12).Value = 255
args1(13).Name = "SearchItem.ChangedChars"
args1(13).Value = 2
args1(14).Name = "SearchItem.DeletedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.InsertedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.TransliterateFlags"
args1(16).Value = 1280
args1(17).Name = "SearchItem.Command"
args1(17).Value = 0

dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Protect"
args2(0).Value = false

dispatcher.executeDispatch(document, ".uno:Protect", "", 0, args2())


end sub

Gruß

Paul1
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo hhjoost,

Warum wieder als PN?

zitat:
von hhjoost vom 12.05.2014 18:56
Zellschutz aufheben
Hallo Paul1,
vielen Dank für Deine Mühe,
es klappt leider nicht.

V.G. hhjoost


bei mir funktioniert es, allerdings so wie in AW2 beschrieben

Gruß

Paul1
0 Punkte
Beantwortet von hhjoost Einsteiger_in (5 Punkte)
Hallo Paul1,
wie ich eingangs erwähnte, bin ich Neuling.
Deshalb muss ich mein Problem deutlicher beschreiben.

- Die Spalten B,C,D in den Zeilen 11 bis 20 sind gesperrt.
- Wenn in A11 per Funktion eine errechnete Ganzzahl eingetragen wird,
sollen B11, C11 und D11 entsperrt werden.
- Wenn dann in Zeile 11 eine oder mehrere Zellen gefüllt wurden,
wird die nächst höhereGanzzahl in A12 eingetragen.
- Das wiederholt sich so lange, bis Zeile 20 gefüllt wurde.

D.h.: Immer, wenn in Spalte A einer Zeile eine Ganzzahl erscheint,
sollen in dieser Zeile die Zellen B,C und D für Eingabe entsperrt werden.

Siehst Du eine Möglichkeit?

MfG hhjoost
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo hhjoost,

Eine Möglichkeit gibt es sicher, aber da müsste sich jemand finden, der es in OO programmiert, nachdem ich kein VBA-Experte bin, kann ich Dir diesbezüglich leider nicht behilflich sein.

Allein mit Makro aufzeichnen ist dieses anspruchsvolle Problem wahrscheinlich nicht lösbar, zumal in der OO-Version 4.0.1 eine Aufzeichnung auch mit relativem Verweis (so wie in Excel) nicht vorgesehen ist.

Werde es mir nochmals genauer ansehen, kann aber nichts versprechen.

Gruß

Paul1
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo hhjoost,

Habe es alternativ mit der Gültigkeit in Excel getestet, da ist es mir gelungen, aber die gleichen Formeln in OO calc werden zwar akzeptiert, jedoch gibt es in jedem Fall eine Fehlermeldung, könnte vielleicht daran liegen, dass ich nur die benutzerdefinierte und eingeschränkte Version von OO 4.0.1 installiert habe.

Wie es in Excel funktioniert:
>B11 bis B20 markieren
>Daten
>Gültigkeit…
>Einstellungen
>zulassen
>Benutzerdefiniert
>Formel:
=NICHT(ISTLEER(INDIREKT("Z"&ZEILE()&"S"&SPALTE()-1;0)))
>Leere Zellen ignorieren >Haken weg
>OK

>C11 bis C20
>der gleiche Vorgang
>Formel:
=NICHT(ISTLEER(INDIREKT("Z"&ZEILE()&"S"&SPALTE()-2;0)))

>D11 bis D20
>der gleiche Vorgang
>Formel:
=NICHT(ISTLEER(INDIREKT("Z"&ZEILE()&"S"&SPALTE()-3;0)))

Es steht Dir frei eine spezielle Fehlermeldung einzubauen

Zusätzlich kann in A11 bis A20 die Prüfung auf ganze Zahl festgelegt werden:

Ebenso A11 bis A20 markieren
>zulassen
>Ganze Zahl
>Daten
>größer als
>Minimum >0
>leere Zellen ignorieren >Haken weg

In dieser Art sollte es auch in OO funktionieren, wenn ab A11 eine Ganzzahl eingegeben wird können in den Zellen B11 bis D11 Eingaben gemacht werden, das gleiche gilt von A12 bis A20, ansonsten kommt eine Fehlermeldung.

Ich hoffe, Du kannst es in Deiner OO-Version sinngemäß umsetzen.

Gruß

Paul1
...