Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.10.2025 09:06:52
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Textbox-Inhalt in Modul verwenden

VBA Textbox-Inhalt in Modul verwenden
28.11.2020 22:34:05
Excelaner
Hi Leute,
ich möchte in eine Spalte folgendes reinschreiben:
In Spalte H stehen IDs entweder mit 1 oder 2 beginnend.
In Spalte G soll geprüft werden ob Spalte H das erste Zeichen eine 1 oder 2 ist. Wenn 1 = "A Test" und wenn 2 = "B Test".
Zusätzlich zu A oder B soll noch der Inhalt von UserForm1.TextBox1.Text reingeschrieben werden.
z.B. steht in H2 drin: 1001
und in Textbox1 steht: "November 2020"
Dann wäre das Ergebnis in G2 = "A Test November 2020"
Wie krieg das am einfachsten hin? :)
Danke euch!
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Textbox-Inhalt in Modul verwenden
28.11.2020 22:47:45
ralf_b
ungetestet
dim i as long
do while Range("H" & i )  vbNullstring
if Left(RAnge("H" & i).text = "1" then
RAnge("G2") =  "A Test " & UserForm1.TextBox1.Text
else if Left(RAnge("H" & i).text = "2" then
RAnge("G2") =  "B Test " & UserForm1.TextBox1.Text
end if
i = i+1
loop

Anzeige
AW: VBA Textbox-Inhalt in Modul verwenden
28.11.2020 23:04:51
Excelaner
hi Ralf,
danke dir. Ich erhalte jedoch die Fehlermeldung: Loop ohne Do
Was ist falsch?
AW: VBA Textbox-Inhalt in Modul verwenden
28.11.2020 23:19:24
ralf_b
echt? naja hab sowieso noch andere bugs gefunden, und jetzt läuft es aber durch. bei mir
Dim i As Long
i = 2
Do While Range("H" & i).Value  vbNullString
If Left(Range("H" & i).Value, 1) = "1" Then
Range("G2") = "A Test " '& UserForm1.TextBox1.Text
ElseIf Left(Range("H" & i).Value, 1) = "2" Then
Range("G2") = "B Test " '& UserForm1.TextBox1.Text
End If
i = i + 1
Loop
End Sub

Anzeige
AW: VBA Textbox-Inhalt in Modul verwenden
28.11.2020 23:22:21
ralf_b
is wohl doch etwas spät
Range("G2") in Range("G" & i ) ändern
AW: VBA Textbox-Inhalt in Modul verwenden
28.11.2020 23:48:02
Excelaner
Das habe ich bereits schon entdeckt gehabt, danke dir.
Ich habs jetzt doch nochmal etwas angepasst, da es bei mir nicht korrekt funktioniert hatte. Aber es funktioniert auch in meiner Version nicht richtig, die Spalte G wird komischerweise immer erst ab Zeile 22 befüllt, G22 gehört dann aber trotzdem zu H2. Warum denn?
Sub TEST()
ltzS = Sheets("Tabelle1").Range("H100").End(xlUp).Row
For i = 1 To ltzS
If Left(Range("H" & i).Value, 1) = "1" Then
Range("G2" & i).Value = "A Test " & UserForm1.TextBox1.Text
ElseIf Left(Range("H" & i).Value, 1) = "2" Then
Range("G2" & i).Value = "B Test " & UserForm1.TextBox1.Text
End If
Next
End Sub

Anzeige
AW: VBA Textbox-Inhalt in Modul verwenden
28.11.2020 23:58:20
Excelaner
ist wirklich zu spät geworden. nicht Range("G2" & i) sondern Range("G" & i) müsste es heißen!
DANKE dir Ralf!!!
AW: VBA Textbox-Inhalt in Modul verwenden
29.11.2020 09:57:39
Hajo_Zi
offen bedeutet es soll noch eine Antwort kommen.
Warum ist dein Beitrag Offen.
Du willst doch was machen. Soll jemand vorbei kommen?
Das ist nur meine Meinung zu dem Thema.

Anzeige
AW: VBA Textbox-Inhalt in Modul verwenden
29.11.2020 19:10:10
Excelaner
Sorry, habs vergessen :)
AW: VBA Textbox-Inhalt in Modul verwenden
29.11.2020 19:17:47
Hajo_Zi
Du hast es immer noch vergesen mitzuteilen was offen ist!!!
aktiviere die Checkbox "Aktiviere. " nicht falls nicht offen.
Falls Offen solltesrt Du miteilen was offen ist.
Gruß Hajo
Anzeige
AW: VBA Textbox-Inhalt in Modul verwenden
29.11.2020 19:20:34
Excelaner
Verstehe ich nicht, ich habs doch nicht aktiviert. Liegt es eventuell dran, dass ich es mit dem Handy versuche?
Habs jetzt mal mit nem anderen Browser versucht.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Textbox-Inhalt in Modul verwenden


Schritt-für-Schritt-Anleitung

Um den Inhalt einer Textbox in einem VBA-Modul zu verwenden und abhängig von den Werten in einer bestimmten Spalte den Text in einer anderen Spalte zu befüllen, folge diesen Schritten:

  1. Öffne den VBA-Editor in Excel, indem du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu: Rechtsklicke auf "Projekt" > "Einfügen" > "Modul".

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub TEST()
       Dim i As Long
       Dim ltzS As Long
       ltzS = Sheets("Tabelle1").Range("H100").End(xlUp).Row
       For i = 2 To ltzS
           If Left(Range("H" & i).Value, 1) = "1" Then
               Range("G" & i).Value = "A Test " & UserForm1.TextBox1.Text
           ElseIf Left(Range("H" & i).Value, 1) = "2" Then
               Range("G" & i).Value = "B Test " & UserForm1.TextBox1.Text
           End If
       Next i
    End Sub
  4. Füge ein UserForm hinzu, falls noch nicht vorhanden, und platziere eine TextBox (z.B. TextBox1) darauf.

  5. Führe das Makro aus, um die gewünschten Werte in Spalte G zu sehen.


Häufige Fehler und Lösungen

  • Fehler: "Loop ohne Do"
    Dieser Fehler tritt auf, wenn die Do While-Schleife nicht korrekt geschlossen ist. Stelle sicher, dass du ein Loop am Ende der Schleife hast.

  • Fehler: "Range" ist ungültig
    Überprüfe, ob die Range korrekt deklariert ist, z.B. Range("G" & i) statt Range("G2" & i).

  • Werte in der falschen Zeile
    Achte darauf, dass du die Schleife bei i = 2 beginnst, wenn die Daten in der Zeile 2 beginnen. So verhinderst du, dass Werte in der falschen Zeile erscheinen.


Alternative Methoden

Falls du eine andere Methode zur Befüllung der Zellen suchst, kannst du auch die Funktion WorksheetFunction verwenden, um komplexere Bedingungen zu prüfen oder verschiedene Textwerte zu kombinieren.

Zusätzlich kannst du die Application.InputBox-Methode nutzen, um Werte zur Laufzeit abzufragen.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Anwendung des Codes:

  1. Beispiel 1:
    Wenn in Zelle H2 der Wert 1001 steht und in der TextBox der Wert November 2020 eingegeben wird, wird in G2 das Ergebnis A Test November 2020 angezeigt.

  2. Beispiel 2:
    Bei H3 mit dem Wert 2002 und der TextBox mit Dezember 2020, wird G3 den Text B Test Dezember 2020 erhalten.


Tipps für Profis

  • Debugging: Verwende Debug.Print, um Variablen während der Ausführung zu überwachen. Dies hilft dir, Fehler schnell zu identifizieren.

  • Optimierung: Wenn du mit großen Datenmengen arbeitest, versuche die Bildschirmaktualisierung zu deaktivieren:

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Fehlermeldungen: Implementiere Fehlerbehandlungsroutinen, um das Programm robuster zu machen:

    On Error GoTo ErrorHandler
    ' Dein Code hier
    Exit Sub
    ErrorHandler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um mehr als zwei Bedingungen zu prüfen?
Du kannst zusätzliche ElseIf-Bedingungen hinzufügen, um mehr Werte aus der Spalte H zu berücksichtigen.

2. Funktioniert dieser Code in Excel 2019?
Ja, dieser VBA-Code sollte in Excel 2019 sowie in anderen Versionen wie Excel 2016 und Excel 2013 problemlos funktionieren.

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