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

Forumthread: aus UF in Tabelle einfügen

aus UF in Tabelle einfügen
21.05.2020 08:15:58
Werner.B
Guten Morgen,
ich habe einmal direkt eine Beispielsmappe angefügt, um meine Frage zu erläutern. - Auf dem UF befinden sich 7 Textboxes. Ich würde gerne den Text der jeweiligen Box, sofern sich hierin Text befindet, in eine vorbestimmte Zelle in Spalte A der ausgeblendeten Tabelle2 einfügen. Irgendetwas mache ich offensichtlich falsch, weil der Code immer nur den obersten Eintrag und nicht die folgenden Einträge gleichzeitig übernimmt. Ich wäre sehr dankbar mir Hilfestellung zu geben, was ich da falsch gemacht habe. Weiterhin soll dann der Bereich A1:A9 in die Windows Zwischenablage eingefügt werden, wäre denkbar, dieses ohne leere Zellen zu erreichen? Ich bedanke mich schon jetzt ganz herzlich für die Rückmeldungen, viele Grüße Werner.B
https://www.herber.de/bbs/user/137662.xls
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: aus UF in Tabelle einfügen
21.05.2020 08:26:49
Hajo_Zi

Option Explicit
Private Sub CommandButton1_Click()
With Worksheets("Tabelle2")
'If TextBox1.Text  "" Then
[A1] = "Überlegt wurde der Besuch folgender Module:" '& Chr(10) & TextBox1.Text & Chr( _
10) & "Wochen" '& TextBox2.Text & Chr(10) & TextBox3.Text & Chr(10) & TextBox4.Text & Chr(10)
[A1] = Application.Substitute([A1], Chr(10), " ")
Range("A2:A8").ClearContents
'Mod1
If TextBox1.Text  "" Then
[A2] = "Modul1" & Chr(10) & TextBox1.Text & Chr(10) & "Woche/n"
[A2] = Application.Substitute([A2], Chr(10), " ")
End If
'Mod2
If TextBox2.Text  "" Then
[A3] = "Modul2" & Chr(10) & TextBox2.Text & Chr(10) & Chr(10) & "Woche/n"
[A3] = Application.Substitute([A3], Chr(10), " ")
End If
'Mod3
If TextBox3.Text  "" Then
[A4] = "Modul3" & Chr(10) & TextBox3.Text & Chr(10) & Chr(10) & "Woche/n"
[A4] = Application.Substitute([A4], Chr(10), " ")
End If
'Mod4
If TextBox4.Text  "" Then
[A5] = "Modul4" & Chr(10) & TextBox4.Text & Chr(10) & Chr(10) & "Woche/n"
[A5] = Application.Substitute([A5], Chr(10), " ")
End If
'Mod 5
If TextBox5.Text  "" Then
[A6] = "Modul5" & Chr(10) & TextBox5.Text & Chr(10) & Chr(10) & "Woche/n"
[A6] = Application.Substitute([A6], Chr(10), " ")
End If
'Mod 6
If TextBox6.Text  "" Then
[A7] = "Modul6" & Chr(10) & TextBox6.Text & Chr(10) & Chr(10) & "Woche/n"
[A7] = Application.Substitute([A7], Chr(10), " ")
End If
'Mod 7
If TextBox7.Text  "" Then
[A8] = "Modul7" & Chr(10) & TextBox7.Text & Chr(10) & Chr(10) & "Woche/n"
[A8] = Application.Substitute([A8], Chr(10), " ")
End If
End With
End Sub

Anzeige
AW: aus UF in Tabelle einfügen
21.05.2020 08:27:15
Hajo_Zi

Option Explicit
Private Sub CommandButton1_Click()
With Worksheets("Tabelle2")
'If TextBox1.Text  "" Then
[A1] = "Überlegt wurde der Besuch folgender Module:" '& Chr(10) & TextBox1.Text & Chr( _
10) & "Wochen" '& TextBox2.Text & Chr(10) & TextBox3.Text & Chr(10) & TextBox4.Text & Chr(10)
[A1] = Application.Substitute([A1], Chr(10), " ")
Range("A2:A8").ClearContents
'Mod1
If TextBox1.Text  "" Then
[A2] = "Modul1" & Chr(10) & TextBox1.Text & Chr(10) & "Woche/n"
[A2] = Application.Substitute([A2], Chr(10), " ")
End If
'Mod2
If TextBox2.Text  "" Then
[A3] = "Modul2" & Chr(10) & TextBox2.Text & Chr(10) & Chr(10) & "Woche/n"
[A3] = Application.Substitute([A3], Chr(10), " ")
End If
'Mod3
If TextBox3.Text  "" Then
[A4] = "Modul3" & Chr(10) & TextBox3.Text & Chr(10) & Chr(10) & "Woche/n"
[A4] = Application.Substitute([A4], Chr(10), " ")
End If
'Mod4
If TextBox4.Text  "" Then
[A5] = "Modul4" & Chr(10) & TextBox4.Text & Chr(10) & Chr(10) & "Woche/n"
[A5] = Application.Substitute([A5], Chr(10), " ")
End If
'Mod 5
If TextBox5.Text  "" Then
[A6] = "Modul5" & Chr(10) & TextBox5.Text & Chr(10) & Chr(10) & "Woche/n"
[A6] = Application.Substitute([A6], Chr(10), " ")
End If
'Mod 6
If TextBox6.Text  "" Then
[A7] = "Modul6" & Chr(10) & TextBox6.Text & Chr(10) & Chr(10) & "Woche/n"
[A7] = Application.Substitute([A7], Chr(10), " ")
End If
'Mod 7
If TextBox7.Text  "" Then
[A8] = "Modul7" & Chr(10) & TextBox7.Text & Chr(10) & Chr(10) & "Woche/n"
[A8] = Application.Substitute([A8], Chr(10), " ")
End If
End With
End Sub

Anzeige
Danke, Hajo
21.05.2020 10:05:22
Werner.B
Vielen Dank für die Rückantwort, Hajo und die Korrektur. Wenn ich das richtig sehe, lag mein Fehler bei ElseIf. Der Code funktioniert nun auch soweit. Vielen Dank nochmals und Viele Grüße Werner.B
AW: aus UF in Tabelle einfügen
21.05.2020 09:31:08
Martin
Hallo Werner,
schau dir mal an, ob du es dir so vorgestellt hast:
Private Sub CommandButton1_Click()
Dim i As Integer
With Worksheets("Tabelle2")
'If TextBox1.Text  "" Then
.[A1] = "Überlegt wurde der Besuch folgender Module:" '& Chr(10) & TextBox1.Text & Chr(  _
_
10) & "Wochen" '& TextBox2.Text & Chr(10) & TextBox3.Text & Chr(10) & TextBox4.Text & Chr(10)
.[A1] = Application.Substitute(.[A1], Chr(10), " ")
.Range("A2:A8").ClearContents
'Mod 1 bis Mod 7
For i = 1 To 7
If Controls("TextBox" & i).Text  "" Then
.Cells(i + 1, 1) = "Modul1" & Chr(10) & Controls("TextBox" & i).Text & Chr(10) & _
"Woche/n"
.Cells(i + 1, 1) = Application.Substitute(.Cells(i + 1, 1), Chr(10), " ")
Else
.Cells(i + 1, 1) = ""
End If
Next
.Range("A2:A8").SpecialCells(xlCellTypeConstants).Copy
End With
End Sub
Viele Grüße
Martin
Anzeige
AW: aus UF in Tabelle einfügen
21.05.2020 10:02:43
Werner.B
Vielen Dank, Martin für die Rückantwort. In der Grundstruktur ist es schon, wie ich es mir gewünscht hatte. Ich habe allerdings versäumt, zu beschreiben, dass die Bezeichnungen Modul1 usw. Platzhalter sind und noch durch jeweils indviduellem Text ersetzt werden. TextBox1 würde dann anstatt Modul1 z.B. "Tagestouren" stehen. Bei Modul2 wiederum ein anderer individueller Text. Sorry, das hätte ich beschreiben sollen. Hast Du da evtl. noch eine andere Idee? - Viele Grüße Werner.B
Anzeige
AW: aus UF in Tabelle einfügen
21.05.2020 10:16:54
Martin
Hallo Werner,
ich habe die Modulbezeichnungen jetzt in ein Datenfeld ("Array") ausgelagert, damit der Code schön kurz bleibt:
Private Sub CommandButton1_Click()
Dim i As Integer
Dim arrModule As Variant
With Worksheets("Tabelle2")
'If TextBox1.Text  "" Then
.[A1] = "Überlegt wurde der Besuch folgender Module:" '& Chr(10) & TextBox1.Text & Chr(  _
_
10) & "Wochen" '& TextBox2.Text & Chr(10) & TextBox3.Text & Chr(10) & TextBox4.Text & Chr(10)
.[A1] = Application.Substitute(.[A1], Chr(10), " ")
.Range("A2:A8").ClearContents
'Mod 1 bis Mod 7
arrModule = Array("Modul 1", "Modul 2", "Modul 3", "Modul 4", "Modul 5", "Modul 6", " _
Modul 7")
For i = 1 To 7
If Controls("TextBox" & i).Text  "" Then
.Cells(i + 1, 1) = arrModule(i) & Chr(10) & Controls("TextBox" & i).Text & Chr( _
10) & "Woche/n"
.Cells(i + 1, 1) = Application.Substitute(.Cells(i + 1, 1), Chr(10), " ")
Else
.Cells(i + 1, 1) = ""
End If
Next
.Range("A2:A8").SpecialCells(xlCellTypeConstants).Copy
End With
End Sub
Du kannst die Modulbezeichnungen in der fett formatierten Zeile entsprechend anpassen.
Viele Grüße
Martin
Anzeige
...kleiner Fehler
21.05.2020 10:39:01
Martin
Hallo Werner,
mir ist ein kleiner Fehler beim Array-Index unterlaufen. Es müsste lauten: arrModule(i - 1).
Hier noch einmal das komplette Makro mit der Korrektur:
Private Sub CommandButton1_Click()
Dim i As Integer
Dim arrModule As Variant
With Worksheets("Tabelle2")
'If TextBox1.Text  "" Then
.[A1] = "Überlegt wurde der Besuch folgender Module:" '& Chr(10) & TextBox1.Text & Chr(  _
_
10) & "Wochen" '& TextBox2.Text & Chr(10) & TextBox3.Text & Chr(10) & TextBox4.Text & Chr(10)
.[A1] = Application.Substitute(.[A1], Chr(10), " ")
.Range("A2:A8").ClearContents
'Mod 1 bis Mod 7
arrModule = Array("Modul 1", "Modul 2", "Modul 3", "Modul 4", "Modul 5", "Modul 6", " _
Modul 7")
For i = 1 To 7
If Controls("TextBox" & i).Text  "" Then
.Cells(i + 1, 1) = arrModule(i - 1) & Chr(10) & Controls("TextBox" & i).Text &  _
Chr(10) & "Woche/n"
.Cells(i + 1, 1) = Application.Substitute(.Cells(i + 1, 1), Chr(10), " ")
Else
.Cells(i + 1, 1) = ""
End If
Next
.Range("A2:A8").SpecialCells(xlCellTypeConstants).Copy
End With
End Sub
Viele Grüße
Martin
Anzeige
AW: aus UF in Tabelle einfügen
21.05.2020 10:47:40
Werner.B
Hallo Martin - so finde ich es super! - Momentan bekomme ich allerdings eine Fehlermeldung, wenn ich TextBox7 befülle. Ohne die Ahnung zu haben, könnte da noch etwas mit Array nicht stimmen? - Ich habe den Code noch nicht verändert - Modul1 wird bei Eingabe eines Textes in TextBox1 nicht eingtragen, sondern Modul2. Wenn Du da noch vielleicht helfen könntest. - Vielen Dank und Viele Grüße Werner.B
Anzeige
Tausend Dank! - Beiträge überschnitten.
21.05.2020 10:52:53
Werner.B
Herzlichen Dank, Martin. Unsere beiden letzten Beiträge haben sich überschnitten. Der Code funktioniert nun wunderbar. Super!! - Vielen Dank für Deine Zeit dafür und viele Grüße Werner.B
AW: Tausend Dank! - Beiträge überschnitten.
21.05.2020 11:05:50
Martin
Hallo Werner,
ich danke dir für deine Rückmeldung. Nur als kleiner Hinweis am Rande: Für die Excelformel "Wechseln" (Substitute) gibt es auch direkt in VBA die Ersetzen-Funktion "Replace".
Statt der Zeile
.Cells(i + 1, 1) = Application.Substitute(.Cells(i + 1, 1), Chr(10), " ")
wäre folgende Zeile "sauberer":
.Cells(i + 1, 1) = Replace(.Cells(i + 1, 1), Chr(10), " ")
Das hat aber keinen Einfluss auf die Funktionalität deines Makros ;-)
Viele Grüße
Martin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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