23.07.2014, 20:22 (Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2014, 20:24 von schauan.)
Hallo Alex,
wir versuchen's erst noch mal so. Also, der letzte code von mir bezog sich auf die letzte Aufgabenstellung in der Mustertabelle. Du hast dort nur geschrieben, dass die Zeilen kopiert werden sollen, wo ein Wert >0 steht. Ich habe jetzt nochmal alle Beiträge durchgelesen und glaube, Du hast mehrere Aktionen, die nacheinander und ggf. mit zusätzlichen Aktionen erfolgen sollen. Der
Der Nutzer wählt in einer Inputbox oder einem Userform einen Artikel aus. Dabei ist ungünstig, dass es auch mehrere Artikel sein können und der Nutzer mit dem momentanen VBA Makro aber jeden unterschiedlichen Artikel einzeln wählen und entsprechend nacheinander bearbeiten muss.
Der Nutzer trägt Daten, z.B. die Anzahl, in die Excel-Tabelle ein.
Der Nutzer kopiert die Daten auf ein extra Tabellenblatt.
Das Blatt wird per Excel oder Makro als PDF ausgegeben.
Also z.B. erst wählt der user Jacke, trägt in die Zeile Daten ein und erst danach wird kopiert, wo etwas > 0 eingetragen wurde Dann das Ganze noch mal mit Hose. Usw. Usf.
Wenn die vom Anwender anzuzeigenden Artikel auf verschiedenen Blättern stehen, aber in einer Auswahl und danach in einem Bearbeitungsvorgang die Daten eingetragen werden sollen, dann müsste man die Reihenfolge ändern. Ansonsten musst Du die Bearbeitungsschritte auf jedem Tabellenblatt getrennt durchführen.
Excel bzw. das Makro fasst die Daten erst auf einem Tabellenblatt zusammen,
dann kann sie der Nutzer bearbeiten,
dann werden die mit der Anzahl = 0 per Autofilter weggefiltert und
dann wird das PDF erzeugt.
Sofern Du keine Artikelliste hast, müsste selbige für die Auswahl erst gebildet werden. Man kann dem Nutzer dann eine Combobox anbieten, die auf Multiselect gestellt wird.
Man könnte auch eine Inputbox nehmen und dort mehrere Einträge eingeben, die dann z.B. mit einem Semikolon getrennt sind. Eine manuelle Eingabe hat aber immer den Nachteil, dass von Excel durch Schreibfehler nicht die gewünschten Ergebnisse gebracht werden können.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Stell es dir so vor: Die Excelliste mit den 11 Tabellenblättern ist eine Preisliste, die in Excel übertragen wurde. Der Kunde soll die Möglichkeit bekommen sich die Artikel via Suche (gerne auch Stichwortsuche) eigentständig zusammen zu suchen (Bspw. sucht er nach "Licht" und die Suchfunktion stoppt bei allen Artikeln, wo das Wort "Licht" drin steht). Sollte er dann den gewünschten Artikel gefunden haben kann er die Suchbox verlassen und in G die gewünschten Tage und in I die gewünschte Anzahl eintippen. Das macht er dann so lange, bis er alles zusammen hat. Wenn dies passiert ist, soll er am Ende einen Knopf drücken können (da gefällt mir dein Export auf ein Separates Tabellenblatt extrem gut! ) und es wird ihm diese (seine) Überischt gezeigt, die er dann per Makro als PDF ausgeben kann
Beim Öffnen wird das Kontextmenü um 3 Einträge erweitert.
Beim Suchen wird ein Suchdialog von Excel aufgerufen. Der kann ständig offen bleiben und gleichzeitig kann man in der gefundenen Zeile oder wo auch immer Einträge machen. Man kann den Dialog auch schließen und wieder aufrufen, den Inhalt ändern usw.
Bevor man das pdf ausgibt, muss man die Daten zusammenfassen / auf ein temporäres Blatt kopieren. Hierbei werden, wie von Dir beschrieben, alle Einträge mit einem Wert <> 0 übertragen. Ich habe es allerdings als >0 ausgelegt.
Mit dem 3. Eintrag wird der Speichern Unter Dialog von Excel aufgerufen. Hier müsste der Nutzer pdf auswählen und kann dann auch den Namen oder den Speicherort ändrn. Man könnte aber auch einen festen Speicherort und Dateinamen programmieren, dann braucht man den Dialog nicht.
Programmiert und getestet ist das unter Excel 2013.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
ich habe deinen Code jetzt kopiert und in die Originaltabelle eingefügt.
Der erste Reiter heißt "Setup" und enthät ausgeblendete Hilfsdaten, die er mir mit auswirft.
Allerdings habe ich jetzt mal tesweise in einem Tabellenblatt nur eine 1 angegeben und dein Makro abgespielt. Er kopiert den Key nicht mit :( leider....und wäre die Suchbox generell irgendwie möglich?