Autor
|
Thema: Automatisches kopieren bei zu vielen Einträgen (1141 / mal gelesen)
|
MARK123 Mitglied Student
Beiträge: 30 Registriert: 24.08.2016
|
erstellt am: 27. Okt. 2016 08:30 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich kenne mich mit Excel nur schwach bis mittelmäßig aus. Ich würde gerne ein Makro schreiben welches folgendes tut: Ich habe ein Tabellenblatt 1 welches in 3 Bereiche eingeteilt ist. Bereich 1, In Spalte B5 bis B10 stehen Namen, Reihe C 4 bis oo Datumsangaben, jetzt werden in den Reihen 5-10 laufend arbeiten (mit Datumsangabe (in Reihe 4) für die Leute eingetragen. Dadurch wird die Liste nach entsprechender zeit unendlich lang. Ich würde gerne ein makro haben, welches mir immer nur die 10 aktuellesten Arbeitseinträge anzeigt und sobalt ich 11 habe mir diesen Ersten Eintrag (also den ältesten in ein 2 tabellenblatt "archiviert". Es müsste also diese Liste ausgeschnitten und in Tabelleblatt 2 eingefügt werden,und das "iterativ" sobalt neue Einträge eingetragen werden. Jedoch muss darauf geachtet werden, dass das Tabellenblatt 2 beim nächsten mal nicht überschrieben wird. Bereiche 2-4 stehen darunter (Namen Gruppe 2von B14-B20,mit Datumsangabe in B13, Namen Gruppe 3 B22-B30 mit Datumsangabe in B13) die genauso gehandhabt werden sollen. Kann mir da jemand einen Ansatz liefern? Danke Mark ------------------ MAR [Diese Nachricht wurde von MARK123 am 27. Okt. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 27. Okt. 2016 12:04 <-- editieren / zitieren --> Unities abgeben: Nur für MARK123
Servus, das tut man nicht, böse, niemals nicht in hundert Jahren. Damit schaffen sie sich nur Probleme die sie sonst nicht hätten. Verwenden sie dazu lieber Fenster einfrieren. >>>> Zelle B5 markieren, Reiter Ansicht, Fenster einfrieren(Fenster), Fenster fixieren. Achtung es gibt 2 "Fenster einfrieren" unter "Zoom" und "Fenster" Dann wird immer Zeile 1-4 angezeigt und sie können bequem scrollen.
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. Schöne Grüsse aus der Steiermark Bernd P. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARK123 Mitglied Student
Beiträge: 30 Registriert: 24.08.2016
|
erstellt am: 27. Okt. 2016 14:56 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, danke für deine Antwort. Es geht mir ja genau darum "scrollen", das scrollen möchte ich vermeiden und immer alle 10 letzten Einträge von allen 3 Bereiche auf einen Blick zu haben. Außerdem, beim Fenster einfieren ist immer gleich die ganze Spalte oder Reihe betroffen, das hat einfluss auf auf die unteren Bereiche die eben weniger oder mehr Einträge haben! Dennoch danke das du dich mit meiner Frage auseinander gesetzt hast. Grüße MArk ------------------ MAR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 27. Okt. 2016 16:16 <-- editieren / zitieren --> Unities abgeben: Nur für MARK123
|
Ralf_A Mitglied
Beiträge: 269 Registriert: 14.10.2002
|
erstellt am: 28. Okt. 2016 07:46 <-- editieren / zitieren --> Unities abgeben: Nur für MARK123
Hallo MAR, ich habe zur Umsetzung kein Idee, aber vom Grundsatz mal, wenn du alles in deinem Haupttabellenblatt lässt und du dir die, zur besseren Lesbarkeit, aktuellsten 10 Einträge in ein neues Tabellenblatt holst. Evtl. ein Lösungsansatz??? Gruß Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARK123 Mitglied Student
Beiträge: 30 Registriert: 24.08.2016
|
erstellt am: 28. Okt. 2016 12:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Ralf, Hallo Thomas, @Thomas,dein Code versteh ich nicht, bzw. hat nicht viel mit meinen Problem zu tun. @Ralf, prinziepiell schon, bei deiner Variante müsste ich erst im Hauptblatt neue Aufgaben + Datumangabe eintragen und dann in ein Neues Blatt klicken. Ich hätte es gerne einfach, und möchte (falls es geht) nur auf meinem Hauptblatt arbeiten und meine Archivierung im Hintergrund laufen haben! Aber anscheinend ist das wohl komplizierter als ich dachte. Danke aufjeden fall euch beiden dass Ihr euch Gedanken gemacht habt! Gruß Mark ------------------ MAR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jassir-ben-Hussein Mitglied Dipl. Ing. Maschinenbau
Beiträge: 95 Registriert: 02.03.2011 Ansys 19.1 HICAD 2401.1 Helios 2401.
|
erstellt am: 28. Okt. 2016 12:49 <-- editieren / zitieren --> Unities abgeben: Nur für MARK123
Hallo Mark, was ist den wenn du einfach eine Tabelle einfügst(unterm Ribbon einfügen) und diese dann entsprechend der Spalten so sortieren lässt das die aktuellen Einträge oben stehen. Gruß Malte ------------------ Stell dir vor es geht und keiner kriegts hin! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARK123 Mitglied Student
Beiträge: 30 Registriert: 24.08.2016
|
erstellt am: 28. Okt. 2016 13:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Malte, leider verstehe ich nicht so ganz was du meinst. Ich soll mein komplettes Tabellenblatt kopieren, neu einfügen und dann sortieren, ist es das was du meinst? Das funktioniert nicht, die unten stehenden Bereiche besitzen andere Datumsangaben, außerdem geben mehrere Leute Datum + Arbeit in die Tabelle ein (nicht nur ich), deshalb möchte ich es so einfach wie möglich machen, eben dass man nur diesen Eintrag (Datum + Arbeit) machen muss und alles andere sollte das Macro machen. Gruß Mark ------------------ MAR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 28. Okt. 2016 18:54 <-- editieren / zitieren --> Unities abgeben: Nur für MARK123
Zitat: Original erstellt von MARK123: @Thomas,dein Code versteh ich nicht, bzw. hat nicht viel mit meinen Problem zu tun.
Macht nichts, geht mir nicht anders, auch wenn ich deine Beschreibung mehrmals durchlesen habe, so wirklich schlau werde ich nicht daraus :-) dacht' ich bring einfachmal einen Ansatz :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 29. Okt. 2016 10:49 <-- editieren / zitieren --> Unities abgeben: Nur für MARK123
Zitat: Original erstellt von MARK123: Hallo, ich kenne mich mit Excel nur schwach bis mittelmäßig aus. Ich würde gerne ein Makro schreiben welches folgendes tut: ... Ich würde gerne ein makro haben, welches mir immer nur die 10 aktuellesten Arbeitseinträge anzeigt und sobalt ich 11 habe mir diesen Ersten Eintrag (also den ältesten in ein 2 tabellenblatt "archiviert". ... . Kann mir da jemand einen Ansatz liefern? Danke Mark
Hallo Mark, So ganz habe ich Dein Anliegen auch nicht verstanden, werden denn in allen drei Eingabebereichen immer zum gleichem Datum Werte ergänzt? Irgendwie liest sich das wie beim einem Lehrer zum Noteneintrag nach einer Prüfung - egal. Ich denke Du brauchst gar kein Makro damit Dein Anliegen erfüllt wird, im Prinzip müssen nur die Spalten L-ZZ ausgeblendet werden. Zum Einfügen neuer Werte markierst Du vorne den Bereich in Spalte C, rechte Maustaste und "Zellen einfügen", nach rechts verschieben und die ehemals 10. Werte sind verschwunden. Über Spalten Einblenden hast Du Dein Archiv wieder sichtbar. Nachteil natürlich, man muß seine Arbeitsweise umstellen und nicht die neuesten Werte hinten dazuschreiben. Natürlich könnte man auch ein Makro schreiben dass permanent die 11. Spalte des Eingabeblattes überwacht und im Bedarfsfall die nicht mehr benötigten Werte ins Archiv versendet. Günstig wäre hier ein Formular mit Commandbuttom Bereich X ergänzen, das kontrolliert ob schon 10 Werte in der Zeile stehen und dann den ersten Wert im Archiv ergänzt. Nachteil hier: Um alle Werte zu sehen müssen auch wieder händische Kopieraktion stattfinden. Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARK123 Mitglied Student
Beiträge: 30 Registriert: 24.08.2016
|
erstellt am: 03. Nov. 2016 12:05 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, hallo Klaus, danke für Eure Mühen. Vielleicht ist das mit den Noten einfacher erklärt. Stell Dir vor ich habe 3 Klassen a 5 Schüler. Nehmen wir an, eine Klasse schreibt über das Jahr 25 Arbeiten. Jetzt trage ich immer das Datum an dem die Arbeit geschrieben ist ein und darunter die Noten bei den Schüler. Namen der Schüler steht dann in z.B. B5 bis B9, Datumsangabe zeile 4 mit 25 Spalteneinträge. (das wäre jetzt ein Block) Klasse 2 und 3 sieht im grunde genauso aus nur unterscheiden sich die Anzahl der geschriebenen Arbeiten erheblich bspw. Klasse 2 100Arbeiten, Klasse 3 150Arbeiten im gleichen Jahr. Somit habe die Klassen auch unterschiedliche Datumseinträge. Von daher muss jeder Block separat betrachtet werden und es können nicht pauschal Spalten ausgeblendet oder kopiert werden. mein Wusch wäre es gewesen, bei jeder Klasse immer nur die 10 letzten Noten + Datumsangaben zu sehen, sobalt ich den 11 Eintrag eintippe der älteste in ein neues blatt kopiert und archiviert wird.Dieser darf natürlich beim nächsten mal nicht über schrieben werden. Falls das immer noch nicht klar ist, oder eben halt doch aufwendig ist, dann ist es halt so. Ich bedanke mich dennoch bei Euch allen! Gruß Mark ------------------ MAR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RL13 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Bauwesen
Beiträge: 2373 Registriert: 23.10.2008 Civil 3D 2018.1 Civil 3D 2016 64 Bit SP 3 mit DACH und Extensions W7 Professional 64Bit HP Z440 Intel Xeon CPU E5-1620 v4 32 GB RAM NVIDIA Quadro P4000
|
erstellt am: 03. Nov. 2016 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für MARK123
|
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2624 Registriert: 02.05.2006 Office 2010; Office365 Visual Basic
|
erstellt am: 03. Nov. 2016 14:21 <-- editieren / zitieren --> Unities abgeben: Nur für MARK123
Wobei das in Access auch nicht trival zu lösen ist ... Ich würde da aber bei dem bereits beschriebenen Vorgehen bleiben und die neuesten Ereignisse immer in Spalte C (um beim Beispiel zu bleiben) ergänzen und die älteren nach rechts verschieben. Ist ein Markieren mit der Maus und wenn die hinteren Spalten ausgeblendet sind hat man den gewünschten Effekt. Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RL13 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Bauwesen
Beiträge: 2373 Registriert: 23.10.2008
|
erstellt am: 03. Nov. 2016 14:59 <-- editieren / zitieren --> Unities abgeben: Nur für MARK123
Zitat: Wobei das in Access auch nicht trival zu lösen ist ...
die Aufgabe schreit aber förmlich nach Datenbank im Anhang mal eine mögliche Beziehungsstruktur der Tabellen, wie ich sie in Access anlegen würde. (5 min Arbeit) Die Eingabe der Daten kann man vorerst zeitsparend direkt in die Tabellen vornehmen (bevor man sich dem Thema Formulare widmet). Die Ausgabe im Bericht erfordert zwar etwas Gehirnschmalz sollte aber auch innerhalb einer Stunde erledigt sein ------------------ mfg Roman Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 03. Nov. 2016 15:40 <-- editieren / zitieren --> Unities abgeben: Nur für MARK123
Zitat: Original erstellt von MARK123: Somit habe die Klassen auch unterschiedliche Datumseinträge. Von daher muss jeder Block separat betrachtet werden und es können nicht pauschal Spalten ausgeblendet oder kopiert werden. mein Wusch wäre es gewesen, bei jeder Klasse immer nur die 10 letzten Noten + Datumsangaben zu sehen, sobald ich den 11 Eintrag eintippe der Älteste in ein neues Blatt kopiert und archiviert wird.Dieser darf natürlich beim nächsten mal nicht überschrieben werden. Falls das immer noch nicht klar ist, oder eben halt doch aufwendig ist, dann ist es halt so. Ich bedanke mich dennoch bei Euch allen! Gruß Mark
Würde umgedreht ein Schuh draus werden, da du ja je Klasse separat betrachtet haben willst. Je Klasse - ein Blatt - Eventuell Matrix tauschen ( Datum in Zeile / Schüler in Spalte) und 1 Blatt das die Blätter zusammenführt - das lässt sich vielleicht mit einer {Matrix]Formel erschlagen. -Keine Ahnung in weit auch ein Pivot Auswertung da möglich / sinnvoll wäre.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARK123 Mitglied Student
Beiträge: 30 Registriert: 24.08.2016
|
erstellt am: 03. Nov. 2016 15:44 <-- editieren / zitieren --> Unities abgeben:
|
RL13 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Bauwesen
Beiträge: 2373 Registriert: 23.10.2008 Civil 3D 2018.1 Civil 3D 2016 64 Bit SP 3 mit DACH und Extensions W7 Professional 64Bit HP Z440 Intel Xeon CPU E5-1620 v4 32 GB RAM NVIDIA Quadro P4000
|
erstellt am: 03. Nov. 2016 16:37 <-- editieren / zitieren --> Unities abgeben: Nur für MARK123
|
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 04. Nov. 2016 10:37 <-- editieren / zitieren --> Unities abgeben: Nur für MARK123
Anbei Bsp. je Klasse ein Blatt
Code: Private Sub Worksheet_Activate() letztespalte End Sub
Datum kann Fortlaufend nach Rechts erweitert werden Makro prüft Letzte Spalte und Gruppiert C:(Letzte Spalte -10) im Modul
Code: Sub letztespalte()letztezelle = Range("A1").SpecialCells(xlCellTypeLastCell).Address lastrow = Range("A1").SpecialCells(xlCellTypeLastCell).Column Spaltenbuchstabe = Split(Columns(lastrow - 10).Address(0, 0), ":")(0) If lastrow > 13 Then ActiveSheet.Cells.ClearOutline Columns("C:" & Spaltenbuchstabe).Columns.Group ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1 End If End Sub
Das Darstellen auf einer Übersichtsseite, kann dann per Formel Verweise geschehen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MARK123 Mitglied Student
Beiträge: 30 Registriert: 24.08.2016
|
erstellt am: 14. Nov. 2016 13:33 <-- editieren / zitieren --> Unities abgeben:
Ohh, dachte schon das der Thread geschlossen wäre. Vielen, vielen Dank für Hilfe, das bringt mich jetzt wirklich weiter. Ich werde mich dann an die Formel begeben. Danke nochmals euch Zwei! Gruss Ma ------------------ MAR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |