Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1172to1176
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

verketten und ersetzen

verketten und ersetzen
Stefan
Hallo zusammen,
mittels einem Makro will ich Werte der Spalte A verketten. Die Werte sollen mit einem Komma getrennt sein und falls die Werte ein Komma haben, muss dies mit einem Punkt ersetzt werden. Die Verkettung muss so aussehen, damit ich sie in ein Statistikprogramm einlesen kann.
Hierzu habe ich folgendes Makro gebastelt:
Private Sub CommandButton1_Click()
Dim Bereich() As Variant, Verkettung As String, i As Integer, n As Integer, x As Range
n = Range(Cells(2, 1), Cells(65000, 1).End(xlUp)).Cells.Count - 1
ReDim Bereich(n)
For Each x In Range(Cells(2, 1), Cells(65000, 1).End(xlUp))
Bereich(i) = x.Value
i = i + 1
Next x
Verkettung = Join(Bereich, "; ")
Cells(4, 2).Value = Verkettung
Range("B4").Select
Selection.Replace What:=",", Replacement:="."
Selection.Replace What:=";", Replacement:=","
'ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 60#, 25.75, _
240#, 114.75).Select
'Selection.Characters.Text = Cells(2, 2).Text
'With Selection.Font
'    .Name = "Courier"
'    .FontStyle = "Standard"
'    .Size = 10
'    .Strikethrough = False
'    .Superscript = False
'    .Subscript = False
'    .OutlineFont = False
'    .Shadow = False
'    .Underline = xlUnderlineStyleNone
'    .ColorIndex = xlAutomatic
'End With
'Range("B2").Delete
End Sub
Anfangs wollte ich alles in ein Textfeld schreiben. Leider ging das nur bis 255 Zeichen.
Deshalb schreibe ich das jetzt in eine Zelle. Hier gehen aber nur ca. 910 Zeichen. Bei mehr funktioniert das Ersetzen nicht mehr.
Hat jemand eine Lösung, wie man eine längere Verkettung mit den entsprechenden Trennzeichen hinbekommt?
Danke!
Gruß
Stefan

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: verketten und ersetzen
20.08.2010 10:16:41
ransi
HAllo Stefan
Warum willst du den Wert denn erst wegschreiben ?
KAnnst du ihn nicht direkt an dein Statistikprogarmm weitergeben ?
Public Sub test()
Dim Bereich As Variant
With Sheets("TAbelle1")
    Bereich = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
Bereich = WorksheetFunction.Transpose(Bereich)
Verkettung = Join(Bereich, "####")
Verkettung = Replace(Verkettung, ";", ".")
Bereich = Split(Verkettung, "####")
Verkettung = Join(Bereich, "; ")
End Sub


ransi
Anzeige
Replace bzw Join "," nicht ";"! Gruß owT
20.08.2010 11:10:10
Luc:-?
:-?
AW: verketten und ersetzen
20.08.2010 10:21:07
Gerd
Guten Morgen Stefan!
Sub Connect_Cellstrings()
Dim x(), y
x = Application.Transpose(Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)))
y = Join(x, ";")
y = Replace(y, ",", ".")
Cells(2, 2) = y
End Sub
Gruß Gerd
AW: verketten und ersetzen
20.08.2010 11:06:14
Stefan
Hallo Ransi und Gerd,
vielen Dank für die Hilfe. Eure Lösungen sind schon wesentlich eleganter als meine.
Habe jetzt den Code von Gerd noch etwas abgeändert und er funktoniert jetzt wunderbar:
Sub Connect_Cellstrings()
Dim x(), y
x = Application.Transpose(Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp)))
y = Join(x, "; ")
y = Replace(y, ",", ".")
y = Replace(y, ";", ",")
Cells(2, 2) = y
End Sub
An der Thematik, die Daten aus Excel direkt ins Statistikprogramm ("R") zu übertragen, arbeite ich noch.
Wenn Excel die nötigen Funktionen hätte (Wahrscheinlichkeitsnetz, Shapiro-Wilks), würde ich alles mit Excel machen.
Danke nochmal und ein schönes Wochenende.
Stefan
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige