Thema Datum  Von Nutzer Rating
Antwort
13.10.2024 12:59:27 wertxcvb12
NotSolved
13.10.2024 13:11:12 wertxcvb12
NotSolved
13.10.2024 17:52:46 xlKing
NotSolved
13.10.2024 18:02:17 xlKing
NotSolved
13.10.2024 19:01:41 wertxcvb12
NotSolved
Blau Word VBA: Überschriften Ebene 1 zufällig sortiert
15.10.2024 19:10:09 xlKing
NotSolved

Ansicht des Beitrags:
Von:
xlKing
Datum:
15.10.2024 19:10:09
Views:
52
Rating: Antwort:
  Ja
Thema:
Word VBA: Überschriften Ebene 1 zufällig sortiert

Hallo,

Probiers mal mit diesem Code. Der sollte das gewünschte machen. Er speichert die Positionen der Absätze mit einem zufälligen Indexin ein Array und liest dann das Array von oben nach unten aus. Dann kopiert er den an der ausgelesenen Position gefundenen Absatz und fügt ihn hinten in ein neues Dokument ein.

Sub Copy_And_PastRandomly()

Dim p As Paragraph, capCount As Long, arrpos As Long, ft As Long, i As Long 'ft=Anzahl Paragraphst im Folgetext bis zur nächsten Überschrift.
Dim arr(), Quelle As Document, Ziel As Document

'On Error GoTo Fehler

For Each p In ActiveDocument.Paragraphs
  If p.Style = "Überschrift 1" Then
    capCount = capCount + 1
  End If
Next p

ReDim arr(1 To capCount, 1 To 2)

For Each p In ActiveDocument.Paragraphs
  i = i + 1
  If p.Style = "Überschrift 1" Then
    Do
      arrpos = Int(Rnd * capCount) + 1
    Loop Until arr(arrpos, 1) = 0
    arr(arrpos, 1) = i
    arr(arrpos, 2) = 0
  Else
    arr(arrpos, 2) = arr(arrpos, 2) + 1
  End If
Next p

Set Quelle = ThisDocument
Set Ziel = Documents.Add(Template:="Normal", NewTemplate:=False, DocumentType:=0)

Application.ScreenUpdating = False
For i = 1 To capCount
  Quelle.Range(Quelle.Paragraphs(arr(i, 1)).Range.Start, Quelle.Paragraphs(arr(i, 2) + arr(i, 1)).Range.End).Copy
  Ziel.Range(Ziel.Range.End - 1, Ziel.Range.End - 1).PasteAndFormat wdPasteDefault
Next i
 
Application.ScreenUpdating = True
Debug.Print x
MsgBox "Fertig!"
Exit Sub

Fehler:
If Err = 4605 Then
  x = x + 1
  Err.Clear
  Resume
Else
  MsgBox "Fehler: " & Err & vbNewLine & Err.Description
End If

End Sub

Allerdings erhalte ich hier bei Paste einen Laufzeitfehler den ich nicht so richtig greifen kann. "Fehler 4605 Dieser Befehl ist nicht verfügbar." Solltest du den auch erhalten entferne das Apostroph vor On Error goto Fehler führe nochmal aus und warte ein bisschen. Irgendwann macht er dann trotz Fehler das was er soll. Kann aber eine Minute dauern.

Gruß Mr. K.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
13.10.2024 12:59:27 wertxcvb12
NotSolved
13.10.2024 13:11:12 wertxcvb12
NotSolved
13.10.2024 17:52:46 xlKing
NotSolved
13.10.2024 18:02:17 xlKing
NotSolved
13.10.2024 19:01:41 wertxcvb12
NotSolved
Blau Word VBA: Überschriften Ebene 1 zufällig sortiert
15.10.2024 19:10:09 xlKing
NotSolved