Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1420to1424
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
Inhaltsverzeichnis

Zellwert als Text ausgeben

Zellwert als Text ausgeben
26.04.2015 19:37:15
Doliwa
Ich möchte einen Serienbrief mit Excel und VBA erstellen. Hierbei habe ich folgende Formel generiert, die soweit auch funktioniert:
Sub Hochzaehlen()
Dim I As Integer
Do While Range("A3").Value  "0"
Range("H1").Value = Range("H1").Value + 1
I = I + 1
Set Mail_Object = CreateObject("Outlook.Application")
With Mail_Object.CreateItem(o)
.Subject = Worksheets("Tabelle1").Range("B1")
.To = Sheets("Tabelle1").Range("H2")
.Body = Sheets("Tabelle1").Value("A3") & Chr(13) & Sheets("Tabelle1").Range("A5") &  _
_
Chr(13) & Sheets("Tabelle1").Range("A20") & Chr(13) & Sheets("Tabelle1").Range("A21") & Chr(13)  _
& Sheets("Tabelle1").Range("A26") & Chr(13) & Sheets("Tabelle1").Range("A30")
'.Send
.Display
End With
If Range("A3").Value = "0" Then Exit Do
Range("H1").Value = I
Loop
End Sub

Das Problem dabei ist, daß z.B. der Zellwert A3 durch eine Formel hinterlegt ist. Dadurch wird in der Email der Wert "0" ausgegeben, statt die Anrede. Wie kann ich VBA dazu nötigen, den Text der Zelle auszugeben, statt den Wert "0"?

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellwert als Text ausgeben
26.04.2015 23:19:36
Oberschlumpf
verwende mal anstelle von
Sheets("Tabelle1").Value("A3")
das hier:
Sheets("Tabelle1").Value("A3").Text
Hilfts?

AW: Zellwert als Text ausgeben
27.04.2015 06:14:11
Doliwa
Grüß Dich Oberschlumpf,
danke für den Tip, aber leider ist immer noch im Email "0" zu lesen.
Hast Du oder andere weitere Ideen?
Stefan

AW: Zellwert als Text ausgeben
27.04.2015 06:26:35
Matthias
Hallo
Wieso schreibst Du
Sheets("Tabelle1").Value("A3")

Ist das so gewollt, oder sollte es eher so sein?
Sheets("Tabelle1").Range("A3").Value
Gruß Matthias

AW: Zellwert als Text ausgeben
27.04.2015 06:52:45
Doliwa
Leider auch kein Erfolg. Immer noch "0".

Anzeige
AW: Zellwert als Text ausgeben
27.04.2015 07:15:45
Oberschlumpf
dann zeig mal bitte per Upload eine Bsp-Datei mit Bsp-Daten und deinem Code, so dass deine Frage nachvollziehbar ist.

AW: Zellwert als Text ausgeben
27.04.2015 07:34:45
Doliwa
Hier ist die Datei: https://www.herber.de/bbs/user/97316.xlsm
Fahre jetzt bloß leider nach Polen und werde am 3. Mai zurück kommen. Bin mal gespannt, ob Du eine Lösung findest. Schönen Feiertag

AW: Zellwert als Text ausgeben
28.04.2015 19:15:06
Oberschlumpf
es ist nicht unbedingt der Code, der falsch ist.
Du solltest mal die Formel in A3 überprüfen.
In A3 steht nur dann eine Anrede, so lange in H1 der Wert 1 steht.
Wenn in H1 = 0 oder 2 oder irgd ein anderer Wert außer 1 steht, erscheint in der Zelle A3 aufgrund der Formel in A3 eine 0.
Der Code selbst scheint ok zu sein.
Wie gesagt, überprüfe und korrigiere vielleicht noch mal die Formel in A3.

Anzeige
lad bitte eine Bsp.Mappe hoch kwT
27.04.2015 07:16:30
Matthias

AW: Zellwert als Text ausgeben
27.04.2015 08:44:14
Matthias
Hallo
Änderungen sind blau
Option Explicit
Sub Hochzaehlen()
Dim I As Integer, Mail_Object As Object
Do While Range("A3").Value  "0"
I = I + 1
Set Mail_Object = CreateObject("Outlook.Application")
With Mail_Object.CreateItem(0color>)
.Subject = Worksheets("Tabelle1").Range("B1")
.To = Sheets("Tabelle1").Range("H2")
.Body = Sheets("Tabelle1").Range("A3").Text & Chr(13) & Sheets("Tabelle1").Range(" _
A5") & Chr(13) & Sheets("Tabelle1").Range("A20") & Chr(13) & Sheets("Tabelle1").Range("A21") & Chr(13) & Sheets("Tabelle1").Range("A26") & Chr(13) & Sheets("Tabelle1").Range("A30")
'.Send
.Display
End With
Range("H1").Value = Range("H1").Value + 1
If Range("A3").Value = "0" Then Exit Do
Range("H1").Value = I
Loop
End Sub
Gruß Matthias

Anzeige
AW: Zellwert als Text ausgeben
28.04.2015 05:04:36
Michael
Hallo zusammen,
in beiden Codeschnipseln ist die Zuweisung von Werten zu H1 doppelt gemoppelt: einmal wird der Wert direkt erhöht (Range("H1").Value = Range("H1").Value + 1), einmal wird ihm die um 1 erhöhte Variable I zugewiesen.
Ich finde, einmal reicht, und zwar an geeigneter Stelle - dann kann man letztlich auf das I völlig verzichten.
Mir stößt der Kopf der Schleife auf: hier wird eine Abfrage vorgenommen, *ohne* daß in H1 ein definierter ("bekannter") Wert ist: da kann schlimmstenfalls vom vorhergehenden Aufruf (des Makros) sonstwas drinstehen. A3 ist ja schließlich abhängig von H1.
Hier eine Variante, die beide Sachen ausbügelt:

Option Explicit
Sub Hochzaehlen()
Dim Mail_Object As Object
Range("H1").Value = 1
Do While Range("A3").Value  "0"
Set Mail_Object = CreateObject("Outlook.Application")
With Mail_Object.CreateItem(0)
.Subject = Worksheets("Tabelle1").Range("B1")
.To = Sheets("Tabelle1").Range("H2")
.Body = Sheets("Tabelle1").Range("A3").Text & Chr(13) & Sheets("Tabelle1").Range("  _
_
A5") & Chr(13) & Sheets("Tabelle1").Range("A20") & Chr(13) & Sheets("Tabelle1").Range("A21") &  _
Chr(13) & Sheets("Tabelle1").Range("A26") & Chr(13) & Sheets("Tabelle1").Range("A30")
'.Send
.Display
End With
Range("H1").Value = Range("H1").Value + 1
Loop
End Sub
Frrränkische Grüße,
Michael
P.S.: Du wirst kaum Geschwindigkeitsprobleme haben, aber ich bevorzuge es, so wenig Zugriffe wie möglich auf die Daten zu machen. D.h., die Litanei von Verweisen in A3 könnte man durch einen einzigen ersetzen und in VBA das Herr/Frau/Fräulein mit einer übersichtlichen Select/Case erledigen. Geschmackssache.

Anzeige
AW: Zellwert als Text ausgeben
04.05.2015 11:47:54
Doliwa
Ich bedanke mich bei Euch allen! Ihr habt mir sehr geholfen und die Datei/Makro funktioniert nun, wie gewünscht! Tausend Dank, dies hätte ich erst über Wochen lösen können - oder gar nicht.

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige