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

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

Anzeige

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

Anzeige
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

Anzeige
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.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zellwert als Text ausgeben in Excel


Schritt-für-Schritt-Anleitung

Um den Inhalt einer Zelle als Text auszugeben, insbesondere in einem VBA-Szenario, folge diesen Schritten:

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deineDatei.xlsm)" > Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    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").Text & Chr(13) & _
                       Sheets("Tabelle1").Range("A20").Text & Chr(13) & _
                       Sheets("Tabelle1").Range("A21").Text & Chr(13) & _
                       Sheets("Tabelle1").Range("A26").Text & Chr(13) & _
                       Sheets("Tabelle1").Range("A30").Text
               .Display
           End With
           Range("H1").Value = Range("H1").Value + 1
       Loop
    End Sub
  4. Achte darauf, dass du Range("A3").Text verwendest, um den Text der Zelle und nicht den Wert herauszugeben.


Häufige Fehler und Lösungen

  • Problem: Der Zellwert wird als "0" angezeigt.

    • Lösung: Überprüfe die Formel in Zelle A3. Stelle sicher, dass sie die richtige Anrede ausgibt, wenn der Wert in H1 gleich 1 ist.
  • Problem: Der VBA-Code gibt nicht den gewünschten Text aus.

    • Lösung: Stelle sicher, dass du die .Text-Eigenschaft verwendest, um den Excel-Inhalt einer Zelle als Text auszugeben.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du folgende Excel-Formeln verwenden, um den Zellinhalt als Text darzustellen:

  • Verwende die Funktion TEXT():

    =TEXT(A3, "0")
  • Um den Zellenwert als Text auszugeben, kannst du auch & "" verwenden:

    =A3 & ""

Diese Methoden sind hilfreich, wenn du die Ausgabe direkt in einer Zelle benötigst, ohne VBA zu verwenden.


Praktische Beispiele

  1. Zellwert als Text übernehmen: Wenn in Zelle A3 eine Formel steht, die von H1 abhängt, und du den Text in einer anderen Zelle benötigst, kannst du folgende Formel nutzen:

    =TEXT(A3, "General")
  2. VBA Beispiel: Wenn du eine E-Mail mit Outlook senden möchtest und den Text einer Zelle benötigen, könnte dein Code so aussehen:

    .Body = Sheets("Tabelle1").Range("A3").Text

Beide Beispiele helfen dir, den Excel-Zelleninhalt als Text auszugeben.


Tipps für Profis

  • Nutze die .Value- und .Text-Eigenschaften miteinander, um zwischen dem Wert und dem Text einer Zelle zu wechseln.

  • Verwende VBA-Fehlerbehandlungsroutinen, um mögliche Fehler beim Zugriff auf Zellen zu vermeiden.

    On Error Resume Next
  • Überlege, die Daten in eine Array-Variable zu laden, um die Performance zu steigern, anstatt einzelnen Zellen wiederholt zuzugreifen.


FAQ: Häufige Fragen

1. Wie kann ich den Inhalt einer Zelle als Text ausgeben?
Verwende die .Text-Eigenschaft in VBA oder die TEXT()-Funktion in Excel, um den Zellwert als Text auszugeben.

2. Was ist der Unterschied zwischen .Value und .Text in VBA?
.Value gibt den tatsächlichen Wert einer Zelle zurück (z.B. eine Formel), während .Text den angezeigten Text der Zelle zurückgibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige