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

ab Zelle A1 einfügen

ab Zelle A1 einfügen
21.10.2012 08:47:10
Wolfgang
Hallo,
wie kann ich den nachfolgenden Code umstellen, so dass der Text der Textbox nicht in Zelle A1, sondern ab A1 eingefügt wird? - Danke schon jetzt für die Rückmeldungen.
Gruß - Wolfgang
Private Sub TextBox1_Change()
Sheets("Tabelle2").Range("A1") = TextBox1
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ab A1 -> wie meinst Du das?
21.10.2012 10:06:08
Matthias
Hallo
Wohin soll denn der Text?
Gruß Matthias

AW: ab Zelle A1 einfügen - Rückfragen
21.10.2012 10:09:01
fcs
Hallo Wolfgang,
noch ein paar Fragen:
1. Wo befindet sich die Textbox? Tabellenblatt oder Userform?
2.An welchem Zeichen soll der Text getrennt werden und in die jeweils nächste Zelle eingetragen werden?
Ein bestimmtes Zeichen (" ", ";", "," oder Zeilenschaltung) oder immer vor Erreichen einer bestimmten max. Anzahl Zeichen?
3. Sollen die Inhalte dann ab A1 nach unten oder nach rechts eingetragen werden?
Gruß
Franz

AW: ab Zelle A1 einfügen - Rückfragen
21.10.2012 15:50:23
Wolfgang
Hallo Matthias,
Hallo Franz,
sorry, dass ich mich jetzt erst zurückückmelden kann. Stimmt, eure Fragen/Hinweise habe ich in meiner Frage gar nicht beachtet. Die Textbox befindet sich in der Tabelle, es wird aus einer anderen Anwendung hierin Text importiert, der dann zeilenweise, also von A1 nach unten in das Tabellenblatt2 eingefügt werden soll, nachdem er ggfs. noch veränder/modifiziert wurde. Trenner sind hierin nicht noch zusätzlich enthalten, da der Text bereits zeilenweise bzw. getrennt in der Textbox erscheint. Danke schon jetzt wieder für die erneute Rückmeldung.
Gruß - Wolfgang

Anzeige
AW: Textbox-Inhalt in Tabelle eintragen
21.10.2012 19:22:38
fcs
Hallo Wolfgang,
Fließtext in einer Textbox zeilenweise am Zeilenwechsel jeweils in einer neuen Zelle eintragen, das ist mir zu mühselig zu programmieren.
Ich kann dir anbieten, jeweils an einer Zeilenschaltung den Text in die nächste Zelle zu schreiben.
In der Tabelle2 formatierst du die Spalte1 dann so das Text automatisch umgebrochen wird und die Breite der Spalte stellst du etwa auf die Breite der Textbox ein.
Gruß
Franz
'Code in einem allgemeinen Modul oder wahlweise auch unter dem Tabellenmodul mit der Textbox
Option Explicit
Sub Eintragen(ByVal strText As String, _
ByVal rngZelle As Range, _
Optional ByVal strSep As String = " ", _
Optional bolSpalte As Boolean = True)
'Fügt gemäß gewählter Option den Text in mehrere Zellen ein, beginnend in rngZelle
Dim arrText
'Bei Zeilenschaltung als Trennzeichen muss in der Textbox ggf erst die Zeichenfolge _
Zeilenschaltung + Wagenrücklauf durch das Trennzeichen ersetzt werden.
If strSep = Chr(10) Or strSep = Chr(13) Then
If InStr(1, strText, Chr(13) & Chr(10)) > 0 Then
strText = VBA.Replace(strText, Chr(13) & Chr(10), strSep)
End If
End If
arrText = Split(strText, strSep)
With rngZelle.Parent
If bolSpalte = True Then
.Range(rngZelle, .Cells(rngZelle.Row + UBound(arrText), rngZelle.Column)) = _
Application.WorksheetFunction.Transpose(arrText)
Else
.Range(rngZelle, .Cells(rngZelle.Row, rngZelle.Column + UBound(arrText))) = arrText
End If
End With
End Sub
Sub TextLoeschen(ByVal rngZelle As Range, _
Optional bolSpalte As Boolean = True)
'Löscht in der Zeile oder Spalte alle Inhalte beginnend in rngZelle
Dim LetzterEintrag As Long
With rngZelle.Parent
If bolSpalte = True Then
LetzterEintrag = .Cells(.Rows.Count, rngZelle.Column).End(xlUp).Row
If LetzterEintrag &gt= rngZelle.Row Then
.Range(rngZelle, .Cells(LetzterEintrag, rngZelle.Column)).ClearContents
End If
Else
LetzterEintrag = .Cells(rngZelle.Row, .Columns.Count).End(xlToLeft).Column
If LetzterEintrag &gt= rngZelle.Column Then
.Range(rngZelle, .Cells(rngZelle.Row, LetzterEintrag)).ClearContents
End If
End If
End With
End Sub
'Code unter dem Tabellenmodul mit der Textbox
Option Explicit
'Welche der beiden Ereignisprozeduren man verwendet ist ein wenig Geschmackssache.
'TextBox1_Change aktualisert die Tabellendaten nach jeder Zeicheneingabe, _
TextBox1_LostFocus immer dann wenn man den Cursor wieder außerhalb der Textbox plaziert
Private Sub TextBox1_Change()
With Worksheets("Tabelle2")
Call TextLoeschen(rngZelle:=.Range("A1"))
Call Eintragen(strText:=Me.TextBox1.Value, rngZelle:=.Range("A1"), strSep:=Chr(10))
End With
End Sub
Private Sub TextBox1_LostFocus()
With Worksheets("Tabelle2")
Call TextLoeschen(rngZelle:=.Range("A1"))
Call Eintragen(strText:=Me.TextBox1.Value, rngZelle:=.Range("A1"), strSep:=Chr(10))
End With
End Sub

Anzeige
AW: Textbox-Inhalt in Tabelle eintragen
21.10.2012 20:56:31
Wolfgang
Hallo Franz,
herzlichen Dank zunächst für Deine Rückmeldung und Ausarbeitung sowie Überlassung der Codes. Ich habe diese getestet. Bei der "Change"-Anwendung klappt es auch immer beim ersten Mal. Kopiere ich dann über einen anderen Code neue Daten hinein, erscheint Debug-Fehlermeldung (nachstehend). Bewirkt evtl. das Löschen der Daten in der TextBox diese Meldung? - Lässt sich das evtl. Abfangen? - In der Lost-Focus-Anwendung bekomme ich keine Daten in das Tabellenblatt übertragen. - Danke schon jetzt wieder für Deine Rückmeldung.
Gruß - Wolfgang
'hier erscheint Fehlermeldung -Anwendungs oder objektdefinierter Fehler
'gehe ich aus Debug heraus und starte das Füllen der Textbox erneut, dann klappt es
 .Range(rngZelle, .Cells(rngZelle.Row + UBound(arrText), rngZelle.Column)) = _
Application.WorksheetFunction.Transpose(arrText)

Anzeige
AW: Textbox-Inhalt in Tabelle eintragen
21.10.2012 23:16:04
fcs
Hallo Wolfgang,
da muss dann noch eine Prüfung rein, ob der Text ein Leerstring ist, da der Split-Befehl kein Array aus einem Leerstring erzeugt.
Gruß
Franz
Sub Eintragen(ByVal strText As String, _
ByVal rngZelle As Range, _
Optional ByVal strSep As String = " ", _
Optional bolSpalte As Boolean = True)
'Fügt gemäß gewählter Option den Text in mehrere Zellen ein, beginnend in rngZelle
Dim arrText
'Bei Zeilenschaltung als Trennzeichen muss in der Textbox ggf erst die Zeichenfolge _
Zeilenschaltung + Wagenrücklauf durch das Trennzeichen ersetzt werden.
If strText = "" Then Exit Sub                                     '#### neue Zeile
If strSep = Chr(10) Or strSep = Chr(13) Then
If InStr(1, strText, Chr(13) & Chr(10)) > 0 Then
strText = VBA.Replace(strText, Chr(13) & Chr(10), strSep)
End If
End If
arrText = Split(strText, strSep)
With rngZelle.Parent
If bolSpalte = True Then
.Range(rngZelle, .Cells(rngZelle.Row + UBound(arrText), rngZelle.Column)) = _
Application.WorksheetFunction.Transpose(arrText)
Else
.Range(rngZelle, .Cells(rngZelle.Row, rngZelle.Column + UBound(arrText))) = arrText
End If
End With
End Sub

Anzeige
Tausend Dank, Franz!!!
22.10.2012 06:00:11
Wolfgang
Hallo Franz,
erneut recht herzlichen Dank für Deine Rückmeldung und Veränderung des Codes. Er läuft nun ohne Fehlermeldung und macht genau das, was ich mir gewünscht hatte. Ich freue mich sehr. Nochmals vielen Dank und einen schönen Tag.
Gruß - Wolfgang

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige