Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formel durch VBA in Zelle eintragen

Formel durch VBA in Zelle eintragen
12.05.2020 11:20:17
Leon
Hallo zusammen,
habe folgenden VBA Code zusammengewürfelt um eine neue Spalte einzufügen,
die für jede ausgefüllte Zeile folgende Excel-Formel haben soll:
=WENNFEHLER(LINKS(A10;FINDEN("/";A10)+1);LINKS(A10;FINDEN(" ";A10)))
Kriege jedoch bei all meinen Versuchen einen Syntaxfehler in VBA für meine Formel.
Makro:

Sub Links_Zeile()
Dim AnzahlZeilen As Integer
Dim i As Integer
AnzahlZeilen = Range("A65536").End(xlUp).Row
ActiveSheet.Columns("B").Insert
For i = 2 To AnzahlZeilen
Cells(2, i).FormulaLocal = "=WENNFEHLER(LINKS(A & i;FINDEN("/";A & i)+1);
LINKS(A & i;FINDEN(" ";A & i)))"
Next
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel durch VBA in Zelle eintragen
12.05.2020 11:28:21
ChrisL
Hi
Cells(2, i).Formula = "=IFERROR(LEFT(A" & i & ",FIND(""/"",A" & i & ")+1),LEFT(A" & i & ",FIND("" "",A" & i & ")))"
cu
Chris
AW: Formel durch VBA in Zelle eintragen
12.05.2020 11:35:45
Leon
Vielen Dank!
VG
Leon
AW: Formel durch VBA in Zelle eintragen
12.05.2020 11:37:31
Werner
Hallo,
deine Formel ist ein Textstring. Innerhalb der Formel müssen die Gänsefüßchen gedoppelt werden.
Beim verwenden einer Variablen innerhalb der Formel mußt du vor dem Verwenden den Textstring mittels " beenden, die Variable mit & einfügen und danach den Textstring mit & " wieder beginnen.
Das würde in deinem Fall so aussehen:
Sub Links_Zeile()
Dim AnzahlZeilen As Long
Dim i As Long
AnzahlZeilen = Range("A65536").End(xlUp).Row
ActiveSheet.Columns("B").Insert
For i = 2 To AnzahlZeilen
Cells(2, i).FormulaLocal = "=WENNFEHLER(LINKS(A" & i & ";FINDEN("" / "";A" & i & ")+1);" _
& "LINKS(A" & i & ";FINDEN("" "";A" & i & ")))"
Next
End Sub
Anmerkungen:
hier
Cells(2, i)

verwendest du die Variable i als Spaltenwert. Innerhalb der Klammer steht der erste Zahlenwert für die Zeile, der zweite Zahlenwert (oder die Variable) für die Spalte. Ich denke, dass du Formel aber in der Spalte B einfügen willst, dann wären aber Zeile und Spalte innerhalb der Klammer von Cells vertauscht.
Zudem stellt sich mir die Frage, weshalb du die Formel per Schleife einträgst und nicht einfach in den kompletten Bereich der Spalte B, also ohne Schleife.
Wäre dann so:
Sub Links_Zeile()
Dim AnzahlZeilen As Long
AnzahlZeilen = Range("A65536").End(xlUp).Row
ActiveSheet.Columns("B").Insert
Range("B2:B" & AnzahlZeilen).FormulaLocal = _
"=WENNFEHLER(LINKS(A2;FINDEN(""/"";A2)+1);LINKS(A2;FINDEN("" "";A2)))"
End Sub
Gruß Werner
Anzeige
AW: Formel durch VBA in Zelle eintragen
12.05.2020 11:50:36
Leon
Hallo Werner,
wie man vlt sieht bin ich ein VBA-Frischling, von daher vielen Dank
für die ausführliche Erklärung. Hat mir sehr viel für Verständnis gebracht!
Genau, die Parameter für "Cells()" habe ich vertauscht. Dein letzter Code
war genau das was ich brauche.
Viele Grüße
Leon
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
12.05.2020 12:15:12
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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