Hallo liebe Excel Profis, ich habe mich mal wieder bei einem mir selbst auferlegten Excel Projekt übernommen. :26:
Die angehängte Datei beinhaltet die Topliste, das Protokoll und soll zukünftig ein Archiv zu unseren Teamsitzungen beinhalten. Ich weiß verbundene Zellen sind Teufelswerk, habe TOP und Protokoll aus unserem Bestand übernommen wurde bisher von hand ausgefüllt und im Ordner abgeheftet. Das ganze ein bischen angepasst um meine natürliche Faulheit ein bischen zu unterstützen. Um die nicht so Computer affinen Kollegen nicht zu verprellen würde ich die Tabellen gerne so weiter benutzen..
Per Com Button wird das Protokoll als PDF gespeichert und als E-Mail an alle Kollegen versand das hab ich mir mit Google und Sufu zurechtgeschnippselt, funktioniert auch. Jetzt möchte ich darüber hinaus noch erreichen, das beim klick auch die Einträge: Datum, TOP Nr., Thema, Status, Termin, Verantwortlicher, Ergebnis zum jeweiligen Top sofern im Bereich Thema ein Eintrag ist aus dem Tabellenblatt Protokoll in das Tabellenblatt Archiv als eine Zeile reinkopiert werden. Wenn möglich sortiert nach erledigt/offen und Datum, also offene nach oben und erledigt nach unten und immer das jüngste Datum oben im jeweiligen Abschnitt. Um nicht zig PDF's durchschauen zu müssen.
Ich hoffe ich drück mich verständlich aus.
Habe einen Codeschnipsel gefunden der unabhängige Zellen ausliest und auch kopiert will bei mir aber nicht fluppen. Habe auch Code Schnipsel zum sortieren gefunden aber krieg beides nicht verknüpft.
Vielleicht will ich auch zuviel für einen Button.
Bin für jede Hilfestellung und Denkanstoss dankbar.
warum wohl erhälst du keine Antworten, geschweige denn Hilfe? Sicherlich weil sich niemand mit deiner "verkorksten" Tabelle auseinander setzen will!
Wie du bereits selbst festgestellt hast, sind verbundene Zellen absoluter Mist und verderben das ganze Vergnügen an VBA. Ganz zu schweigen davon, dass sie Fehler und Abstürze provuzieren!
Baue deine Tabelle vernünftig um, ohne verbundene Zellen, die werden überhaut nicht gebraucht und nutze die Formatierungsmöglichkeiten - z.B. für deine TOP 5 (oder jede andere Nummer) sind keine 2 Zellen erforderlich, eine Zelle reicht: Formatiere diese als "Zahlen", dan "Benutzerdefiniert" und als Typ "TOP "0 - jede eingegebene Zahl in dieser Zelle wird dann als TOP 5 angezeigt und gerechnet kann mit dieser ZHelle auch noch.
Wenn du deine neue Tabelle vorstellst, wird die sicherlich auch unverzüglich geholfen werden.
Gruß Günter aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Hallo Günter, danke für das ernüchternde Feedback, hatte schon ähnliches befürchtet. War persönliche Faulheit und bei den älteren Kollegen sind Veränderungen an bekannten Prozeduren immer nur mit viel Gesprächsarbeit umsetzbar.
Im Kern ging es mir auch eigentlich darum ob man die Zellen (C8,E11,U13,M13,E13,E14);(C16,E19,U21,,M21,E21,E22);(C24,E27,U29,M29,E29,E30)...etc über den Combutton zu jeweils einer Zeile zusammenpacken kann und in das Tabellenblatt Archiv in die erste freie Zeile kopieren. Mit Union Range gings nicht da die Methode zwar bei unabhängigen Zellen funktioniert aber nur wenn sie angrenzend sind zumindest laut debug. Das Sortieren wäre noch on Top gewesen falls möglich.
Das sich in das verkorste Ding rein zu fuchsen abschreckt versteh ich, hatte die vage Hoffnung das jemand nen Tip an Hand der Beschreibung weiß. Will euch ja nicht meine Arbeit anplacken sondern nur nen Schubs in die richtige Richtung und die Bestätigung das es überhaupt möglich ist.
Dann werd ich mal versuchen die Formatierungen anzupassen ohne das Formular zu sehr zu verändern.
deine unterschiedlichen Zellen kannst du doch einfach durch addieren zu einer zusammenführen - in VBA in eine Variable! Man kann dazu den Befehl VERKETTEN verwenden oder einfach addieren, so etwa
wobei die Zeilen-/Spaltenangabe in Cells auch durch Variablen erfolgen kann.
Übrigens muss dein Formular nach dem "Entschlacken" nicht anders aussehen wie jetzt, nur werden die benutzen Spalten wesentlich geringen und haben dann unterschiedliche Größen - da brauchst die Niemanden zu überreden und zu überzeugen.
Gruß Günter aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
danke für deinen Tip mit der Variabel. Aber ich hab mich da missverständlich ausgedrückt glaub ich oder mein geringes Wissen reicht nicht um dir zu folgen. Ich versuche aus den Zellen C1,C8,E11,U13,M13,E13,E14 im Tabellenblatt Protokoll die Inhalte der Zellen in das Tabellenblatt Archiv in die Zellen z.B. A1 bis G1 eingetragen zu lassen.
nach etlichem googlen und lesen bin ich durch deinen Hinweis mit der Variabel darauf gestossen die jeweiligen zellen als Variable zu kopieren und dann einzufügen. Allerdings stoße ich da jetzt wieder auf meine Wissensgrenze.
der Code für das archivieren sieht jetzt so aus
Private Sub Archivieren()
Dim Top1 As Range, TOP2 As Range, etc.
Set Top1 = Sheets("Protokoll").Range("C1,C8,E11,U13,M13,E13,E14") Set Top2 = Sheets("Protokoll").Range("C1,C16,E19,U21,M21,E21,E22") etc.
leider stoppt der Code bei Top1.Copy mit der Meldung "Laufzeitfehler '1004, Bei einer Markierung von nicht angrenzenden Zellen ist die Ausführung dieses Befehls nicht möglich." google und SuFu bringenmich leider auch nicht weiter, gefunden hab ich vieles aber nichts was mich mit meinem eingeschränkten WIssen weiter gebracht hat.
Unterliege ich einem Denkfehler oder ist mein Ansatz gänzlich für die Katz oder hab ich nur etwas übersehen?
Eventuell seht ihr das mit einem Blick, falls nicht lade ich gern eine Beispieldatei mit dem Code hoch