Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1312to1316
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

Formel in VBA zum Abruf mehrerer Zellinhalte

Formel in VBA zum Abruf mehrerer Zellinhalte
14.05.2013 12:21:04
Hartmut
Hallo zusammen,
bezügliche einer früheren Lösung von Karin (https://www.herber.de/forum/messages/1312822.html) habe ich nun ein Folgeproblem, was ich nicht gestemmt bekomme. Konkret wird dort die Formel einer Zelle zur Laufzeit aus mehreren, variablen Strings gebaut.
Ich möchte nun aber die Werte aus mehreren Zellen in einer gemeinsame Zelle vorhalten können, weshalb die jeweils für einen Wert gültigen Formelstrings kombiniert werden müssten. Zusätzlich würde ich gerne einzelne Werte mit Zeilenumbrüchen (wie Zeichen(10) von den vorherigen Werten optisch trennen.
Aktuell wäre das so:
Cells(1,1).Formula = "='" & strPath & "[" & strFile & "]" & "Tabelle 1" & "'!A1"

Wunschgemäß wäre das dann sinngemäß so:
Cells(1,1).Formula = _
"='" & strPath & "[" & strFile & "]" & "Tabelle 1" & "'!A1" _
& Zeichen(10) & "[" & _
"'" & strPath & "[" & strFile & "]" & "Tabelle 1" & "'!A2" _
"]"

Klappt aber leider nicht. Zeichen(10) wird in VBA angemeckert und bei der Eck-Klammer sowieso.
Wäre für jeden Tipp dankbar!
--
Viele Grüße,
Hartmut

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel in VBA zum Abruf mehrerer Zellinhalte
14.05.2013 12:24:21
Klaus
Hi Harmut,
"Zeichen" heisst in VBA "chr". Siehe:
msgBox("Hallo" & chr(10) & "Welt")
Grüße,
Klaus M.vdT.

AW: Formel in VBA zum Abruf mehrerer Zellinhalte
14.05.2013 12:32:43
Hartmut
Hallo Klaus,
klappt leider nicht, da Excel innerhalb der Zell-Formel nichts mit "chr(10)" anfangen kann.
Beispiel:
Cells(loZeileZielmappe, 6).Formula = _
"='" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C33" & _
Chr(10) & _
"& '" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C35"
Was in der Zelle ankommt, ist lediglich das &-Zeichen aus der 2. String-Formel.
Dennoch danke!
--
H.

Anzeige
AW: Formel in VBA zum Abruf mehrerer Zellinhalte
14.05.2013 12:39:34
Klaus
Hi Hartmut,
probiers mal so:
Cells(loZeileZielmappe, 6).Formula = _
"='" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C33 & Char(10) & " &
"& '" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C35"
schreibt den Zeilenumbruch direkt in die Formel. Char(10) statt zeichen(10), da "formula" die englischen Excelformeln erwartet.
Mein Test:
=A2&CHAR(10)&A3 in einer Zelle hat funktioniert wie gewünscht.
Grüße,
Klaus M.vdT.

AW: Formel in VBA zum Abruf mehrerer Zellinhalte
14.05.2013 13:01:13
Hartmut
Hallo Klaus,
nachdem das überzählige & zu Beginn der dritten Zeile weg war, hat es geklappt. Tatsächlich ist Char(10) zu einem Zeichen(10) umgesetzt worden. Respekt ;-)
Hast du auch noch einen Tipp, wie ich möglichst beliebige, zusätzliche Textzeichen mit einfügen kann? Beispielsweise wird die Eck-Klammer angemeckert, egal, wo ich sie bislang hingesetzt habe.
--
Viele Grüße,
Hartmut

Anzeige
AW: Formel in VBA zum Abruf mehrerer Zellinhalte
14.05.2013 13:25:57
Klaus
Hast du auch noch einen Tipp, wie ich möglichst beliebige, zusätzliche Textzeichen mit einfügen kann?
Hi,
solange die innerhalb von "" steht, kannst du eigentlich alles eintragen. Notfalls mit .value
wenn du mit .formula einträgst, erwartet Excel natürlich eine gültige Formel.
Was genau wird bei dir angemeckert?
Grüße,
Klaus M.vdT.

AW: Formel in VBA zum Abruf mehrerer Zellinhalte
14.05.2013 13:42:54
Hartmut
Hallo Klaus,
leider nein, der VBA-Editor interpretiert Klammern scheinbar nicht als String, sondern als Steuerzeichen.
Beide folgenden Varianten gehen daher nicht:
#1
Cells(loZeileZielmappe, 6).Formula = _
"='" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C33 & Char(10) & " _
& "['" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C35]"
#2
Cells(loZeileZielmappe, 6).Formula = _
"='" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C33 & Char(10) & " _
& "[" & "['" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C35" _
& "]"
Als Meldung kommt:
Fehler beim Kompilieren:
Erwartet: Zeilennummer oder Sprungmarke oder Anweisung oder Anweisungsende

--
Hartmut

Anzeige
AW: Formel in VBA zum Abruf mehrerer Zellinhalte
14.05.2013 14:08:53
Klaus
Hi,
redest du von Klammern [ ] oder diesem " Zeichen? Kann das nicht nachvollziehen. " müsstest du doppelt setzen, wie Rudi schrieb.
Grüße,
Klaus M.vdT.

müssen in doppelte ". owT
14.05.2013 13:33:21
Rudi

AW: müssen in doppelte ". owT
14.05.2013 13:54:01
Hartmut
Hallo Rudi,
leider nein, der VBA-Editor sagt dann: "Fehler beim Kompilieren: Systaxfehler"
Cells(loZeileZielmappe, 6).Formula = _
"='" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C33 & Char(10) & " & _
_
""test & "" & _
"'" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C35"
Mit nur einfachen " um test herum läuft das Skript durch, in der Zielzelle des Tabellenblatts kommt dann der Begriff test ohne die notwendigen " an und es erfolgt der "#NAME?"-Fehler.
--
H.

Anzeige
AW: müssen in doppelte ". owT
14.05.2013 14:10:38
Klaus
"""test & """ _
sollte gehen. Du brauchst " für die Formel, und die " die du innerhalb der Formel sehen möchtest musst du durch " kenntlich machen. Ist etwas doof zu erklären, spiel damit halt rum. Sobald dus verstanden hast ist es ganz einfach :-)
Grüße,
Klaus M.vdT.

AW: müssen in doppelte ". owT
14.05.2013 14:23:42
Hartmut
Hallo Klaus,
kurz gesagt, leider nein. Jedoch ahne ich, was damit gemeint ist.
Werde aber besser morgen erneut mit frischem Kopf an das Thema rangehen, bevor ich mehr zerschieße, als ich richtig mache ;-)
--
H.

AW: müssen in doppelte ". owT
14.05.2013 14:26:45
Rudi
Hallo,
Cells(loZeileZielmappe, 6).Formula = _
"='" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C33 & Char(10) & " & _
""test"" & _
"'" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C35"
Gruß
Rudi

Anzeige
AW: müssen in doppelte ". owT
14.05.2013 14:40:39
Hartmut
Hallo Rudi,
auch nicht: Bereits beim Pasten in den Editor kommt die Meldung
"Fehler beim Kompilieren: Erwartet Anweisungsende".
--
H.

Eine dolle Jongliererei, ...
14.05.2013 16:19:51
Luc:-?
…Leute; ;->
wie wär's mit …
Cells(loZeileZielmappe, 6).Formula = _
"='" & strPath & "\[" & strFile & "]Auswertung Vorschriften'!C33&CHAR(10)&""test""&CHAR(10)&'" & _
strPath & "\[" & strFile & "]Auswertung Vorschriften'!C35"

Gruß Luc :-?

AW: Eine dolle Jongliererei, ...
15.05.2013 10:33:18
Hartmut
Hallo Luc,
das war es leider auch nicht.
Habe aber nun einen Workaround:
Da das Problem scheinbar während des String-Bauens in VBA entsteht und beide Verknüpfungen solo funktionieren, habe ich diese zunächst in Variablen geschrieben.
Dann habe ich die fertigen Variablen-Inhalte kombiniert und wie gehabt in die Zell-Formel geschrieben. In dem Fall klappt auch, dass Klappern in doppelte "Doppel-Anführungszeichen" gesetzt werden, damit sie in die Formel gerettet werden können.
Damit sieht meine Lösung so aus (wen es interessiert):
loSpalteZielmappe = 6 ' nur zur Vereinfachung
strValue1 = "'" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C33"
strValue2 = "'" & strPath & "[" & strFile & "]" & "Auswertung Vorschriften" & "'!C35"
Cells(loZeileZielmappe, loSpalteZielmappe).Formula = _
"=" & strValue1 _
& " & Char(10) &" _
& " ""["" & " _
& strValue2 _

Allen vielen Dank für das Mitdenken!
--
Hartmut

Anzeige
...Na, wenn's fktioniert...! owT
15.05.2013 16:12:33
Luc:-?
:-?

Recorder
14.05.2013 14:33:40
Rudi
Hallo,
mach den recorder an und schreib z.B. in B1 =A1 &"test" &A2.
Dann schau, was dabei rauskommt.
Gruß
Rudi

AW: Recorder
14.05.2013 14:45:12
Hartmut
Hallo Rudi,
wie folgt: ActiveCell.FormulaR1C1 = "=RC[-1] & ""test"" & R[1]C[-1]"
--
H.

AW: Formel in VBA zum Abruf mehrerer Zellinhalte
14.05.2013 12:51:34
Rudi
Hallo,
  Cells(1, 1).Formula = "='" & strPath _
& "[" & strFile & "]Tabelle1'!A1" _
& "  &CHAR(10) &'" _
& strPath _
& "[" & strFile & "]" & "Tabelle1'!A2"

Gruß
Rudi

331 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige