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

Mit VBA Formel in Zellen packen

Mit VBA Formel in Zellen packen
22.03.2022 16:51:55
Robert
möchte folgende Formel mit VBA in Zellen packen:
=(INDIREKT("'"&$V$3&"'!K6")) ; wobei K6 immer ein höher wird, also K7 dann K8 dann K9 usw.
Danke für Eure Hilfe
Robert

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit VBA Formel in Zellen packen
22.03.2022 16:57:01
Beverly
Hi Robert,
meinst du do etwas:

.FormulaLocal = "=(INDIREKT("" '""&$V$3&""'!K""&ZEILE(A6)))"
Bis später
Karin

AW: Mit VBA Formel in Zellen packen
22.03.2022 17:47:07
Robert
Hallo Beverley,
ja so etwas, wobei der K bleibt, aber die Nummer mit einer Schleife immer ein höher wird (6,7,8,9,10,11 usw.
AW: Mit VBA Formel in Zellen packen
22.03.2022 21:39:30
Beverly
Hi,
hast du es denn schon mal getestet? Wenn du die Formel in einen Bereich einträgt, passiert doch genau das. Da du dich dazu nicht geäußert hast hier der Entrag in die Zellen A1:A10

Range("A1:A10").FormulaLocal = "=(INDIREKT("" '""&$V$3&""'!K""&ZEILE(A6)))"
Bis später
Karin

Anzeige
AW: Mit VBA Formel in Zellen packen
23.03.2022 09:30:47
Robert
Hallo Karin,
die Schleife sieht so aus:
For n = 1 To 150
Worksheets(Sheetname).Cells(n + 15, 20).FormulaLocal = "=(INDIREKT("" '""&$V$3&""'!K""&ZEILE(A6)))"
Next n
so ausgeführt, gibt es in der Zelle als Inhalt =(INDIREKT(" '"&$V$3&"'!K"&ZEILE(A6))) ; was an sich gut ist, aber als Zellenwert " #BEZUG " gibt
Mir fehlt die richtige Code für dieses Teil: ""&ZEILE(A6)))" Hier musste (n+5) als Variabele rein um als Zellinhalt nach dem K (die Spalte) mit jeder Schleifendurchlauf ein höhere Zahl (die Zeile) zu kriegen:
Also so soll der Zellinhalt sein bei:
n=1 : =(INDIREKT("'"&$V$3&"'!K6"))
n=2 : =(INDIREKT("'"&$V$3&"'!K7"))
n=3: =(INDIREKT("'"&$V$3&"'!K8"))
Anzeige
AW: Mit VBA Formel in Zellen packen
23.03.2022 10:03:33
ChrisL
Hi Robert
Der Fehler kommt wegen dem Leerschlag innerhalb der Formel. Die Publikation im Forum macht dies manchmal automatisch.
Ein paar Tipps:
- Die Ergänzung der Formel mit ZEILE() hat den Vorteil, dass du keine Schleife machen musst.
- Ich bevorzuge die englische Schreibweise (Formula nicht FormulaLocal), weil es Sprachunabhängig funktioniert. Weil ich öfters mit unterschiedlichen Sprachen konfrontiert bin, bin ich diesbezüglich etwas pingelig.
- "Sheetname" ist recht nah an fixen VBA-Codewörtern (Schlüsselbegriffe wie z.B. ActiveSheet oder Sheets.Name). Ich möchte dir empfehlen, Variablennamen klar zu unterscheiden. Namenskonventionen könnte man auch noch machen, aber diesbezüglich bin ich selber auch nicht ganz so konsequent ;)
https://www.herber.de/vbabasics/0002.html
- Und das Arbeitsblatt würde ich nicht als String definieren, sondern direkt als Arbeitsblatt.
Die Tipps sind als solche zu sehen. Kann man, muss man aber nicht.

Sub t()
Const Sheetname As String = "Tabelle1"
Worksheets(Sheetname).Range("T16:T165").FormulaLocal = "=INDIREKT(""'""&$V$3&""'!K""&ZEILE(A6))"
End Sub

Sub tt()
Dim wks As Worksheet
Set wks = Worksheets("Tabelle1")
wks.Range("T16:T165").Formula = "=INDIRECT(""'""&$V$3&""'!K""&ROW(A6))"
End Sub
cu
Chris
Anzeige
AW: Mit VBA Formel in Zellen packen
23.03.2022 12:01:09
Robert
Danke Chris,
Funzt jetzt, so wie ich es haben möchte.
Zu den Tips. Ich bin dafür immer offen - bin nur kleiner Hobby-Programmierer - und lerne gerne dazu.
1. Was ich nicht verstehe, ist "Zeile(A6) ; denn das verweist auf eine Zelle wo andere Werte (variabel) drin sind und mit diesen Formel nichts zu tun haben.
2. Ich benutze auch immer die Englische Schreibweise, aber Beverly hatte es so hingeschrieben und ich habe es dann zuerst so ausprobiert.
3. Sheetname benutze ich (als String ) weil ich so ( Sheetname = "Klasse " & n ,wobei n variabel -für mich einfach ) eine ganze Reihe von Tabellen abackern kann.
Ich könnte aber leicht SheetName leicht in Blattname oder TabelleName ändern.
Nochmals herzlichen Dank und über eine Erklärung Punkt 1 würde ich mich freuen.
Robert
Anzeige
AW: Mit VBA Formel in Zellen packen
23.03.2022 12:37:03
ChrisL
Hi Robert
Danke für die Rückmeldung.
=ZEILE(A6)
ergibt die Zahl 6 und es ist somit egal, ob du A6, B6, C6... nimmst, Hauptsache wir bekommen die Zahl 6.
FormulaLocal ist für "unbeholfene" Forumsteilnehmer einfacher nachzuvollziehen, weshalb ich verstehe, wenn dies so vorgeschlagen wird. Oft spielt es keine Rolle, da der Benutzerkreis eingeschränkt ist. Vielleicht ein kleiner Tick meinerseits, dass ich auf den Unterschied hinweise u.a. weil ich in einem Umfeld arbeite, wo unterschiedliche Spracheinstellungen nicht unüblich sind.
Blattnamen mit Laufnummern würde ich wahrscheinlich auch als String abhandeln, weil einfacher. Ansonsten versuche ich die Variablen wenn möglich als das zu deklarieren, was sie repräsentieren.
cu
Chris
Anzeige
AW: Mit VBA Formel in Zellen packen
23.03.2022 13:02:01
Robert
Danke Chris,
das mit der 6 - wie kommt man als Hobby -Programierer auf so etwas🤔 . Ich mache da mal Z6 ; weg vom Arbeitsbereich.
Ich benutze auch immer die Englische Schreibweise, weil ich einmal auf ein fremder Rechner mit Deutsche Excel und VBA arbeiten musste und meine Makros festliefen weil die automatische Makro-Übersetzung nicht ohne fehler war.
Gruß Robert
AW: Mit VBA Formel in Zellen packen
23.03.2022 10:12:05
Beverly
Hi,
der Bezigsfehler ergibt sich, weil du an dieser Stelle INDIREKT("" '""&$V$3 zwischen den ersten beiden Anführungszeichen "" und dem Apostroph ' ein Leerzeichen hast.
Weshalb denn in einer Schleife? Du kannst die Formel - so wie ich es bereits gepostet hatte - dem GESAMTEN Bereich auf EINEN RITT zuweisen:

With Worksheets(Sheetname)
.Range(.Cells(n + 15, 20), .Cells(n + 164, 20)).FormulaLocal = "=(INDIREKT(""'""&$V$3&""'!K""&ZEILE(A6)))"
End With
Ich bin davon ausgegangen, dass in V3 so etwas in der Art steht: AndereMappe.xlsx!Tabelle3
Bis später
Karin

Anzeige
AW: Mit VBA Formel in Zellen packen
23.03.2022 12:17:35
Robert
Danke Karin,
so Funtzt es wie gewünscht. Das mit dem Leerzeichen ist manchmal schlecht zu erkennen, hat mir Chris schon erklärt.
Gruß Robert
AW: Mit VBA Formel in Zellen packen
22.03.2022 17:11:51
Wurthberg
Hallo Robert
Ich gehe mal davon aus, K6 soll immer um 1 höher werden, wenn man die Formel in der Tabelle nach unten kopiert.
So eine Formel könnte dann heissen:
=(INDIREKT("'"&$V$3&"'!K"&ZEILE(A6);1))
Ich hoffe, das hilft Dir weiter.
Grüsse Niclaus

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige