Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1760to1764
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
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

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
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
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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige