Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1588to1592
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Eingabe von UserForm an Modul

Eingabe von UserForm an Modul
09.11.2017 10:46:02
UserForm
Liebe Freunde,
eine sehr banale Frage aber ich komm nicht drauf. Ich will über eine Userform über eine TextBox eine Eingabe tätigen. Anschließend soll diese in einem Modul verarbeitet werden und dann ins Tabellenblatt eingetragen werden.
Ich schaffe es das mir das Modul eine msgbox mit dem Wert ausgibt also wird dieser ja wohl übertragen. Wenn ich ihn dann aber eintragen will kommt die Fehlermeldung: "Laufzeitfehler '424': Objekt erforderlich". Muss ich wirklich Objekte definieren oder gibt es einen anderen Weg. Bin noch relativ neu bei VBA und habe mich noch nicht mit objektorienter Programmierung beschäftigt.
Danke für eure Hilfe, hier der Code:
In Userform1(es wird Wert in TextBox1 eingegeben):
Private Sub CommandButton1_Click()
Call Test
End Sub

In Modul:
Public Function Test()
MsgBox (UserForm1.TextBox1.Value)
Dim Variable As String
Variable = UserForm1.TextBox1.Value & " irgendwas"
ActiveSheets.Cells(1, 1).Value = Variable
End Function

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingabe von UserForm an Modul
09.11.2017 11:18:06
UserForm
Hi Tobi,
da Deine Function ja keinen Wert zurück gibt, genügt ein Sub. Dem kannst Du als Parameter gleich den Text der Textbox mit übergeben.

Private Sub CommandButton1_Click()
'Ich gehe davon aus, dass sich Button und Textbox auf der gleichen Form befinden
Test TextBox1.Text
End Sub
Public Sub Test(strInhalt as string)
MsgBox strInhalt
ActiveSheets.Cells(1, 1).Value = strInhalt & " irgendwas"
End Sub

AW: Eingabe von UserForm an Modul
09.11.2017 14:18:13
UserForm
Grüß dich Ralf,
vielen Dank für deine schnelle Antwort. Leider kommt die Fehlermeldung immer noch :/
Hast du eine Idee woran das liegen kann? Button und TextBox sind natürlich in der gleichen Userform.
Gruß Tobi
Anzeige
AW: Eingabe von UserForm an Modul
09.11.2017 14:29:59
UserForm
Hallo Tobi,
Frage:
Wozu eine Funktion?
Warum schreibst du den Code nicht direkt ins Click-Ereignis deiner Schaltfläche?
Private Sub CommandButton1_Click()
Dim strEintrag As String
strEintrag = UserForm1.TextBox1 & " Hallo"
MsgBox strEintrag
Worksheets("Tabelle1").Cells(1, 1) = strEintrag
End Sub
Gruß Werner
AW: Eingabe von UserForm an Modul
09.11.2017 15:42:11
UserForm
Hi Werner,
bisher habe ich alles in eine Funktion geschrieben. Das Problem ist, dass meine tatsächliche Funktion riesig ist und ich deshalb die Übersicht verliere. :/
Hier mal das Click Ereignis von einer Userform. Davon habe ich ca. 7 Stück.
Private Sub Button_Take_Click()
''Die Anzahl der Anlagen: y bestimmt wie viele Zeilen in der Tabelle erstellt werden. Das  _
Programm geht den Code also
'y mal durch und erstellt dabei y Zeilen. Es wird automatisch jeder Zeile die richtige ID  _
zugewiesen
Dim last As Integer
Dim i As Integer
For i = 1 To y
'Allgemein
'last als Variable für die erste unbeschriebene Zeile in Spalte 1. Da ID in Spalte 1
'und diese jede "Runde" erhöht wird => keine Verschiebungen
last = Sheets("Gutachten").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Sheets("Gutachten").Cells(last, 1).Value = last - 1
Sheets("Gutachten").Cells(last, 2).Value = Gutachten.Projektnummer.Value
Sheets("Gutachten").Cells(last, 3).Value = Gutachten.NameWindpark.Value
Sheets("Gutachten").Cells(last, 4).Value = y
Sheets("Gutachten").Cells(last, 5).Value = Gutachten.KBS.Value
Sheets("Gutachten").Cells(last, 9).Value = Gutachten.Gutachter.Value
Sheets("Gutachten").Cells(last, 10).Value = Gutachten.Dokumentenart.Value
Sheets("Gutachten").Cells(last, 12).Value = Gutachten.DatumdesBerichts.Value
Sheets("Gutachten").Cells(last, 13).Value = Gutachten.Berichtsnummer.Value
Sheets("Gutachten").Cells(last, 14).Value = Gutachten.Link.Value
Sheets("Gutachten").Cells(last, 15).Value = Gutachten.Quelle.Value
Sheets("Gutachten").Cells(last, 17).Value = Gutachten.Vergleichsanlagen.Value
Sheets("Gutachten").Cells(last, 18).Value = Gutachten.Windmessung.Value
Sheets("Gutachten").Cells(last, 16).Value = Gutachten.Kommentar.Value
'Geländemodell IF
Dim Geländemodell As String
If GeländemodellJa = True Then
Geländemodell = "Ja"
Else:
Geländemodell = "Nein"
End If
Sheets("Gutachten").Cells(last, 31).Value = Geländemodell
Sheets("Gutachten").Cells(last, 32).Value = Gutachten.Auflösung.Value
Sheets("Gutachten").Cells(last, 33).Value = Gutachten.GeländemodellLink.Value
'Normkonformität IF
Dim Normkonformität As String
If NormkonformitätJa = True Then
Normkonformität = "Ja"
Else:
Normkonformität = "Nein"
End If
Sheets("Gutachten").Cells(last, 34).Value = Normkonformität
'Grunddaten
Sheets("Gutachten").Cells(last, 11).Value = Gutachten.Controls("Kürzel" & i).Value
Sheets("Gutachten").Cells(last, 6).Value = Gutachten.Controls("XKoordinate" & i).Value
Sheets("Gutachten").Cells(last, 7).Value = Gutachten.Controls("YKoordinate" & i).Value
Sheets("Gutachten").Cells(last, 19).Value = Gutachten.Controls("KommentarzuVarianten" & i). _
Value
'technische Beschreibung
Sheets("Gutachten").Cells(last, 20).Value = Gutachten.Controls("Anlagentyp" & i).Value
Sheets("Gutachten").Cells(last, 21).Value = Gutachten.Controls("LinkAnlagentyp" & i).Value
Sheets("Gutachten").Cells(last, 22).Value = Gutachten.Controls("Nabenhöhe" & i).Value
Sheets("Gutachten").Cells(last, 23).Value = Gutachten.Controls("LinktechnischeBeschreibung"  _
& i).Value
'Wind
Sheets("Gutachten").Cells(last, 24).Value = Gutachten.Controls("VWNH" & i).Value
Sheets("Gutachten").Cells(last, 25).Value = Gutachten.Controls("AWeibull" & i).Value
Sheets("Gutachten").Cells(last, 26).Value = Gutachten.Controls("KWeibull" & i).Value
Sheets("Gutachten").Cells(last, 27).Value = Gutachten.Controls("KommentarWeibull" & i). _
Value
Sheets("Gutachten").Cells(last, 28).Value = Gutachten.Controls("Hauptwindrichtung" & i). _
Value
Sheets("Gutachten").Cells(last, 29).Value = Gutachten.Controls("Hauptenergierichtung" & i). _
Value
Sheets("Gutachten").Cells(last, 30).Value = Gutachten.Controls("KommentarWindverteilung" &  _
i).Value
'Energie
Sheets("Gutachten").Cells(last, 35).Value = Gutachten.Controls("AEPWEA" & i).Value
Sheets("Gutachten").Cells(last, 36).Value = Gutachten.Controls("WirkungsgradWEA" & i).Value
Sheets("Gutachten").Cells(last, 37).Value = Gutachten.AEPPark.Value
Sheets("Gutachten").Cells(last, 38).Value = Gutachten.WirkungsgradPark.Value
Sheets("Gutachten").Cells(last, 39).Value = Gutachten.Controls("KommentarErtrag" & i).Value
'Zusatz
Sheets("Gutachten").Cells(last, 40).Value = ErstellerGutachten
Sheets("Gutachten").Cells(last, 41).Value = Date
Dim Name As String
Name = Gutachten.Gutachter.Value & " " & Gutachten.Dokumentenart.Value & " " & Gutachten.Kü _
rzel1.Value
Sheets("Gutachten").Cells(last, 8).Value = Name
Next i
Call Speichern
End Sub

Anzeige
AW: Eingabe von UserForm an Modul
09.11.2017 15:55:07
UserForm
Hallo Tobi,
dann kannst du das ja ein ein ganz allgemeines Modul auslagern:
Sub Makro1()
Dim strEintrag As String
strEintrag = UserForm1.TextBox1 & " Hallo"
MsgBox strEintrag
Worksheets("Tabelle1").Cells(1, 1) = strEintrag
End Sub
und Aufruf in deinem CommandButton
Private Sub CommandButton1_Click()
Call Makro1
End Sub
Gruß Werner
AW: Eingabe von UserForm an Modul
09.11.2017 18:10:53
UserForm
Merci Werner,
so läufts. Warum bin ich da nicht selber drauf gekommen :D
Gerne u. Danke für die Rückmeldung. o.w.T.
09.11.2017 18:21:37
Werner
AW: Eingabe von UserForm an Modul
09.11.2017 16:00:46
UserForm
Hast du eine Idee woran das liegen kann?
Nö, da musst Du die Ursache woanders suchen. Setz doch (mit F9) mal einen Haltepunkt vor den Aufruf von Test und geh dann mit F8 im Einzelschrittmodus durch. Da kannst Du sehr schön nachverfolgen was passiert...
Anzeige
AW: Eingabe von UserForm an Modul
09.11.2017 15:36:47
UserForm
Grüß dich Ralf,
vielen Dank für deine schnelle Antwort. Leider kommt die Fehlermeldung immer noch :/
Hast du eine Idee woran das liegen kann? Button und TextBox sind natürlich in der gleichen Userform.
Gruß Tobi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige