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

Schleife bleibt hängen?

Schleife bleibt hängen?
30.03.2021 11:20:39
Eisi
Hallo zusammen,
nachfolgender Code zählt nicht weiter, warum?
Vielen Dank.
VG Eisi :-)
Sub WortEinsFinden()
Application.DisplayAlerts = False
Application.EnableEvents = False
Dim Zeile  As Long
Dim ZeileMax As Long
With tbl_DatenstammKomplett
ZeileMax = .UsedRange.Rows.Count
For Zeile = 2 To ZeileMax
.Range("D2").FormulaR1C1 = "=WortFinden(RC[-1],1)"
Next Zeile  ' Hier bleibt der Code hängen. Warum?
End With
endmacro:
Application.DisplayAlerts = True
Application.EnableEvents = True
End Sub
Function WortFinden(Source As String, Position As Integer)
Dim arr()  As String
Dim xCount As Integer
arr = VBA.Split(Source, " ")
xCount = UBound(arr)
If xCount  xCount Or Position 


4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife bleibt hängen?
30.03.2021 11:29:19
Klaus
Wozu die Schleife?
    With tbl_DatenstammKomplett
zeilemax = .UsedRange.Rows.Count
.Range("D2:D" & zeilemax).FormulaR1C1 = "=WortFinden(RC[-1],1)"
End With
LG,
Klaus M.

AW: Schleife bleibt hängen?
30.03.2021 11:48:42
Eisi
Hallo Klaus,
danke für Deine HIlfe :-)
Ich dachte immer, damit Zeile für Zeile etwas gemacht wird, muss ich die Schleife nehmen. Ich sehe schon, mein Weg ist noch weit :-)
Ursprünglich wollte ich eigentlich die nächste Spalte mit dem zweiten Wort mir mit der Formel holen.
Aber da ich doch leicht die Übersicht verliere, werden ich 2 Codes machen und mit Call diese dann aufrufen.
Vielen herzlichen Dank.
VG Eisi :-)

Anzeige
AW: Schleife bleibt hängen?
30.03.2021 12:04:07
Daniel
Hi
grundsätzlich war dein Fehler, dass du trotz Schleife die Formel immer in die selbe Zelle geschrieben hast.
hier musst du natürlich auch die Zielzelle an den Schleifenzähler koppeln
For Zeile = 2 To ZeileMax
.Range("D" & Zeile).FormulaR1C1 = "=WortFinden(RC[-1],1)"
Next
sollte so funktionieren, ist aber in der Ausführung eher langsam.
Auch in Excel müssen wir ja nicht jede Zeile einzeln mit Formeln füllen, wenn immer die gleiche Formel verwendet wird, sondern wir schreiben sie in die erste Zelle und übertragen sie mit Ausfüllen oder Copy-Paste in die restlichen Zellen, bzw es gibt noch einen dritten Weg:
man markiert alle Zellen die die Formel erhalten sollten, schreibt die Formel in die erste Zelle der Markierung und schließt die Eingabe mit STRG+ENTER ab.
Dann wird die Formel in alle markierten Zellen übernommen.
Das ist in der Regel der einfachste und schnellste Weg, einen größeren Zellbereich mit einer einheitlichen Formel zu füllen, und diesen Weg kann man auch in VBA gehen.
Generell kann man fast alles, was man in Excel von Hand machen kann, auch in VBA genau so nachprogrammieren.
Klaus hat mit seinem Makro diesen dritten Weg in VBA umgesetzt.
Gruß Daniel

Anzeige
AW: Schleife bleibt hängen?
30.03.2021 12:59:04
Eisi
Hallo Daniel,
vielen Dank für die Erklärung, jetzt habe ich es verstanden. Habe die Formeln ja schon so in den Zellen mit dem kleinen Kreuz und Doppelklick bis zur letzten Zeile durchkopiert.
Ich brauche das ganze als VBA, weil ich nicht weiß, wieviel Zeilen ich beim nächsten Update der Daten habe. Ich stelle mir also verschiedene Subs zusammen, die ich für die ganzen Arbeitsschritte brauche. Mit Call rufe ich über einen Button alles auf und habe so den geringsten Wartungsaufwand für das neue Daten-Update.
Vielen Dank für die Unterstützung.
VG Eisi :-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige