Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
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 beenden wenn sich Index dynamisch erhöht

Schleife beenden wenn sich Index dynamisch erhöht
04.03.2024 17:01:16
HeikoH
Hallo zusammen,

ich hab ein kleines Excel-Word Problem:

Ich kopiere eine relativ lange Tabelle aus Excel in Word.
Dort will ich in VBA die Tabelle in einzelne Blöcke trennen, immer wenn in der Tabelle eine Leerzeile kommt.

ich gehe also Zeile für Zeile durch die Tabelle, suche nach einer leeren zeile und trenne die Tabelle hier.
Wenn ich die eine Ausgangstabelle trenne, habe ich 2 Tabellen, dann 3, usw.

Jetzt ist die 2. Tabelle, die die weiter bearbeitet werden muss. Zeilen durchsuchen und bei Leerzeile trennen. Usw.

Tabelle(1) wird also zu Tabelle(2), ... Der Index steht aber am Anfang noch nicht fest.

Das Problem ist die Schleife:
Eine For Next Schleife geht nicht, weil sich die Anzahl der Tabellen ständig um eins erhöht, solange bis am Ende der letzten Tabelle am Ende des Dokumentes keine Leerzeile mehr vorhanden ist.

Do loop geht auch nicht, weil ich nicht weiß, wie ich das Ausstiegskriterium formulieren soll.

Hat jemand ne Idee?

Danke im Voraus,
Heiko

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife beenden wenn sich Index dynamisch erhöht
04.03.2024 17:06:32
Oberschlumpf
Hi Heiko,

ich würds mit For/Next von unten (letzte Zeile) nach oben (erste Zeile) machen.

Immer wenn Leerzeile gefunden, dann den Zeilenblock ohne Leerzeile kopieren + erstmal in neuem Tabellenblatt an richtiger Stelle einfügen (oder anstelle des Hilfsblattes gleich direkt in Word an richtiger Stelle einfügen)

Und nun weiter aufwärts zu den noch nicht verarbeiteten Zeilen - all das so lange, bis 1. Zeile erreicht.

hilfts?

Ciao
Thorsten
AW: Schleife beenden wenn sich Index dynamisch erhöht
04.03.2024 17:21:40
HeikoH
Hi Thorsten,
danke für die schnelle Antwort.

Ich würd's schon gerne in WORD machen, weil ich die Tabelle am Stück zuerst formatiere. Das ist viel weniger Aufwand als 50 Einzelne, die dann auch noch einzeln nach Word kopiert werden müssten. Das gehts zwar aus Excel heraus ganz gut, dauert aber eine gewisse Zeit...

Von unten nach oben hab ich schon versucht, allerdings bleibt dann der Index gleich. Wenn ich Tabelle 1 in 2 Tabellen trenne und von hinten komme, muss ich wieder Tabelle 1 bearbeiten. Das ginge zwar, wenn ich jedesmal die Sub neu ausführe, was aber doof wäre...

Ich hab auch schon versucht, von vorne nach hinten und nach dem Trennen die Tabellen zählen und dann mit Goto vor die Schleife springen, damit der Index neu eingelesen wird. Das ist aber mehr als unelegant... Außerdem merkt das Ding dann nicht, wann keine Trennung mehr möglich ist. Endlosschleife. Und falls ich sage, bei i = 50 aufhören kriege ich ne Fehlermeldung sobald keine Leerzeile gefunden wird...

Aber was ich tatsächlich noch nicht probiert habe, ist alle Zeilen von hinten nach vorne...

Weiter tüfteln :-)

Danke und Grüße,
Heiko

Anzeige
AW: Schleife beenden wenn sich Index dynamisch erhöht
04.03.2024 17:28:03
Oberschlumpf
Hi Heiko

was dir vllt auch helfen könnte, ist, wenn du uns per Upload sowohl von der Excel- als auch von der Word-Datei jeweils eine Bsp-Datei mit genügend Bsp-Daten (auch in Word, um zu erkennen, wie es aussehen..soll) zeigst.

Natürlich sollte auch dein bisheriger Code enthalten sein, weil...no code = no test = no party...

Ciao
Thorsten
AW: Schleife beenden wenn sich Index dynamisch erhöht
04.03.2024 18:20:54
JoWE
Hallo Heiko,

versuch mal dieses Word-VBA-Makro:
Option Explicit


Sub splitTabelle()
Dim t As Long
With ActiveDocument.Tables(1)
For t = .Rows.Count To 1 Step -1
If Asc(Left(.Cell(t, 1).Range.Text, 1)) = 13 Then
.Split (t + 1)
End If
Next
End With
End Sub


Gruß
Jochen
Anzeige
AW: Schleife beenden wenn sich Index dynamisch erhöht
06.03.2024 10:34:25
JoWE
Hallo,

hast Du meine Idee mal getestet?
Ich hatte schon eine Antwort erwartet, das sollte doch eigentlich Standard sein.

Gruß
Jochen
AW: Schleife beenden wenn sich Index dynamisch erhöht
04.03.2024 18:08:51
JoWE
Hallo Heiko,

versuch mal dieses Word-VBA-Makro:
Option Explicit


Sub splitTabelle()
Dim t As Long
With ActiveDocument.Tables(1)
For t = .Rows.Count To 1 Step -1
If Asc(Left(.Cell(t, 1).Range.Text, 1)) = 13 Then
.Split (t + 1)
End If
Next
End With
End Sub

Gruß
Jochen

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige