Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1168to1172
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeitlich begrenzte Anzeige eines Tabellenblattes

Zeitlich begrenzte Anzeige eines Tabellenblattes
Eddy
Hallo Spezies,
ich hab da mal wieder ein Problemchen. Ich bastle gerade für den Lehrling eines Freundes ein Wochenberichtsheft und will ihm die Arbeit etwas erleichtern. Ich hab in der Beispielmappe mein Vorhaben erklärt und hoffe das es für einen von euch kein grosses Problem sein sollte. Ich will lediglich, (fürs Erste (:-)) das nach dem Betätigen meines Buttons das Tabellenblatt "Formular" für kurze Zeit angezeigt wird, zwecks kurzer visueller Überprüfung, damit nicht über den Rand hinausgeschrieben wird.
Wenn mir da jemand helfen könnte, wäre ich wie immer sehr dankbar.
mfg. Eddy
https://www.herber.de/bbs/user/70780.xls
AW: Zeitlich begrenzte Anzeige eines Tabellenblattes
27.07.2010 14:24:21
Klaus
Hallo Eddy,
ich hab mal ein "zwei Sekunden warten" eingebaut. Natürlich darf Screenupdating nicht auf FALSE stehen - sonst sieht man die andere Tabelle nicht!
Am Rande erwähnt: du solltest vermeiden, select zu verwenden.
Sub Text_einfügen()
Application.ScreenUpdating = True
Selection.Copy
Sheets("Formular").Select
i = Cells(Rows.Count, "A").End(xlUp).Row
Cells(i + 1, 1).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 2
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Sheets("Texte").Select
End Sub

Gleiches Makro unter Vermeidung von select (soweit möglich) und etwas schlanker:
Sub Text_einfügen()
Selection.Copy
With Sheets("Formular")
.Cells(.Cells(Rows.Count, "A").End(xlUp).Row + 1, 1).PasteSpecial Paste:=xlValues
.Activate
End With
Sheets("Formular").Activate
Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 2)
Sheets("Texte").Activate
End Sub
Grüße,
Klaus M.vdT.
Anzeige
Ist ja Spitze, aber das nächste Prob ist schon da
27.07.2010 14:41:03
Eddy
Hallo Klaus, klappt ja prima, vielen Dank. Hättest du vielleicht noch nen Tip, wie ich die Eingabe in Spalte "A" beschränken kann, also das nur zwischen A10 und A39 Text eingefügt werden kann. Ausserdem hab ich jetzt noch ein Problem entdeckt. Wenn ich z.B. die Zahlen für Mittwoch (händisch) lösche, weil falsch eingegeben und per Makro nen neuen Text einfügen will, dann schreibt er nicht in die freie Zeilen A20-A24 sondern erst ab A30, weil in A25-A29 Text enthalten ist. Kann man das Makro so anpassen, das immer die nächste freie A-Zelle gesucht wird ?
Wäre echt super, wenn das klappen würde.
Danke im voraus. Eddy
Anzeige
AW: Ist ja Spitze, aber das nächste Prob ist schon da
27.07.2010 15:37:32
Klaus
Hallo Eddy,
nimms bitte nicht persönlich, aber ich halte deinen gesamten Tabellenaufbau für nicht sehr gelungen.
In die nächste freie Zelle (auch dazwischen) von A trägst du folgendermaßen ein.
Das System schreit aber nach Fehleingaben, weil es einfach viel zu viele Möglichkeiten gibt die falsche Zelle zu markieren / kopieren / an die falsche Zeile einzutragen.
Sub Text_einfügen()
Selection.Copy
With Sheets("Formular")
.Cells.Range("A10").End(xlDown).Row + 1, 1).PasteSpecial Paste:=xlValues
.Activate
End With
Sheets("Formular").Activate
Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 2)
Sheets("Texte").Activate
End Sub

Anzeige
AW: Ist ja Spitze, aber das nächste Prob ist schon da
27.07.2010 15:44:15
Klaus
Entschuldige, ich hab zu schnell auf absenden gedrückt.
Was genau willst du eigentlich erreichen? Ich meine, wo ist der tiefere Sinn dahinter die Texte nicht direkt in das Formular zu schreiben, sondern diesen Umweg über das Eingabeblatt zu gehen? Ich meine, mit dieser Methode baust du dir nur Steine in den Weg.
Wenn es ein extra Eingabeblatt sein soll, dann lass den ganzen "selektieren und kopieren" Kram doch einfach raus und beziehe dich mit den SVERWEIS Formeln direkt auf das Eingabeblatt. Entstehende Nullen kannst du über "Nullwerte anzeigen", bedingte Formatierung oder =WENN(Sverweis()=0;"";Sverweis()) abfangen.
Grüße,
Klaus M.vdT.
Anzeige
AW: Zeitlich begrenzte Anzeige eines Tabellenblattes
27.07.2010 17:47:03
BoskoBiati
Hallo,
ich hätte jetzt einige Kommentare, warum meine Azubis sich mit dem gekauften Berichtsheft zufrieden geben müssen, angefangen damit, dass sie das Berichtsheft während der Arbeitszeit zu führen haben, aber sei´s drum.
Begrenze doch einfach die Textlänge über die Datengültigkeit, dann können keine längeren Einträge vorkommen.
Gruß
Bosko
Leider noch nicht....
27.07.2010 19:08:08
Eddy
Danke Bosko, aber dein Vorschlag:
Begrenze doch einfach die Textlänge über die Datengültigkeit, dann können keine längeren Einträge vorkommen.
hat rein gar nichts mit dem Thema zu tun.
Gruß
Bosko
AW: Leider noch nicht....
27.07.2010 22:21:04
BoskoBiati
Hallo Eddy,
eigentlich doch. Ich will lediglich, (fürs Erste (:-)) das nach dem Betätigen meines Buttons das Tabellenblatt "Formular" für kurze Zeit angezeigt wird, zwecks kurzer visueller Überprüfung, damit nicht über den Rand hinausgeschrieben wird.
Wenn Du die Textlänge begrenzt, hat sich das Problem erledigt.
Gruß
Bosko
Anzeige
Leider immer noch nicht....
27.07.2010 23:04:51
Eddy
Ich wäre dir sehr dankbar Bosko, wenn du nicht laufend mein Problem als erledigt kennzeichnen würdest, nur weil du dir meinen Kopf zerbrichst.
Vielen Dank
AW: Zeitlich begrenzte Anzeige eines Tabellenblattes
27.07.2010 16:28:30
Eddy
Hallo Klaus, ich verstehe deine "Sorgen", aber da du nicht die ganze Arbeitsmappe kennst, denke ich das das schon ok so ist. Viel Spielraum hat der Lehrling nicht, um falsche Einträge zu tätigen, da alle nicht zu beschreibenden Zellen geschützt werden in der Originalmappe. Das Formular wird nach dem Ausfüllen in eine Wochenberichtsheft-Arbeitsmappe kopiert, Formeln entfernt, Blattname nach Kalenderwoche vergeben, so das eben "gut" aussieht. Der Textteil soll ja vom Lehrling laufend erweitert werden. Je nach dem wieviel unterschiedliche Tätigkeiten er ausführt. usw.
Jetzt aber zu deinem Vorschlag:
Wenn ich dein Makro ins Modul kopiere bleibt der Text:
.Cells.Range("A10").End(xlDown).Row + 1, 1).PasteSpecial Paste:=xlValues
rot, und das Makro läuft nicht.
Kannst du nochmal......
Danke vielmals, Eddy
Anzeige
AW: Zeitlich begrenzte Anzeige eines Tabellenblattes
28.07.2010 09:57:40
Klaus
Hallo Eddy,
da hat sich der Fehlerteufel eingeschlichen, es fehlt ein Klammer auf:
.Cells(.Range("A10").End(xlDown).Row + 1, 1).PasteSpecial Paste:=xlValues
Grüße,
Klaus M.vdT.
Jetzt funzt das Ding, Danke
28.07.2010 10:15:12
Eddy
Hallo Klaus, vielen Dank, die Sache läuft.
mfg. Eddy
Danke für die Rückmeldung! o.w.T.
28.07.2010 10:22:53
Klaus
..

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige