Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
996to1000
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

Daten aus Zelle in Text einlesen und leere löschen

Daten aus Zelle in Text einlesen und leere löschen
01.08.2008 22:09:00
Joachim
Hi,
ich habe ein Excelsheet, auf dem werden Daten mit einen Makro in die Zellen A1, B1 und C1 eingelesen.
siehe Beispiel:
https://www.herber.de/bbs/user/54281.xls
Ich möchte nun die Daten in die darunterstehenden Textboxen einlesen, also A1 soll in die Textbox4 , B1 soll in die textbox5 und C1 soll in die Textbox6.
So , nun das Problem dabei: die leeren Zeilen aus A1 sollen raus und in die Textbox eingelesen werden. Dabei solen aber die Zeilen in den textboxen5 und 6 ebenfalls mitbearbeitet werden.
Wenn beim einlesen der Information aus der Zelle A1 (wie in meinem Beispiel) in die Textbox4 die Zeilen 2, 5 und 7 rausgefiltert oder gelöscht werden, soll diese Zeilen (2, 5 und 7) auch bei den anderen beiden Textboxen mit herausfefiltert oder gelöscht werden, damit die gleichen Daten wieder in einer Zeile stehen.
Ausschlaggebend ist immer die Zelle A1 . Sobald da eine Leere Zelle erscheint, soll diese gelöscht und auch in den anderen Textboxen mit gelöscht werden, (egal, ob bei denen was drinsteht oder nicht)
Hoffe, ich konnte mein Problem verständlich erklären.
Gruss
Joachim

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus Zelle in Text einlesen und leere löschen
02.08.2008 08:23:00
Luschi
Hallo Joachim,
hier der Vba-Code für das CommanButton:

Private Sub CommandButton1_Click()
Dim s1 As String, myArr() As String, _
i1 As Integer, i2 As Integer, i3 As Integer
'Schleife von 1 bis 3 (da 3 Textboxen)
For i1 = 1 To 3
'in s1 steht nacheinander der Wert von den Zellen A1 bis C1
s1 = ActiveSheet.Cells(1, i1).Value
'die einzelnen Zeilenwerte der jeweiligen Zelle werden in 1 Array (Datenfeld) _
geschrieben
'Trennzeichen ist dabei das unsichtbare Steuerzeichen ASCII-10
'diese wurden per Shift+Enter erzeugt
myArr() = Split(s1, Chr(10), -1, vbBinaryCompare)
'größter Lauf-Index vom Array (Anzahl der Datenelemente -1)
i2 = UBound(myArr())
s1 = ""
For i3 = 0 To i2
'jedes Datenelement des Arrays durchlaufen
If ""  myArr(i3) Then
'Wenn etwas drin steht, dann Wert zu einer neuen Textkette zusammensetzen _
und das Zeilenwechselzeichen (ASCII-10) anhängen
s1 = s1 & myArr(i3) & IIf(i3 

Gruß von Luschi
aus klein-Paris

Anzeige
AW: Daten aus Zelle in Text einlesen und leere lös
02.08.2008 09:24:00
Joachim
Hallo Luschi,
Danke, muss aber noch mal nachhacken, das mit dem löschen der leeren Zeilen in der Textbox4 passt so weit, allerdings verhalten sich die anderen zwei Textboxen nicht ganz so, wie ich es gerne hätte.
Ich versuch es nochmal zu erklären, vielleicht habe ich mich auch blöd augedrückt:
Also, wenn in der ersten Textbox (4) eine Zeile frei (leer) ist, ( nehmen wir mal an, es wäre die 2 und die 4. Zeile in der Textbox), dann soll in der Textbox (4) diese Zeilen gelöscht werden. (nicht sortieren) und in den Textboxen 5 und 6 sollen ebenfalls diese zeilen 2 und 4 gelöscht werden, damit nachher wieder alles zusammen ist, was zusammen gehört.
Alle Informationen einer Zeile aus allen drei Textboxen ist 1. Datensatz, alle daten aus den ersten Zeilen ist ein Datensatz, alle zweiten Einträge ist ein datensatz usw.
Am besten, man würde sich die drei Textboxen als eine grosse Textbox mit drei Spalten vorstellen und würde eine Zeile löschen, (Kriterium wäre Spalte1) dann würden bei der gelöschten Zeile auch die Informationen alle Spalten der jeweiligen Zeile mit gelöscht weden.
So besser veständlich ?
Hoffe, Du (oder jemand) kannst mir nochmal helfen
gruss
Joachim

Anzeige
Hat keiner eine Idee
04.08.2008 08:46:00
Joachim
Hoffe, mir ist noch zu helfen :-)
Gruss
Joachim

AW: Hat keiner eine Idee
04.08.2008 09:18:00
Tino
Hallo,
was hältst du von diesem Code?

Private Sub CommandButton1_Click()
Dim strTextA1() As String
Dim strTextB1() As String
Dim strTextC1() As String
Dim A As Long
Dim strUmbruch As String
TextBox4 = "": TextBox5 = "": TextBox6 = ""
strTextA1 = Split(Range("A1"), Chr(10))
strTextB1 = Split(Range("B1"), Chr(10))
strTextC1 = Split(Range("C1"), Chr(10))
strUmbruch = Chr(10)
For A = 0 To UBound(strTextA1)
If A = UBound(strTextA1) Then strUmbruch = ""
If strTextA1(A)  "" Then
TextBox4 = TextBox4 & strTextA1(A) & strUmbruch
TextBox5 = TextBox5 & strTextB1(A) & strUmbruch
TextBox6 = TextBox6 & strTextC1(A) & strUmbruch
End If
Next A
Erase strTextA1: Erase strTextB1: Erase strTextC1
End Sub


Gruß Tino

www.VBA-Excel.de


Anzeige
Was ich davon halte ? Absolut Spitze, Danke
04.08.2008 10:37:00
halte
Hi Tino,
Danke, hast mir (mal wieder) sehr geholfen.
Gruss
Joachim

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige