Thema Datum  Von Nutzer Rating
Antwort
05.01.2016 11:46:41 Matthias Kirchhoff
NotSolved
06.01.2016 11:20:56 Gast6735
NotSolved
06.01.2016 21:50:53 Gast64143
NotSolved
07.01.2016 22:49:51 Gast28465
NotSolved
08.01.2016 08:32:55 Raffi95
NotSolved
Blau Word VBA/UserForm für Bedienungsanleitung
08.01.2016 20:29:04 Gast49284
Solved
11.01.2016 18:59:33 Matthias
NotSolved
11.01.2016 22:34:24 Gast32054
NotSolved

Ansicht des Beitrags:
Von:
Gast49284
Datum:
08.01.2016 20:29:04
Views:
1468
Rating: Antwort:
 Nein
Thema:
Word VBA/UserForm für Bedienungsanleitung

Hallo Matthias!

Also hier mal eine Version. Ich lese dabei aber alle Kapitel aus. Also 1. Kapitel, 1.1 Kapitel usw. Falls du nur die ersten (Hauptkapitel) und nicht die Unterkapitel brauchst, müsste man nochmal was ändern. Um das Ganze anwendefreundlich zu gestalten. Einfach ein neues Dokument erstellen. Dort einen BUtton erstellen und den Code zuweisen.

Private Sub CommandButton1_Click()
UserForm1.Show
End Sub

Dann eine Userform einfügen und den folgen Code bei der Userform einfügen.


Option Explicit
Dim kapitel()
Private WithEvents beenden As MSForms.CommandButton
Private WithEvents löschen As MSForms.CommandButton
Dim doc

Private Sub UserForm_Initialize()
Dim dlg As Dialog

Dim kap
Dim i As Long
Dim name As String
Dim neubox
Dim neubutton

name = ActiveDocument.name
Set dlg = Dialogs(wdDialogFileOpen)
With dlg
If .Display = 0 Then
    MsgBox "Die Auswahl wurde abgebrochen, das Programm wird beendet!", , "Abbruch Dateiauswahl"
    End
Else
    Set doc = Documents.Open(FileName:=dlg.name)
End If
End With

ReDim kapitel(3, 0)
kapitel(0, 0) = 0

For Each kap In doc.Paragraphs
    If kap.OutlineLevel < 10 And kap.Range.Text <> Chr(13) Then
       
            kapitel(0, 0) = kapitel(0, 0) + 1
            ReDim Preserve kapitel(3, kapitel(0, 0))
            kapitel(0, kapitel(0, 0)) = Replace(kap.Range.Text, Chr(12), "")
            kapitel(1, kapitel(0, 0)) = kap.Range.Start
        
    End If
Next kap

Me.Caption = "Auswahl der Kapitel"
Me.Height = kapitel(0, 0) * 25 + 100
Me.Width = 500
Me.ScrollBars = fmScrollBarsVertical
Me.ScrollHeight = kapitel(0, 0) * 25 + 300



Set neubox = Me.Controls.Add("forms.Label.1")
neubox.Height = 40
neubox.Width = 400
neubox.Top = 10
neubox.Left = 20
neubox.Caption = "Bitte wählen Sie die Dateien aus, die erhalten bleiben sollen!"
Set neubox = Nothing

For i = 1 To kapitel(0, 0)
    Set neubox = Me.Controls.Add("forms.CheckBox.1")
    neubox.Height = 40
    neubox.Top = i * 25
    neubox.Left = 20
    neubox.Caption = kapitel(0, i)
    neubox.Font.Size = 8
    Set neubox = Nothing
Next i

For i = 1 To 2
Set neubutton = Controls.Add("Forms.CommandButton.1", , True)
    With neubutton
  
      Select Case i
        Case 1
            .Caption = "löschen"
            .Left = 75
            .Top = kapitel(0, 0) * 25 + 40
            .Width = 100
            .Height = 20
          Set löschen = neubutton
        Case 2
            .Caption = "beenden"
            .Left = 325
            .Top = kapitel(0, 0) * 25 + 40
            .Width = 100
            .Height = 20
        Set beenden = neubutton
        
      End Select
    End With
Next i

End Sub

Private Sub löschen_click()
Dim i As Long
Dim stelle As Range

For i = 1 To kapitel(0, 0)
 If Me.Controls("CheckBox" & i).Value = True Then kapitel(3, i) = "x"
  
Next i

For i = kapitel(0, 0) To 1 Step -1
 If kapitel(3, i) = "x" Then
    If i = kapitel(0, 0) Then
        doc.Range(kapitel(1, i), kapitel(1, i)).Select
    Else
        doc.Range(kapitel(1, i), kapitel(1, i + 1)).Select
    End If
    Set stelle = Selection.Bookmarks("\HeadingLevel").Range
    While Left(stelle.Text, 1) = Chr(12)
        stelle.SetRange stelle.Start + 1, stelle.End
    Wend
    While Right(stelle.Text, 1) = Chr(12)
        stelle.SetRange stelle.Start, stelle.End - 1
    Wend
    stelle.Select
  
    Selection.Delete
  
 End If
Next i

Unload UserForm1

End Sub

Private Sub beenden_click()
Unload UserForm1
End Sub

Der Anwender kann sich dann seine Datei aussuchen, die geöffnet wird. Die Kapitel werden angezeigt. Falls es zu viele sind, muss man scrollen. Die mit dem Haken werden gelöscht. Danach bleibt die Datei noch offen und man kann schauen und ggf. speichern. Da wir noch am Testen sind :-) wollte ich nicht einfach was speichern. Nicht, dass die Quelldatei dann futsch und die Daten (wichtige) weg sind. Kann man am Ende noch einfügen.

Man könnte es auch mit einer Listbox machen, dann wird es ggf. nicht zu lang. Ich bin übrigens davon ausgegangen, dass die Kapitel autm. eingefügt werden. Sollte es keine Kapitel in dem Sinne geben (also nur Überschriften unformatiert) müssen wir das anders machen. Dann würde ich die Seite des Inhaltsverzeichnisses auslesen lassen. Aber schauen wir mal wie es funktioniert.

Viele Grüße

 


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
05.01.2016 11:46:41 Matthias Kirchhoff
NotSolved
06.01.2016 11:20:56 Gast6735
NotSolved
06.01.2016 21:50:53 Gast64143
NotSolved
07.01.2016 22:49:51 Gast28465
NotSolved
08.01.2016 08:32:55 Raffi95
NotSolved
Blau Word VBA/UserForm für Bedienungsanleitung
08.01.2016 20:29:04 Gast49284
Solved
11.01.2016 18:59:33 Matthias
NotSolved
11.01.2016 22:34:24 Gast32054
NotSolved