Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
516to520
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
516to520
516to520
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellenblattname in Code einfügen

Tabellenblattname in Code einfügen
16.11.2004 14:08:45
Glen
Hallo liebe Forumsgemeinde
Mein Excelsheet startet in einem Übersichtarbeitsblatt, von wo aus ich mittels Schaltfläche auf die einzelnen Arbeitsblätter zugreife. Wenn ich nun auf ein solches Arbeitsblatt zugreife und dort z.B. das Datum eintrage, wird das auf die Übersichtsmappe in Spalte B übertragen.
Jetzt habe ich einen Code, der beim speichern ein Mail auslöst in dem ein Standardtext hinterlegt ist. jetzt möchte ich erreichen, dass in diesem Standardtext (Subjekt) die Gerätenummer dazugeschrieben wird. Hierzu kann ich auf die Gerätenummer zurückgreifen, die in der Übersichtsmappe in Spalte A vorhanden ist. In Spalte B wurde ja bereits das Datum eingetragen. Wie kann ich das realisieren?
Hier der Code, der das E-Mail auslöst:

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ol, mail As Object
Set ol = CreateObject("Outlook.Application")
Set mail = ol.CreateItem(0)
mail.Subject = "PiccoLink Reparaturkontrolle Sender wurde gespeichert " & Now
mail.To = "hans.muster@mailserver.ch"
'mail.cc = ""
'mail.bcc = ""
mail.body = "Diese Mail wurde direkt aus Excel versandt" & Chr(13) & _
mail.Display
mail.send
End Sub

viel Dank schon mal den Helfern.
Gruss, Glen

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblattname in Code einfügen
Galenzo
Hallo,
so wie ich das verstehe, steht die gesuchte Gerätenummer in der letzten Zeile in der Spalte A - danach kommen nur noch leere Zellen.
Schreibst du also:
mail.body = "Das Gerät hat die Nummor: " & Sheets("Übersicht").Cells(Rows.Count, 1).End(xlUp) & vbCrLf & "Diese Mail wurde direkt aus Excel versandt"
Ist das so in Ordnung?
Wenn nicht, müßte meines Erachtens in Spalte B nach dem aktuellen Datum gesucth werden?
mfg
AW: nicht ganz
16.11.2004 14:39:50
Glen
Hallo Galenzo
Das klappt so noch nicht! ich bekomme immer die Nummer 32 zurück !?
Das mit deinem Vorschlag (nach dem aktuellen Datum suchen) würde gehen. Die Nummer die ich dann brauche, steht in Spalte A, also links vom Datum das in Spalte B ist.
Glen
Anzeige
weiss jemand bescheid?
Glen
Hallo Leute
Wie muss der Code lauten, wenn ich den Wert ausgegeben bekommen möchte der in Spalte A (1) steht und das Kriterium der Suche das aktuelle Datum in Spalte B ist?
Zur Zeit habe ich das, was aber den Wert der letzten beschriebenen Zelle in der Spalte A liefert.
mail.body = "Am Datenblatt zur Gerätenummer " & Sheets("Ü B E R S I C H T").Cells(Rows.Count, 1).End(xlUp) & vbCrLf & "wurde ein Eintrag gemacht"
Besten Dank für die Unterstützung
Gruss, Glen
AW: weiss jemand bescheid?
Ulf
Sheets("Ü B E R S I C H T").Cells(Rows.Count, 1).End(xlUp).offset(0,-1)
Ulf
Fehler
17.11.2004 09:42:44
Glen
Hallo zusammen
Es funktionieren beide Varianten noch nicht.
Bei der Lösung von Ulf: Laufzeitfehler "1004" Anwendungs- oder obkektdefinierter Fehler
und bei der Lösung von Galazo: Laufzeitfehler "91" Objektvariable oder With-Blockvariable nicht festgelegt.
Gruss Glen
Anzeige
AW: Fehler
Ulf
Unklar!
Ulf
Fehler gefunden :-0 ! vielen Dank euch beiden
18.11.2004 10:20:13
Glen
Hallo Ulf , hallo Galenzo und Hallo Forumsbesucher
Habe das Problem erkannt! es lag daran, dass in der Spalte B (da wo der Code nach dem Datum sucht) zwar ein Datum drin steht, das jedoch mit folgender Formel hineingeschrieben wird:
=WENN(ISTNV(SVERWEIS(MAX('29535'!$A$3:$A$25);'29535'!$A$3:$E$25;1;WAHR));"";SVERWEIS(MAX('29535'!$A$3:$A$25);'29535'!$A$3:$E$25;1;WAHR))
und somit kann der Code natürlich das Datum in Spalte B nicht erkennen.
Gibt es für mein Problem in etwa eine derartige Lösung in VBA wie:
Wenn sich in Spalte B (oder C) was verändert hat, dann gebe die Zahl aus der Zelle in Spalte A aus der geänderten Zeile zurück.
Hier nochmals der Code, wie er zur Zeit ausschaut:

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ol, mail As Object
Set ol = CreateObject("Outlook.Application")
Set mail = ol.CreateItem(0)
mail.Subject = "PiccoLink Reparaturkontrolle Sender wurde gespeichert " & Now
mail.To = "hans.muster@mailserver.ch"
'mail.cc = ""
'mail.bcc = ""
mail.body = "Am Datenblatt zur Gerätenummer " & Sheets("Ü B E R S I C H T").Range("B2:B33").Find(Date).Offset(0, -1) & vbCrLf & "wurde ein Eintrag gemacht"
mail.Display
mail.send
End Sub

Ich brauche die Lösung im Bereich "mail.body"
Danke und Gruss, Glen

Anzeige
AW: weiss jemand bescheid?
Galenzo
mail.body = "Am Datenblatt zur Gerätenummer " & Sheets("Ü B E R S I C H T").Range("B2:B100").Find(Date).Offset(0, -1) & vbCrLf & "wurde ein Eintrag gemacht"
Sucht in Spalte B nach aktuellem Datum und gibt den nebenstehenden Wert aus Spalte A zurück. Der erste Treffer wird genommen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige