Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Vorschau in Userform

Vorschau in Userform
Hansi
Hallo Experten,
ich habe eine Userform, mit deren Hilfe man Textbausteien zusammenbasteln kann.
Ist es möglich, den momentanen "Stand" als Seitenansicht in einem Textfeld (o.ä.) anzeigen zu lassen?
Immer wenn der User einen Textbaustein auswählt, wird das Tabellenblatt "Brief" angepasst.
Danke!
LG Hansi
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Vorschau in Userform
08.12.2009 15:27:04
Anton
Hallo Hansi,
so vllt:
Code:

Private Sub CommandButton1_Click()  
  Me.Hide
  Worksheets("Brief").PrintPreview
  Me.Show
End Sub  


mfg Anton
Anzeige
AW: Vorschau in Userform
08.12.2009 15:59:52
Hansi
Hallo Anton,
ich wollte dass sowohl die Userform als auch der Inhalt des Blattes zu sehen sind.
Ich habe auch schon herumexperimentiert, beides "nebeneinander" anzuzeigen. Aber leider ohne zählbaren Erfolg :-(
Hansi
mit WebBrowser Steuerelement
08.12.2009 19:12:51
Anton
Hallo Hansi,
kannst Du sowas ausprobieren:
Code:

Private Sub CommandButton1_Click()  
  Dim brief As Worksheet, msg As String  
  Dim iZeile As Long, iSpalte As Long, zelleninhalt As String    
  Dim abSpalte As Long, Spalten As Long, abZeile As Long, Zeilen As Long  
  Set brief = Worksheets("Brief")
  With brief.UsedRange  
    abSpalte = .Columns.Column
    Spalten = .Columns.Count
    abZeile = .Rows.Row
    Zeilen = .Rows.Count
  End With  
  msg = "<table border=1 width=100%>"
  For iZeile = abZeile To Zeilen + abZeile - 1  
    For iSpalte = abSpalte To Spalten + abSpalte - 1  
      zelleninhalt = brief.Cells(iZeile, iSpalte).Text
      If zelleninhalt = "" Then zelleninhalt = " "  
      msg = msg & "<td align=right>" & zelleninhalt & "</td>" '& vbCr
    Next
    msg = msg & "</tr>"
  Next
  msg = msg & "</table>"
  With Me.WebBrowser1
    .Navigate "about:blank"
    Application.Wait (Now + TimeValue("0:00:01"))
    .Document.body.innerhtml = msg
  End With  
End Sub  


mfg Anton
Anzeige
Danke!
08.12.2009 20:26:14
Specke
Hallo Anton,
sieht gut aus!
Danke!
Hansi
;
Anzeige
Anzeige

Infobox / Tutorial

Vorschau in Userform erstellen


Schritt-für-Schritt-Anleitung

Um eine Excel-Vorschau in einer Userform anzuzeigen, kannst du das folgende VBA-Skript verwenden. Diese Methode ermöglicht es dir, den Inhalt eines Arbeitsblatts in der Userform darzustellen, während der Benutzer die Textbausteine auswählt.

  1. Öffne deine Excel-Datei und gehe in den VBA-Editor (drücke ALT + F11).
  2. Füge eine neue Userform hinzu, indem du im Projektfenster mit der rechten Maustaste auf "VBAProject" klickst und "Userform einfügen" wählst.
  3. Füge einen WebBrowser-Steuerelement zur Userform hinzu. Du findest es unter den Steuerelementen (rechte Maustaste auf die Tool-Leiste -> "Zusätzliche Steuerelemente...").
  4. Füge einen CommandButton hinzu, um die Vorschau zu aktualisieren.
  5. Kopiere und füge den folgenden Code in das Code-Fenster der Userform ein:
Private Sub CommandButton1_Click()
    Dim brief As Worksheet, msg As String
    Dim iZeile As Long, iSpalte As Long, zelleninhalt As String
    Dim abSpalte As Long, Spalten As Long, abZeile As Long, Zeilen As Long

    Set brief = Worksheets("Brief")
    With brief.UsedRange
        abSpalte = .Columns.Column
        Spalten = .Columns.Count
        abZeile = .Rows.Row
        Zeilen = .Rows.Count
    End With

    msg = "<table border=1 width=100%>"
    For iZeile = abZeile To Zeilen + abZeile - 1
        msg = msg & "<tr>"
        For iSpalte = abSpalte To Spalten + abSpalte - 1
            zelleninhalt = brief.Cells(iZeile, iSpalte).Text
            If zelleninhalt = "" Then zelleninhalt = "&nbsp;"
            msg = msg & "<td align=right>" & zelleninhalt & "</td>"
        Next
        msg = msg & "</tr>"
    Next
    msg = msg & "</table>"

    With Me.WebBrowser1
        .Navigate "about:blank"
        Application.Wait (Now + TimeValue("0:00:01"))
        .Document.body.innerHTML = msg
    End With
End Sub
  1. Schließe den VBA-Editor und teste die Userform, indem du sie öffnest und den Button klickst.

Häufige Fehler und Lösungen

  • Fehler: Userform wird nicht angezeigt.
    Stelle sicher, dass du die Userform korrekt initialisiert hast. Verwende UserForm1.Show im richtigen Modul.

  • Fehler: WebBrowser zeigt keinen Inhalt an.
    Überprüfe, ob das WebBrowser-Steuerelement korrekt hinzugefügt wurde. Möglicherweise benötigst du die richtige Bibliothek (Microsoft Internet Controls).

  • Fehler: Tabelle wird nicht korrekt formatiert.
    Achte darauf, dass das HTML korrekt generiert wird. Überprüfe die Variablen für Zeilen- und Spaltenanzahl.


Alternative Methoden

Eine andere Möglichkeit, eine Excel-Seitenvorschau anzuzeigen, ist die Verwendung der PrintPreview-Methode. Dies ist jedoch nicht so interaktiv wie die WebBrowser-Methode. Du kannst den Code wie folgt anpassen:

Private Sub CommandButton1_Click()
    Me.Hide
    Worksheets("Brief").PrintPreview
    Me.Show
End Sub

Diese Methode zeigt eine Druckvorschau des Arbeitsblatts an, jedoch ohne die Möglichkeit, den Inhalt in der Userform anzuzeigen.


Praktische Beispiele

Wenn du die Userform mit Textbausteinen füllst, kannst du den Code so anpassen, dass er zusätzliche Informationen anzeigt oder verschiedene Textbausteine dynamisch lädt.

Beispiel:

  • Erstelle eine ComboBox mit verschiedenen Textbausteinen und lade den entsprechenden Inhalt in die WebBrowser-Anzeige, wenn der Benutzer einen Baustein auswählt.

Tipps für Profis

  • Nutze CSS für eine verbesserte Darstellung im WebBrowser-Steuerelement. Dies gibt dir mehr Kontrolle über das Layout und die Formatierung der Tabelle.
  • Experimentiere mit verschiedenen HTML-Elementen, um die Benutzererfahrung zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich die Userform automatisch öffnen?
Du kannst die Userform im Workbook_Open-Ereignis anzeigen lassen:

Private Sub Workbook_Open()
    UserForm1.Show
End Sub

2. Ist es möglich, die Excel-Vorschau in ein anderes Steuerelement zu laden?
Ja, du kannst auch andere Steuerelemente verwenden, um den Inhalt darzustellen, aber das WebBrowser-Steuerelement bietet die größte Flexibilität für die Anzeige von HTML-Inhalten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige