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

For next Schleife mit Formel

Forumthread: For next Schleife mit Formel

For next Schleife mit Formel
28.06.2018 10:41:55
Thorsten
Hallo Zusammen,
vor lauter Variablen habe ich den Überblick verloren. Könnt Ihr mir bitte helfen.
Problemstellung: Ich habe 2 Excelsheets. In Sheets(2) stehen die Daten in Spalte A.
Zunächst soll die Anzahl der benutzten Zeilen in Sheets(2), Spalte A ausgelesen werden, damit ich die For Next Schleife aufbauen kann. Nun sollen die leeren Zeilen rausgelöscht werden.
Dim lgCount As Long
Dim lgLetzte As Long
lgLetzte = Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For lgCount = lgLetzte To 1 Step -1
If IsEmpty(Cells(lgCount, 1)) Then
Cells(lgCount, 1).Delete Shift:=xlUp
End If
Als nächstes soll auf Sheets(1) in Spalte A von allen benutzten Zellen von Sheets(2) Spalte A ein Teil der Zellinhalte kopiert werden.
Die Excelformel für den Teil der Daten lautet:
= Links(A1;Suchen(")";A1)-2), wobei A1 für die variable Zelle der For Next Schleife stehen muss.
Puh, ich hoffe, ich konnte mich einigermaßen verständlich ausdrücken.
Vielen lieben Dank für Eure Unterstützung.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
For next!! Schleife
28.06.2018 11:08:40
Matthias
Hallo
Es fehlt das Next in Deinem Code.
Den Rest der Aufgabe hab ich nicht verstanden
Tabelle1

 AB
1x#WERT!
2x()x
312(xyz)12(xy
4(1324d(hzu))(1324d(hz

Formeln der Tabelle
ZelleFormel
B1= LINKS(A1;SUCHEN(")";A1)-2)
B2= LINKS(A2;SUCHEN(")";A2)-2)
B3= LINKS(A3;SUCHEN(")";A3)-2)
B4= LINKS(A4;SUCHEN(")";A4)-2)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Matthias
Anzeige
AW: For next!! Schleife
28.06.2018 11:25:09
Thorsten
Hallo Matthias,
vielen lieben Dank :-)
Ich versuche, es nochmals anders zu formulieren.
Die Formeln der Tabelle (SpalteB) müsste auf Sheets(1) kopiert werden, die Orignaldaten (SpalteA) befindet sich auf Sheets(2)
das müsste in etwa so aussehen:
Sheets(2).Activate
For lgcount = lgletzte to 1 Step-1
Sheets(1).(Cells(lgcount,1)).FormulaR1C1lokal = "Links(Z"+lgcount"S;Suchen(")";Z"+lgcount"S-2)
next
Anzeige
=xlPasteFormulas
28.06.2018 11:46:10
Matthias
Hallo
Die Formeln der Tabelle (SpalteB) müsste auf Sheets(1) kopiert werden
Formeln würde ich so kopieren.
Sheets(2).Range("B1").Copy Sheets(1).Range("A1").PasteSpecial Paste:=xlPasteFormulas Wobei Du Dir die Zeile (also die 1) bei B1 und A1 aus der Variable holen kannst.
Für 5 Zeilen also so:
Dim x&
For x = 1 To 5
Sheets(2).Range("B" & x).Copy
Sheets(1).Range("A" & x).PasteSpecial Paste:=xlPasteFormulas
Next
Gruß Matthias
Anzeige
AW: =xlPasteFormulas
28.06.2018 12:17:39
Thorsten
Super vielen lieben Dank Matthias :-)))))
AW: For next!! Schleife
28.06.2018 12:09:29
Thorsten
Durch rumprobieren bin ich wieder einen Schritt weiter :-)
Dim lgCounti As Long
Dim lgLetztei As Long
lgLetztei = Range("A65536").End(xlUp).Row
lgLetztei = Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row
For lgCounti = lgLetztei To 1 Step -1
Sheets(2).Activate
Sheets(1).Cells(lgCounti, 4).FormulaR1C1 = "=LEFT(RC[-3],SEARCH("")"",RC[-3])-2)"
Next
Hiermit wird die Formel schon mal richtig eingesetzt.
Wie schaffe ich es, dass sich die Formel "=LEFT(RC[-3],SEARCH("")"",RC[-3])-2)" auf die Spalte A von Sheets(2) bezieht, aber die gefundenen werte in Sheets(1) dann stehen?
Vielen Dank
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

For Next Schleife mit Excel Formeln effizient nutzen


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Stelle sicher, dass Du zwei Excel-Sheets hast: Sheets(1) und Sheets(2). In Sheets(2) sollten die Daten in Spalte A stehen.

  2. Anzahl der benutzten Zeilen ermitteln:

    Dim lgCount As Long
    Dim lgLetzte As Long
    lgLetzte = Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row
  3. Leere Zeilen löschen:

    For lgCount = lgLetzte To 1 Step -1
       If IsEmpty(Sheets(2).Cells(lgCount, 1)) Then
           Sheets(2).Cells(lgCount, 1).Delete Shift:=xlUp
       End If
    Next lgCount
  4. Daten kopieren: Verwende die For Next Schleife, um Inhalte aus Sheets(2) in Sheets(1) zu kopieren.

    For lgCount = 1 To lgLetzte
       Sheets(1).Cells(lgCount, 1).Formula = "=LEFT(Sheets(2).Cells(" & lgCount & ", 1), SEARCH("" "", Sheets(2).Cells(" & lgCount & ", 1))-2)"
    Next lgCount

Häufige Fehler und Lösungen

  • Fehlendes Next: Ein häufiger Fehler ist das Vergessen des Next in Deiner Schleife. Stelle sicher, dass jede For-Schleife mit einem Next endet.

  • Falsche Zellreferenzen: Achte darauf, dass Du die richtigen Zellreferenzen verwendest, insbesondere wenn Du mit Formeln in Excel arbeitest. Verwende FormulaR1C1, wenn Du relative Referenzen benötigst.


Alternative Methoden

Du kannst auch die Excel-Funktion COPY und PASTE verwenden, um Formeln effizient zu übertragen. Hier ein Beispiel, wie Du dies umsetzen kannst:

Sheets(2).Range("B1:B" & lgLetzte).Copy
Sheets(1).Range("A1").PasteSpecial Paste:=xlPasteFormulas

Praktische Beispiele

Hier ist ein Beispiel, wie Du eine Schleife implementieren kannst, um eine Formel in Sheets(1) zu setzen, die auf Sheets(2) verweist:

Dim lgCount As Long
Dim lgLetzte As Long
lgLetzte = Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row

For lgCount = 1 To lgLetzte
    Sheets(1).Cells(lgCount, 2).Formula = "=LEFT(Sheets(2).Cells(" & lgCount & ", 1), SEARCH("" "", Sheets(2).Cells(" & lgCount & ", 1))-2)"
Next lgCount

Dieses Beispiel zeigt, wie Du eine excel schleife formel nutzen kannst, um Daten dynamisch zu verarbeiten.


Tipps für Profis

  • Verwende Application.ScreenUpdating = False: Dies beschleunigt den Vorgang, indem es das Aktualisieren der Benutzeroberfläche während der Schleife verhindert.

  • Debugging: Nutze Debug.Print in Deiner Schleife, um die Werte zu überprüfen und sicherzustellen, dass alles wie erwartet funktioniert.

  • Vermeide zu viele Schleifen: Wenn möglich, versuche, Deine Logik so zu gestalten, dass Du weniger Schleifen benötigst, um die Effizienz zu steigern.


FAQ: Häufige Fragen

1. Wie kann ich die Schleife in Excel schneller machen?
Stelle sicher, dass Du Application.ScreenUpdating auf False setzt, um die Performance zu verbessern.

2. Was mache ich, wenn ich eine Fehlermeldung erhalte?
Überprüfe Deine Schleifen und sicherstellen, dass Du alle Variablen korrekt deklariert hast und die Zellreferenzen stimmen.

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