Seite 2 von 5
Re: Makros, Eingabemaske
Verfasst: Mo, 11.11.2013 21:01
von clag
Hallo Jörg,
die Länge des aufgezeichneten Makros lässt mich vermuten du hast jede Zelle einzeln kopiert und eingefügt,
das kann man machen ist aber sehr umständlich wie du siehst. das liegt an deiner sehr ungünstigen gestalteten EingabeTabelle
leere Zeilen und Spalten sind in zusammenhängenden Datenbereichen zu vermeiden
!
guckst du mal hier
Re: Makros, Eingabemaske
Verfasst: Di, 12.11.2013 10:35
von Jörg
Hallo Clag,
sieht ja wirklich gut aus.
Wollte gerade schreiben, dass ich meine Eingabetabellen nochmal umbauen werde.
Hab mal jetzt zwei Fragen:
1. In der Eingabetabelle stehen die Werte untereinander. Wie bringe ich das Makro dazu, diese Werte nebeneinander in die Kundentabelle einzutragen?
2. In der Kundentabelle stehen nach den Spalten für die Stammdaten noch Spalten, die Formel enthalten werden. Das heißt, daß vor dem Speichern der neuen Kundendaten, erst der Bereich mit den Formeln nach unten gefüllt werden müßte, und dann die neuen Kundendaten in die gleiche Zeile jeweils davor eingetragen werden.
3. Wenn man nicht so wie ich bei meinem ersten Versuch, jede Zelle einzeln kopieren und einfügen will: Habe irgendwo gelesen, dass einfach wie gewohnt mit der Maus markieren nicht funktioniert, sondern mit gedrückter Strg Taste. Hab ich das richtig in Erinnerung?
Werd mal ein bißchen rumprobieren.
Vielen Dank für deine Mühe. Bringt mich wirklich weiter.
Gruß Jörg
Re: Makros, Eingabemaske
Verfasst: Di, 12.11.2013 10:59
von clag
Hallo Jörg,
das gesuchte Zauberwort ist "Transponieren"
das findest du wenn du "Inhalte einfügen" wählst.
Re: Makros, Eingabemaske
Verfasst: Di, 12.11.2013 13:27
von Jörg
Jepp, Transponieren klappt.
Gleichwohl raucht mir schon wieder der Kopf.
Wie krieg per "Makro aufzeichnen"dieses "Go to end to Data" erstellt??
Re: Makros, Eingabemaske
Verfasst: Di, 12.11.2013 13:57
von clag
hi
hier kommt zum tragen was ich zuvor sagte
clag hat geschrieben:leere Zeilen und Spalten sind in zusammenhängenden Datenbereichen zu vermeiden!
wenn du innerhalb eines Datenbereiches bist kommst du mit
ctrl + cursor runter an das Ende des Datenbereiches der Spalte (erste leere) Zelle
ctrl + cursor rechts an das Ende des Datenbereiches der Zeile (erste leere) Zelle
ctrl + ende an das Ende des genutzten Datenbereiches des Blattes (letzte Zelle des genutzten Bereiches )
das ist aber kein Geheimnis
findest du unter F1 Tastaturbefehle zum Bewegen in der Tabelle oder so..
Re: Makros, Eingabemaske
Verfasst: Mi, 13.11.2013 14:49
von Jörg
Hallo clag,
die eingabemaske funktioniert prima.
Ich habe sie allerdings etwas abgewandelt, Die Schaltfläche "Speichern" kopiert OHNE zu löschen. Das macht die Schaltfläche "Neu" läßt dabei aber die Kundennummer stehen. Wenn alles fertig ist, steht dann dort immer die zuletzt vergebene Nummer. So weiß ich, welches die nächste ist.
Ich denke, daß ich das soweit auch mit der anderen Eingabemaske hinbekomme.
Aber: Hab noch keinen Einstieg gefunden, wie ich ein Makro für die Schaltfläche "Suchen" erstellen kann.
Im Suchfeld (muß ich noch einbauen) will ich 4-... Anfangsbuchstaben eingeben.
Dann klicke ich die Schaltfläche und es soll sich eine Auswahlliste (generiert aus Kundendatei) mit den Treffern öffnen.
Aus dieser Suche wähle ich dann den richtigen und füge diesen dann per Doppelklick in die Eingabemaske ein.
Ich hoffe, ich bin nicht zu ausverschämt.
Du hast mir wirklich schon sehr geholfen.
Gruß Jörg
Re: Makros, Eingabemaske
Verfasst: Mi, 13.11.2013 15:27
von Karolus
Hallo
Im Suchfeld (muß ich noch einbauen) will ich 4-... Anfangsbuchstaben eingeben.
Dann klicke ich die Schaltfläche und es soll sich eine Auswahlliste (generiert aus Kundendatei) mit den Treffern öffnen.
Aus dieser Suche wähle ich dann den richtigen und füge diesen dann per Doppelklick in die Eingabemaske ein.
Diese Aufgabe
wäre einfach und unkompliziert per →Daten→Gültigkeit...Zellbereich plus einer Hilfszelle zur Eingabe der Anfangsbuchstaben lösbar ! - aber leider möchten wir das lieber in kompliziert mit Schaltflächen, Eingabemasken, Makros und pipapo...
Karolus
Re: Makros, Eingabemaske
Verfasst: Mi, 13.11.2013 15:56
von Jörg
Hallo Karolus,
an die Möglichkeit DAten-> Gültigkeit hatte ich, nachdem ich meinen letzten Beitrag geschrieben hatte, auch gedacht, nur wußte ich bisher nichts über die Möglichkeit mit der Hilfszeile. Ich bin halt erst ca. 6 Wochen mit OO beschäftigt, so daß mir nicht alle Funktionalitäten bekannt sind.
Also vielen Dank für den Hinweis. Wenn´s leichter geht, soll es mir nur recht sein.
Jörg
Re: Makros, Eingabemaske
Verfasst: Do, 14.11.2013 11:25
von Jörg
Hallo Korolus,
Daten-> Gültigkeit->Zellbereich kein Problem.
plus Hilfszelle krieg ich nicht hin.
Wenn Du noch ´nen Tipp hättest ?
Jörg
Re: Makros, Eingabemaske
Verfasst: Do, 14.11.2013 13:28
von Karolus
Hallo
Statt 'referenzbereich' trägst du unter →Daten→Gültigkeit→Zellbereich die Formel ein:
Code: Alles auswählen
WENN(LINKS(referenzbereich;LÄNGE(hilfszelle))=hilfszelle ; referenzbereich ; "")
Karolus
Re: Makros, Eingabemaske
Verfasst: Sa, 16.11.2013 16:40
von Jörg
Hallo Karolus,
komme damit irgendwie nicht zurecht, würde aber diese Sache nach hinten stellen, da ich hier im Forum ein Beispiel gefunden habe (PLZ_Ort-Suche) was ich gut für mich nutzen kann.
Hab mal noch ´ne Frage.
ich hab 12 Markierfelder (Jan., Febr. usw.) Die verknüpfte Zelle (X) will ich so kopieren, daß das (X), wenn ich den Haken rausnehme, in der Zielzelle erhalten bleibt und nicht aktualisiert wird.
Danke für die Mühe.
Jörg
Re: Makros, Eingabemaske
Verfasst: Mi, 20.11.2013 13:51
von Jörg
Hallo,
das gröbste ist geschafft. Danke noch mal an die Helfer insbesondere an clag.
Ich würde dieses Thema dann erstmal abschließen.
Im Anhang mein Ergebnis.
Gruß Jörg
Re: Makros, Eingabemaske
Verfasst: Mi, 20.11.2013 14:03
von lorbass
Jörg hat geschrieben:Ich würde dieses Thema dann erstmal abschließen.
Und unter welchen Bedingungen oder bei welchen Gegebenheiten
würdest du das tun?
Die Kennzeichnung eines Themas als
abgeschlossen soll durch den Fragesteller selbst im
„Self Service“-Verfahren erfolgen. Dazu wird der erste Beitrag des Themas mit einem Klick auf
Ändern zur Bearbeitung geöffnet. Dem Betreff wird dann ein Hinweis wie »
[gelöst]« oder »
[geschlossen]« oder »
[abgeschlossen]«vorangestellt und der Vorgang mit einem Klick auf
Absenden beendet. Und das war's dann auch schon.
Danke für deine Mithilfe
lorbass, Moderator
Re: Makros, Eingabemaske
Verfasst: Di, 21.01.2014 13:26
von Jörg
Hallo, wie im Code zu sehen, habe ich mir eine msgbox erstellt. Meine "alte" Version wie unter Code "sub Abrechnung" funktioniert.
würde aber gern so umbauen, daß bei Antwort=7 (nein) zur Tabelle1 ("Patientendatei) gewechselt wird. Das was ich da eingetragen habe, ist von Dannenhöfer.
Nun ja, so einfach gehts dann wohl doch nicht.
2. Das untenstehende Makro ist im wesentlichen mit dem recorder erstellt. Es läuft, aber etwas ruckelig. D.h. die Wechsel zwischen den Tabellenblättern sind "erkennbar". Ließe sich das optimieren? habe noch ähnliche Makros bei denen das auch so ist.
Vielen Dank schon mal an die Helfer
Code: Alles auswählen
antwort = msgbox("Abr.-Monat eingetragen?", 35)
[color=#BF8040]if antwort = 7 Then
myDoc = thisComponent
mySheet = myDoc.Sheets().getByName("Patientendatei")[/color]
if antwort = 2 Then
exit sub
end if
Code: Alles auswählen
sub Abrechnung
rem ----------------------------------------------------------------------
antwort = msgbox("Abr.-Monat eingetragen?", 33)
if antwort = 2 Then
exit sub
end if
rem define variables
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$F$37:$F$47"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Nr"
args2(0).Value = 4
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$A$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(1) as new com.sun.star.beans.PropertyValue
args4(0).Name = "By"
args4(0).Value = 1
args4(1).Name = "Sel"
args4(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args4())
rem ----------------------------------------------------------------------
dim args5(1) as new com.sun.star.beans.PropertyValue
args5(0).Name = "By"
args5(0).Value = 1
args5(1).Name = "Sel"
args5(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args5())
rem ----------------------------------------------------------------------
dim args6(5) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Flags"
args6(0).Value = "SVD"
args6(1).Name = "FormulaCommand"
args6(1).Value = 0
args6(2).Name = "SkipEmptyCells"
args6(2).Value = false
args6(3).Name = "Transpose"
args6(3).Value = true
args6(4).Name = "AsLink"
args6(4).Value = false
args6(5).Name = "MoveMode"
args6(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args6())
rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "Nr"
args7(0).Value = 3
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args7())
rem ----------------------------------------------------------------------
dim args8(0) as new com.sun.star.beans.PropertyValue
args8(0).Name = "ToPoint"
args8(0).Value = "$K$8"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args8())
end sub
Re: Makros, Eingabemaske
Verfasst: Do, 23.01.2014 04:47
von andrew12