Tabellenzeilen mittels Makro einkürzen

Moderator: ModerationP

Tabellenzeilen mittels Makro einkürzen

Beitragvon Basti W » 25. Nov 2020, 16:46

Hi,
ich habe ein Problem und leider nicht den Hauch einer Ahnung wie ich vorgehen soll.
Voraussetzung: Ich habe ein Word-Dokument das durch ein externes Programm eine Tabelle mit 5 Spalten und X Zeilen auswirft. Das läuft auch alles ganz toll, aber der Wunsch der GF ist das die Inhalte der 3.Spalte auf 5 Zeilen innerhalb der Zelle gekürzt wird. Jede Tabellenzeile soll also maximal 5 Schriftzeilen hoch sein.
Nun hab ich verschiedene Ideen wie ich das angehen könnte:
1. Via Makro alles Markieren und die Zeilenhöhe auf xy Einstellen, so dass einfach alles abgeschnitten wird.
2. Via Makro jeweils in die 3.Spalte springen und alles nach Zeile 5 löschen
3. ....

Leider habe ich von Makros in Word so gar keine Ahnung und weiß nicht wie ich das machen soll. Aufzeichnen geht nicht :(
Ich hab mal eine Beispieldatei angehängt.

Bin für jeden Vorschlag dankbar, der mir Hilft. :)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Ich nutze Office 2019
und Danke allen die aktiv versuchen mir zu helfen!
Benutzeravatar
Basti W
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 18
Registriert: 13. Jul 2020, 11:00

Re: Tabellenzeilen mittels Makro einkürzen

Beitragvon theoS » 25. Nov 2020, 22:16

Probiers mal damit:
Code: Alles auswählen
Sub zeil5er()
Dim dd1 As Document: Set dd1 = ActiveDocument
Dim t1 As Table, ppR As Range
If dd1.Tables.Count > 0 Then
 For i = 1 To dd1.Tables.Count
 Set t1 = dd1.Tables(i)
  For r = 1 To t1.Rows.Count
   For p = t1.Cell(r, 4).Range.Paragraphs.Count To 6 Step -1
    Set ppR = t1.Cell(r, 4).Range.Paragraphs(p).Range
    Set ppR = dd1.Range(ppR.Start - 1, ppR.End - 1)
    ppR.Delete
   Next p
  Next r
 Next i
End If
End Sub
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5363
Registriert: 19. Apr 2008, 00:14

Re: Tabellenzeilen mittels Makro einkürzen

Beitragvon Basti W » 26. Nov 2020, 08:12

Hallo Theo,
vielen Dank für deine Antwort.

Leider kommt da dann diese Fehlermeldung:

Fehler beim Kompilieren:
Variable nicht definiert


Markiert ist dann das i von "For i = [...]"
Ich nutze Office 2019
und Danke allen die aktiv versuchen mir zu helfen!
Benutzeravatar
Basti W
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 18
Registriert: 13. Jul 2020, 11:00

Re: Tabellenzeilen mittels Makro einkürzen

Beitragvon Fen » 26. Nov 2020, 10:08

Hallo,

m.M.n. ist der Code von theoS korrekt, nur die "Option Explicit" sollte nicht gesetzt sein.

Der gezeigte Code ist interessant und meine Word-VBA-Kenntnisse reichen nicht unbedingt. Deshalb hier mein Versuch das nachzuvollziehen:

Code: Alles auswählen
Sub T_1()
Dim rng As Range, r As Range
With ActiveDocument.Tables(1)
    For i = 1 To .Rows.Count
        Set rng = .Cell(i, 4).Range
        For p = rng.Paragraphs.Count To 6 Step -1
            Set r = rng.Paragraphs(p).Range
            Set r = Range(r.Start - 1, r.End - 1)
            r.Delete
        Next p
    Next i
End With
End Sub


Wie man in Word die Ranges setzen muss, finde ich intuitv nicht so einfach.

mfg
Fen
 

Re: Tabellenzeilen mittels Makro einkürzen

Beitragvon Basti W » 26. Nov 2020, 10:15

Hi,
vielen Dank!

Ohne das "Option Explicit" geht der Code von Theo wunderbar.
Super! Abermals vielen Dank für die Hilfe!
Ich nutze Office 2019
und Danke allen die aktiv versuchen mir zu helfen!
Benutzeravatar
Basti W
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 18
Registriert: 13. Jul 2020, 11:00


Zurück zu Word Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste