Zellwert als Text ausgeben

Bild

Betrifft: Zellwert als Text ausgeben
von: Doliwa
Geschrieben am: 26.04.2015 19:37:15

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"?

Bild

Betrifft: AW: Zellwert als Text ausgeben
von: Oberschlumpf
Geschrieben am: 26.04.2015 23:19:36
verwende mal anstelle von
Sheets("Tabelle1").Value("A3")
das hier:
Sheets("Tabelle1").Value("A3").Text
Hilfts?

Bild

Betrifft: AW: Zellwert als Text ausgeben
von: Doliwa
Geschrieben am: 27.04.2015 06:14:11
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

Bild

Betrifft: AW: Zellwert als Text ausgeben
von: Matthias L
Geschrieben am: 27.04.2015 06:26:35
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

Bild

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

Bild

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

Bild

Betrifft: AW: Zellwert als Text ausgeben
von: Doliwa
Geschrieben am: 27.04.2015 07:34:45
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

Bild

Betrifft: AW: Zellwert als Text ausgeben
von: Oberschlumpf
Geschrieben am: 28.04.2015 19:15:06
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.

Bild

Betrifft: lad bitte eine Bsp.Mappe hoch kwT
von: Matthias L
Geschrieben am: 27.04.2015 07:16:30


Bild

Betrifft: AW: Zellwert als Text ausgeben
von: Matthias L
Geschrieben am: 27.04.2015 08:44:14
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(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
   If Range("A3").Value = "0" Then Exit Do
   Range("H1").Value = I
Loop
End Sub
Gruß Matthias

Bild

Betrifft: AW: Zellwert als Text ausgeben
von: Michael
Geschrieben am: 28.04.2015 05:04:36
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.

Bild

Betrifft: AW: Zellwert als Text ausgeben
von: Doliwa
Geschrieben am: 04.05.2015 11:47:54
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.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zellwert als Text ausgeben"