[VBA] - Multipage Userform eingaben in Excel übertragen?

Servus Leute,

Ich habe ein Userform in Excel mit Multipage erstellt.

Nun möchte ich auf der letzten Multipage Seite einen Button einbauen. Auf Knopfdruck sollen dann alle Eingaben die vom User auf den einzelnen Multipageseiten gemacht worden sind in ein Excel Tabellenblatt übertragen werden.

Mein Ansatz war dem Button folgenden Code zu geben:

    Dim sheet2 As Worksheet
    Dim maxRow2 As Long
    Dim check3 As Boolean
    Set sheet2 = ActiveWorkbook.Worksheets(1)
    maxRow2 = sheet2.Cells(sheet2.Rows.Count, "B").End(xlUp).Row
    If CheckBox1.Value Then
      sheet2.Cells(maxRow2 + 1, 9).Value = "ja"
      Else
        sheet2.Cells(maxRow2 + 1, 9).Value = "nein"
        End If
              sheet2.Cells(maxRow2 + 1, 13).Value = TextBox4.Value

Das funktioniert leider nicht wie ich es mir erhofft habe, auf Knopfdruck werden keine Daten übertragen. Ich habe die vermutung, dass nicht auf die Felder wie z.B. TextBox4 zugegriffen werden kann, weil die auf einer anderen Seite im Multipage sind.

Wie schaffe ich es an die Variablen ranzukommen. Ich hatte noch überlegt, im Code der jeweiligen Seite den Wert aus der Textbox in eine Variable zu setzen, die z.B. Global ist. Aber da bin ich auch schon wieder überfragt wie man das macht.

Außerdem habe ich noch eine Frage zu den Checkboxen.

Es soll folgende Möglichkeiten geben:

  1. Wenn Checkbox nicht angeklickt, dann kann man immer zu nächsten Kategorie ( Nächste Seite im Multipage)
  2. Wenn Checkbox angeklickt ist und variable x leer, dann soll man nicht weiter kommen (Msgbox)
  3. Wenn Checkbox angeklickt ist und variable x befüllt, dann kann man zur nächsten Kategorie (Nächste Seite im Multipage)

Für eine Checkbox habe ich das schon hinbekommen, aber wie mach ich das wenn es mehrere Checkboxen gibt. Weil ich glaube wenn ich das so mache wie bisher, dann wird das eine endlose anreihung von if bedingungen.

Diesen Code habe ich dann auf den Button gelegt, mit dem man zur nächsten Kategorie kommen soll oder eben halt nicht.

  Dim sheet2 As Worksheet
    Dim maxRow2 As Long
    Dim check3 As Boolean
    Set sheet2 = ActiveWorkbook.Worksheets(1)
    maxRow2 = sheet2.Cells(sheet2.Rows.Count, "B").End(xlUp).Row
   
    If CheckBox3.Value Then
    If Test = False Then
    MsgBox ("Kein Pfad angegeben")
    Else
  Dim iNextPage As Long
    With Me.MultiPage1
        iNextPage = .Value + 1
        If iNextPage < .Pages.Count Then
            .Pages(iNextPage).Visible = True
            .Value = iNextPage
        End If
    End With
    End If
    Else
    Dim iNextPage2 As Long
    With Me.MultiPage1
        iNextPage2 = .Value + 1
        If iNextPage2 < .Pages.Count Then
            .Pages(iNextPage2).Visible = True
            .Value = iNextPage2
        End If
    End With
    End If

Und als letztes würde ich gern noch wissen ob es möglich ist, zu unterbinden, dass der User oben im Multipage die Kategorie direkt anklicken kann und man halt nur über den "weiter" button zur nächsten kategorie kommt.

Gruß Chris

Computer, Microsoft Excel, VBA, Button, UserForm
[VBA] - Bestimmte Zeile aus HTML Dokument auslesen?

Hallo Community,

ich habe folgendes Problem.

Ich habe eine Excel Tabelle mit vielen ID's (Spalte B) und einen Ordner mit HTML-Dateien, die den IDs zugeordnet sind.

Im ersten Schritt bin ich alle ID's durchgegangen und habe falls vorhanden, die passende HTML Datei in einen Ordner abgespeichert.

Nun kommt der zweite Schritt bei dem ich eure Hilfe brauche. Ich möchte alle gefunden HTML Dateien durchgehen und nach einem bestimmten Bereich suchen. Im HTML Code sieht das ungefähr so aus:

<td class="category">
 <a name="attachments" id="attachments">Angehängte Dateien</a> </td>
<td colspan="5">
<a> unwichtig </a>
<a> WICHTIG </a> <- Hier steht der gesuchte Dateiname
<a> Unwichtig </a>
</td>

Das Ding ist, dass in diesem <td> Tag auch mehrere Dateien aufgeführt sind, der Aufbau ist aber immer gleich. Pro Datei gibt es 3 mal ein <a>-Tag und im mittleren stehen die wichtigen Informationen. Es gibt auch den Fall, dass dort keine Dateien und somit auch keine <a>-Tags vorhanden sind.

Mein bisheriges Makro sieht wie folgt aus:


 Const path = "M:*"
    Dim sheet As Worksheet
    Set sheet = ActiveWorkbook.Worksheets(2)
    maxRow = sheet.Cells(sheet.Rows.Count, "B").End(xlUp).Row
    Dim id As String
    Dim sourcePath As String
    Dim destPath As String
    Dim Filename As String
    For Row = 2 To maxRow
      sourcePath = path & "view.php-id=" & sheet.Cells(Row, 2) & ".html"
      Filename = "view.php-id=" & sheet.Cells(Row, 2) & ".html"
      MkDir (path & "gefunden\" & sheet.Cells(Row, 2))
      destPath = path & "gefunden\" & sheet.Cells(Row, 2) & "\" & sheet.Cells(Row, 2) & ".html"
      If Dir(sourcePath) = Filename Then
      FileCopy sourcePath, destPath
      Else
      MsgBox (sheet.Cells(Row, 2) & " nicht gefunden")
      End If
    Next Row

Um das alles nochmal zusammenzufassen, ich weiß nicht wie ich an die Namen der aufgeführten Dateien im HTML Dokument komme.

Wenn ich die Namen der Dateien erstmal habe, könnte ich auch weitermachen und die HTML-Doks mit passendem Anhang in einen Ordner kopieren.

Ich hoffe ihr verstehe was ich meine, für Fragen stehe ich gerne zu verfügung.

Grüße

Chris

Computer, Technik, HTML, programmieren, VBA, Technologie, VBA Programmierung, VBA Excel, Spiele und Gaming
Wie kann ich Word Textmarken mit einem Excel Makro befüllen?

Hallo liebes Gute Frage Forum,

ich bin ein blutiger Anfänger im Programmieren und möchte mich trotzdem an eine, wie ich finde, nicht ganz so leicht Aufgabe wagen.

Ich hoffe es erbarmt sich jemand und hilft mir weiter.

Meine Aufgabe:

Ich habe eine ExcelDatenbank die mehrere Einträge für mehrere Kunden verwaltet. ( Name, Anrede, Straße usw. )

Außerdem habe ich ein Word Dokument erstellt in das ich die Word Textmarken eingefügt habe ( Ebenfalls so benannt Name, Straße, Anrede usw. )

Nun möchte ich in Excel eine Zeile anklicken und anschließend das Makro ausführen. ( Das Makro soll dann nur für die Ausgewählte Zeile ausgeführt werden )

Die Vorlage soll aber nicht überschrieben werden, es soll ein neues Word Dokument erstellt werden, in dem die Felder dann ausgefüllt sind ( Am besten mit anderem Speicherpfad den ich dann auch direkt im Makro eingeben kann. )

Natürlich habe ich es auch schon selber versucht, allerding haben mir die Codeschnipsel die ich aus dem Internet geholt habe nicht ganz geholfen.

Hier mein Code: http://paste2.org/wFtw5UId

Mein Problem ist es nun, dass nur das letzte Textfeld wo ich die Referenz auf "Hallo" gesetzt habe befüllt werde, die anderen jedoch nicht obwohl excel keine fehlermeldung ausspuckt..

Außerdem hätte ichs gerne so wie oben beschrieben, dass er nur die Vorlage mit den Textmarken öffnet aber nicht überschreibt sondern ein neues Dokument mit den ausgefüllten Textmarken erstellt. (Pfad soll im Makro bestimmt werden)

Ich hoffe sehr das mir jmd. weiter helfen kann

Einen wunschönen Tag noch :)

Microsoft Word, Microsoft Excel, Makro, VBA, Datenbank, Vorlage, Befüllen
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.