Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spalte auslesen und in neuer Excel Liste speichern

Spalte auslesen und in neuer Excel Liste speichern
16.07.2013 13:40:23
Daniel
Guten Tag liebe Excel Gemeinde,
Ich soll für eine Zusammenstellung von Schulungsdaten durch Filter eine Auflistung generieren die dann an einen ausgewählten Personenkreis versendet werden soll.
In meinem Tabellenblatt möchte ich die Spalten "nächste Schulung" mit Datum und "Kostenstelle" nach Terminen für 2014 filtern. Es soll mir Anhand der Kostenstelle eine Auflistung mit dieser Auswahl erstellt werden und in eine neue Excel Tabelle mit den gleichen Spalten gespeichert werden. Diese soll dann über Outlook an den entsprechenden hinterlegten Verantwortlichen gesendet werden. Das ganze sollte über einen Button in einem Tabellenblatt gesteuert werden können.
Desweitern sollte ein Abgleich erstellt werden der ein Erinnerungsschreiben erstellt falls 30 Tage vor Ablauf keine Rückmeldung erfolgt.
Kann mir bitte jemand helfen wie ich den solch eine neue Excel Liste generieren kann und dann per Outlook automatisch versenden?
Im Anhang die anonymisierte Datei mit den vorgefertigten codes zum Auslesen der Spalte und Abgleich der Datum Spalte (-30 Tage)
Vielen Dank im Voraus für eure Hilfe jeglicher Art
Daniel
https://www.herber.de/bbs/user/86395.xlsm

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte auslesen und in neuer Excel Liste speichern
16.07.2013 14:21:42
Klaus
Hallo Daniel,
das Thema - eine Datei filtern, die gefilterte Liste automatisch versenden, wurde von mir schon öfters behandelt. Anbei ein paar Links ins Archiv:
https://www.herber.de/forum/archiv/1316to1320/t1317504.htm
da sollte eigentlich schon alles drinnen stehen was du brauchst, um dein Anliegen zu lösen!
Sonst hier noch ein paar:
https://www.herber.de/forum/archiv/1316to1320/t1319636.htm
https://www.herber.de/forum/archiv/1316to1320/t1319532.htm
die dort vorgestellten Codes solltest du einfachst an deine Datei angepasst bekommen. Wenn dann noch Fragen sind, einfach nochmal melden!
Grüße,
Klaus M.vdT.

Anzeige
AW: Spalte auslesen und in neuer Excel Liste speichern
16.07.2013 15:43:54
Daniel
Hallo Klaus,
Danke erstmal für die schnelle und umfangreiche Antwort. Leider habe ich ein wenig Probleme die Codes an meine Tabelle anzupassen.
Es wird mir ein Laufzeitfehler angezeigt, Index ausserhalb des gültigen Bereichs
Könntest du bitte mal schauen ob ich das soweit richtig ausgefüllt habe:
Option Explicit
'Definition von Makroweit gültigen Variablen
Const SheetUrsprung As String = "Verantwortliche" 'Der Name meines Tabellenblattes mit den  _
Emails'
Const PfadSpeichern As String = "H:\Projekte\Ausbildungswesen_2013\Excel_Programmierung\ _
Herber_Forum"
'Der Pfad indem die neue Datei gespreichert werden soll'
Const NameSpeichern As String = "Musterchef" '+ Anwender 1 usw.
'der erste Anwender aus B2'
Const ErsteSpalte As Long = 1                'Liste fängt in Spalte A an (A=1 usw), hier stehen  _
_
die Anwender
Const ErsteZeile As Long = 2                 'Einträge ab Zeile 2
Const MailAddSpalte As Long = 3             'Mailadressen in Spalte C = 3
'Meine Emailadressen stehen in Spalte C, also 3 '
Const NameDerTabelle As String = "Table1"    'deine definierte Tabelle heisst "Table1"
'Meine erzeugt Tabelle soll Table1 heisen?'
'Definition der Mail-Inhalte
Const MailSubject As String = "Zusammenfassung von Daniel für verantwortliche Kostenstellen" '+ _
Anwender 1 usw
Const MailText1 As String = "Hallo " '+Anwender
Const MailText2 As String = ", XXXX hier ist deine Zusammenfassung!"  'HTML-Tags im Text nutzen! _
Ich habe bereits Unterstützung von meiner Nachbarabteilung erhalten zu Ermittlung der Spaltenindizes und Bustaben, Ermittlung der letzten verwendeten Zeile und wie ich Datenprüfungen durchführe.
Ist es nötig die Codes miteinander zu verknüpfen oder reicht dein "Filter pro Anwender" aus?
Im Anhang nochmal die Excel Datei
https://www.herber.de/bbs/user/86399.xlsm
Vielen herzlichen Dank für deine Bemühungen
Beste Grüße
Daniel

Anzeige
Ich schau mir das morgen an, Daniel ...
16.07.2013 21:17:38
Klaus
... bitte etwas Geduld :-)
Grüße,
Klaus M.vdT.

Rückfragen
17.07.2013 10:16:52
Klaus
Hallo Daniel,
Ich gehe da jetzt nicht drauf ein. Ich sehe, dein VBA Level ist zu bescheiden um das an deine Problematik anzupassen.
deine Musterdatei hat leider nur zwei Einträge, damit kann ich kaum testen. Davon ab sind beide Einträge 2014er Datums, was soll das? Bitte erstell mir mal eine bessere Musterdatei mit folgenden Kriterien:
pro Kostenstelle mindestens ein, besser zwei Einträge die per Mail versandt werden sollen UND pro Kostenstelle ein oder zwei Einträge, die NICHT per Mail versand werden sollen.
Und bitte beschreibe mir nochmal GENAU in Prosa, wie und was passieren soll!
Ich DENKE so?
filtere AKTIV nach Kostenstelle 1 in Spalte E
filtere AKTIV nach Jahr = 2014 in Spalte K
kopiere den so gefilterten Bereich in eine neue Tabelle
schicke die neue Tabelle an Musterchef, musterchef@Firma.de, da dies für Kostenstelle 1 hinterlegt ist
mache alles nochmal für Kostenstelle 2 und alle weiteren Kostenstellen
Das ganze ist für mich dann ne Kleinigkeit (mache ich in 10 minuten fertig) - aber wenn ichs schon selbst mache möchte ich es first-time-right machen und danach nicht mehr anfassen müssen. Dafür bin ich auf eine absolut saubere Aufgabenbeschreibung + Musterdatei von deiner Seite aus angewiesen!
Grüße,
Klaus M.vdT.

Anzeige
AW: Rückfragen
17.07.2013 13:35:19
Daniel
Hallo Klaus,
Ich mache momentan ein Praktikum in einem Unternehmen und versuche einen Ablauf zu optimieren. Im Detail geht es um die Fahrausbildung von betrieblichen Fahrzeugen. Ein kleiner Teil meiner Arbeit soll die Vereinfachung von Ein und Ausgaben einer Excel Fahrerliste sein die bisher ausschließlich von Hand gepflegt wurde.
Hier meine gewünschte Abfrage und Ausgabe:
Es geht generell um Schulungszyklen und Auslauf der Gültig von betrieblichen Führerscheinen. Es soll eine jährliche Übersicht versendet werden so dass der Vorgesetzte weiß wann welcher Mitarbeiter zur Schulung angemeldet werden sollte. Falls es während des Jahres einen Monat vor Ablauf der Schulung oder Untersuchung keine Rückmeldung gab soll eine Erinnerungsliste generiert werden. Also dann ungefähr so:
1.) Eine Mitteilung der jährlichen Terminübersicht per Email
Es soll eine Abfrage pro Kostenstelle erstellt werden welcher Mitarbeiter zu welchem Zeitpunkt für das nächste komplette Jahr geschult werden sollte. Diese Abfrage soll in zwei neuen Excel Listen mit denselben Spalten gespeichert werden und per Email an genau den Verantwortlichen der Kostenstelle gesendet werden.
Zum einen geht es um eine Jährliche Nachschulung. Es soll die Spalte K „Nächste Schulung“ ausgelesen werden nach dem folgenden Jahr (Z.B. Im Dezember 2013 für das Jahr 2014). Die Ergebnisse sollen in einer neuen Liste gespeichert werden
Also Wie du schon erwähnt hast:
filtere AKTIV nach Kostenstelle 1 in Spalte B
filtere AKTIV nach Jahr = 2014 in Spalte K
Desweitern geht es um einen G25 Gesundheitscheck. Hierbei soll die Spalte B „Nächste G25-Untersuchung“ ausgelesen werden nach dem folgenden Jahr. Die Ergebnisse sollen wiederum in einer neuen Tabelle gespeichert werden.
Filtere AKTIV nach Kostenstelle „1“ in Spalte B
Filtere AKTIV nach Jahr = „2014“ in Spalte O / Nächste G25-Untersuchung
Zum Schluss sollen beide neuen Tabellen und ein einheitliches Word Dokument per Email an den Verantwortlichen versendet werden.
Im besten Falle trägt der Verantwortliche nun die Schulungsdaten in die Spalte M „Angemeldet zur Schulung“ und den Untersuchungstermin in Spalte Q „ Angemeldet zur G25 am „ ein und sendet uns die ausgefüllte tabelle zurück . Meine Kollegin kopiert sich die Daten dann rüber. Da im Betrieblichen Ablauf aber der Gültigkeit oft übersehen wird soll noch eine Erinnerungsfunktion eingebaut werden. Dies geschieht momentan nur durch Telefonanrufe und Email nachfragen was sehr viel Zeit frisst.
2.) Ein Erinnerungsschreiben falls bis zu einem gegebenen Zeitpunkt keine Rückmeldung erfolgt
Es soll die Spalte K „Nächste Schulung“ abgeglichen werden ob das Datum dem den Wert aktuelles Datum -30 Tage überschritten hat (Einen Monat vor Schulung)
Gleichzeitig soll geprüft werden ob ein Eintrag in Spalte M „angemeldet zur Schulung am“ besteht. Es soll nur geprüft werden ob ein Eintrag mit Datum vorhanden ist, der Zeitpunkt ist egal. Ebenso sollte mit dem Worteintrag ZB "Langzeitkrank" ein Abbruch der emailversendung generiert werden.
Sollte der Termin 30 Tage vor der Schulung sein und keinen Eintrag in Spalte M vorfinden soll eine neue Liste erstellt werden die dann wieder der jeweilige Verantwortliche zugesendet bekommt.
Filtere AKTIV nach Kostenstelle „1“ in Spalte B
Filtere AKTIV nach Datum -30 Tage in Spalte K / Nächste Schulung
Abgleich ist ein Datum in Spalte M / „Angemeldet zur Schulung“ vorhanden, Abbruch.
Ist kein Datum vorhanden, erstelle Liste und füge sie Email bei
Das gleiche gillt ebenso für die G25 Untersuchungen bei Spalte O „Nächste G25- Untersuchung -30 Tage und Spalte Q „Angemeldet zur Schulung am“.
Filtere AKTIV nach Kostenstelle „1“ in Spalte B
Filtere AKTIV nach Datum -30 Tage in Spalte K / Nächste G25-Untersuchung
Abgleich ist ein Datum in Spalte Q / „Angemeldet zur Schulung am“ vorhanden, Abbruch
Ist kein Datum vorhanden, erstelle Liste und füge sie Email bei
Da die Liste ständig verändert wird soll gewährleistet sein die neuen Zeilen hinzukommen und alte gelöscht werden können.
Beide Abfragen und Versendungen sollten manuell über einen Button an steuerbar sein und nicht über einen „auto open“ befehl erfolgen.
Unsere IT Abteilung hat mir bereits ein paar Codes übermittelt um die letzte Zeile auszulesen und Bustaben und Zahlen in Spalten zu erkennen. Evtl. kannst du dies auch gebrauchen.
Durch die Sommerbediengte Unterbesetzung in der IT kann ich aber keine weitere Hilfe von denen erwarten.
Ich kann mir vorstellen dass dies ziemlich kompliziert ist und einige Zeit in Anspruch nehmen wird. Versuche mich seit letzter Woche in VBA einzuarbeiten, habe als angehender Wirtschaftsingenieur bisher nur PHP programmiert und dachte eigentlich das meine Excel Fertigkeiten ausreichen. Benutze gerade das Skript der Fernuni Hagen für Grundlage VBA, nur komme ich mit der Aufgabenstellung nicht weiter. Es ist schon erstaunlich was man mit VBA alles machen kann, Hut ab vor eurem Forum.
Vielen Dank im Voraus für all deine Bemühungen
Anbei das geänderte Muster

Die Datei https://www.herber.de/bbs/user/86420.xlsm wurde aus Datenschutzgründen gelöscht


Beste Grüße
Daniel

Anzeige
an deine Datei angepasst
17.07.2013 14:29:46
Klaus
Hi Daniel,
hier an deine Datei angepasst. In Modul 2, das Makro MailGefilterttProAnwender starten.
https://www.herber.de/bbs/user/86422.xlsm
Also Wie du schon erwähnt hast:
filtere AKTIV nach Kostenstelle 1 in Spalte B
filtere AKTIV nach Jahr = 2014 in Spalte K

Diesen Teil erfüllt mein Makro jetzt. Alles andere sind Variationen davon, das bekommst du selber hin (oder?). Musst ja "nur" die Filterbedingungen entsprechend anpassen, der Code ist vollständig durchkommentiert.
Mailadressen im Klartext aufzuschreiben und hochzuladen finde ich mutig, SPAM-Roboter lieben das!
Da die Liste ständig verändert wird soll gewährleistet sein die neuen Zeilen hinzukommen und alte gelöscht werden können.
Selbstverständlich.
Beide Abfragen und Versendungen sollten manuell über einen Button an steuerbar sein und nicht über einen „auto open“ befehl erfolgen.
Ich liefere nur das Makro. Ob du das auf einen Knopf, ein auto-open Ereigniss oder einen Tastenshortcut setze überlasse ich dir!
Unsere IT Abteilung hat mir bereits ein paar Codes übermittelt um die letzte Zeile auszulesen und Bustaben und Zahlen in Spalten zu erkennen. Evtl. kannst du dies auch gebrauchen.
Oh ja! Unbedingt! *räusper* ... nicht. Meinst du, wenn ich die letzte Zeile einer Tabelle nicht auslesen kann dann bekomme ich einen Auto-Mailer programmiert? :-)
Durch die Sommerbediengte Unterbesetzung in der IT kann ich aber keine weitere Hilfe von denen erwarten.
Dafür gibts ja Herber.de
Ich kann mir vorstellen dass dies ziemlich kompliziert ist und einige Zeit in Anspruch nehmen wird.
relativ ... ich hab jetzt 30 minuten dran gesessen. Der Rest ist, wie ich oben schrieb, reine Fleißarbeit (entweder ganz viel Copy&Paste des Codes, oder einmal durch den Code schauen und entsprechende Variablen in die Filter einsetzen).
Den schwierigen Teil - Tablellen erstellen, speichern, per Mail verschicken - hatte ich ja schon fertig rumliegen. Die Zeit ging jetzt nur dafür drauf, die Spalten/Zeilen/Logik an dein Muster anzupassen.
Grüße,
Klaus M.vdT.

Anzeige
AW: an deine Datei angepasst
17.07.2013 14:48:26
Daniel
Hallo Klaus,
Vielen Dank, es ist genau so wie ich mir das vorgestellt habe, einfach genial von dir!
Ich wüsste mir keinen Rat und war die letzten 10 Tage damit beschäftigt.
Ich werde es morgen früh mal auf meine Orginaltabelle anwenden und durchlaufen lassen.
Super das es noch so hilfsbereite Menschen gibt !!!
Alles gute
Daniel

Danke für die Rückmeldung! owT.
17.07.2013 14:53:57
Klaus
.

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige