Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Leerzeichen einfügen - VBA

Forumthread: Leerzeichen einfügen - VBA

Leerzeichen einfügen - VBA
14.06.2006 11:16:23
Wolfgang
Hallo*,
mit dem folgenden Code möchte ich erreichen, dass aus drei Spalten (Postleitzahl, Ort und Ortsteil) der Tabelle "Daten" (also nicht aktives Tabellenblatt)die Daten zusammengefügt werden. Hierzu werden die Daten zunächst in die Hilfsspalten IT-IV kopiert und daraus in die Zwischenablage. Wie kann ich anweisen, dass die Daten dem Sheet "Daten" entnommen werden und was muß ich ändern, damit ich zunächst ein Leerzeichen nach PLZ und Ort einfügen lassen kann. Wie muß ich dann den Code dann ergänzen, damit die zusammengeführten Daten, die sich nun in der Zwischenablage befinden, wiederum in das aktive Blatt (nicht Blatt Daten) Spalte F eingefügt werden. Herzlichen Dank schon jetzt Allen für die Hilfestellung.
Herzliche Grüße
Wolfgang

Private Sub Ort()
Dim PLZ As Range, Ort As Range, Ortsteil As Range, wks As Worksheet
Set wks = ActiveSheet
'PLZ und Ort und Ortsteil in Spalte F eintragen
Set PLZ = wks.Range(Cells(3, "N"), Cells(wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1, "N"))
Set Ort = wks.Range(Cells(3, "L"), Cells(wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1, "L"))
Set Ortsteil = wks.Range(Cells(3, "M"), Cells(wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1, "M"))
'Zellinhalte in anderen Tabellenbereich übertragen
Sheets("Daten").Activate
Range(Cells(3, "IT"), Cells(wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1, "IT")).Value = PLZ.Value
Range(Cells(3, "IU"), Cells(wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1, "IU")).Value = Ort.Value
Range(Cells(3, "IV"), Cells(wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1, "IV")).Value = Ortsteil.Value
'Zellinhalte kopieren
Range(Cells(3, "IT"), Cells(wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1, "IV")).Copy
End Sub

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leerzeichen einfügen - VBA
14.06.2006 11:36:13
u_
Hallo,
wozu denn die Kopiererei?

Private Sub Ort()
Dim PLZ As Range, Ort As Range, Ortsteil As Range, rngAdresse As Range
Dim i As Long, lngRows As Long
Application.ScreenUpdating = False
lngRows = wks.UsedRange.Row + wks.UsedRange.Rows.Count - 1
'PLZ und Ort und Ortsteil in Spalte F eintragen
Set PLZ = wks.Range(Cells(3, "N"), Cells(lngRows, "N"))
Set Ort = wks.Range(Cells(3, "L"), Cells(lngRows, "L"))
Set Ortsteil = wks.Range(Cells(3, "M"), Cells(lngRows, "M"))
Set rngAdresse = wks.Range(Cells(3, "F"), Cells(lngRows, "F"))
For i = 1 To PLZ.Rows.Count
rngAdresse.Cells(i) = PLZ.Cells(i) & " " & Ort.Cells(i) & " " & Ortsteil.Cells(i)
Next i
Application.ScreenUpdating = True
End Sub
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
Anzeige
AW: Leerzeichen einfügen - VBA
14.06.2006 11:50:37
Wolfgang
Hallo U_,
Danke für Deine schnelle Rückmeldung - Ich habe Deinen Code eingearbeitet, es erscheint aber eine Fehlermeldung bei wks.UsedRange.Row mit dem Hinweis Variable nicht definiert; Was kann ich da ändern? - Danke schon jetzt wieder für Deine Antwort.
Gruß - Wolfgang
AW: Leerzeichen einfügen - VBA
14.06.2006 11:56:01
u_
Hallo,
mein Fehler. Sorry
Ersetze wks durch activesheet.
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
Anzeige
AW: Leerzeichen einfügen - VBA
14.06.2006 12:08:44
Wolfgang
Hallo u_,
erneut herzlichen Dank. Die Umstellung war erfolgreich; Nur eine Frage/Bitte noch. Diese Umstellung erfolgt ja nun in der jeweils aktuellen Tabelle. Wie müßte der Code umgestellt werden, wenn ich das im Blatt "Daten", welches ausgeblendet ist, ablaufen lassen möchte? - Sorry, ich hatte mich im ersten Beitrag wohl unglücklich ausgedrückt. Bin aber jetzt schon sehr froh über Deine Änderungen.- Danke schon wieder für Deine Rückmeldung.
Gruß
Wolfgang
Anzeige
AW: Leerzeichen einfügen - VBA
14.06.2006 12:39:29
u_
Hallo,
also alles im Blatt "Daten"?

Private Sub Ort()
Dim PLZ As Range, Ort As Range, Ortsteil As Range, rngAdresse As Range
Dim i As Long, lngRows As Long
Dim wks As Worksheet
Set wks = Sheets("Daten")
Application.ScreenUpdating = False
With wks
lngRows = .UsedRange.Row + .UsedRange.Rows.Count - 1
'PLZ und Ort und Ortsteil in Spalte F eintragen
Set PLZ = .Range(.Cells(3, "N"), .Cells(lngRows, "N"))
Set Ort = .Range(.Cells(3, "L"), .Cells(lngRows, "L"))
Set Ortsteil = .Range(.Cells(3, "M"), .Cells(lngRows, "M"))
Set rngAdresse = .Range(.Cells(3, "F"), .Cells(lngRows, "F"))
End With
For i = 1 To PLZ.Rows.Count
rngAdresse.Cells(i) = PLZ.Cells(i) & " " & Ort.Cells(i) & " " & Ortsteil.Cells(i)
Next i
Application.ScreenUpdating = True
End Sub

Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
Anzeige
AW: Leerzeichen einfügen - VBA
14.06.2006 12:51:37
Wolfgang
Hallo U_,
das klappt einfach nur super. Genau so! Tausend Dank und weiterhin alles Gute!!!!
Gruß - Wolfgang
;
Anzeige
Anzeige

Infobox / Tutorial

Leerzeichen in Excel mit VBA einfügen


Schritt-für-Schritt-Anleitung

Um Leerzeichen in Excel mit VBA einzufügen, kannst du den folgenden Code verwenden. In diesem Beispiel werden die Daten aus drei Spalten (Postleitzahl, Ort und Ortsteil) aus einem Blatt namens "Daten" zusammengefügt. Dabei wird ein Leerzeichen zwischen den einzelnen Werten eingefügt.

Private Sub Ort()
    Dim PLZ As Range, Ort As Range, Ortsteil As Range, rngAdresse As Range
    Dim i As Long, lngRows As Long
    Dim wks As Worksheet
    Set wks = Sheets("Daten") ' Das Arbeitsblatt, in dem die Daten liegen
    Application.ScreenUpdating = False

    With wks
        lngRows = .UsedRange.Row + .UsedRange.Rows.Count - 1
        ' PLZ, Ort und Ortsteil festlegen
        Set PLZ = .Range(.Cells(3, "N"), .Cells(lngRows, "N"))
        Set Ort = .Range(.Cells(3, "L"), .Cells(lngRows, "L"))
        Set Ortsteil = .Range(.Cells(3, "M"), .Cells(lngRows, "M"))
        Set rngAdresse = .Range(.Cells(3, "F"), .Cells(lngRows, "F"))
    End With

    For i = 1 To PLZ.Rows.Count
        rngAdresse.Cells(i) = PLZ.Cells(i) & " " & Ort.Cells(i) & " " & Ortsteil.Cells(i)
    Next i

    Application.ScreenUpdating = True
End Sub

Dieser Code fügt in der Spalte F des aktiven Blattes die Werte aus den Spalten N, L und M zusammen, jeweils getrennt durch ein Leerzeichen.


Häufige Fehler und Lösungen

Fehler: "Variable nicht definiert" bei wks.UsedRange.Row
Lösung: Stelle sicher, dass du die Variable wks korrekt definierst. Wenn du ActiveSheet nutzen möchtest, ändere die Zeile Set wks = Sheets("Daten") zu Set wks = ActiveSheet.

Fehler: Leerzeichen werden nicht eingefügt.
Lösung: Überprüfe, ob du die richtigen Spalten und Zeilen referenzierst. Stelle sicher, dass die Formeln korrekt und die Bereiche richtig gesetzt sind.


Alternative Methoden

Falls du keine VBA-Lösung nutzen möchtest, kannst du auch die Funktion TEXTVERKETTEN in Excel verwenden, um Leerzeichen zwischen den Zellen einzufügen.

=TEXTVERKETTEN(" "; WAHR; N3; L3; M3)

Diese Funktion kann in einer Excel-Zelle eingegeben werden und fügt die Werte mit einem Leerzeichen ein.


Praktische Beispiele

Beispiel 1: Zusammenfügen von Name und Vorname in einer Tabelle:

Private Sub NamenZusammenfuegen()
    Dim rngNamen As Range, rngVornamen As Range, rngZiel As Range
    Dim i As Long

    Set rngNamen = Range("A1:A10") ' Spalte mit Nachnamen
    Set rngVornamen = Range("B1:B10") ' Spalte mit Vornamen
    Set rngZiel = Range("C1:C10") ' Zielspalte für die zusammengeführten Namen

    For i = 1 To rngNamen.Rows.Count
        rngZiel.Cells(i) = rngNamen.Cells(i) & " " & rngVornamen.Cells(i)
    Next i
End Sub

Hier werden Nachnamen und Vornamen zusammengefügt und in die Spalte C geschrieben.


Tipps für Profis

  • Verwende Application.ScreenUpdating = False, um die Ausführungsgeschwindigkeit zu erhöhen, insbesondere bei großen Datenmengen.
  • Teste deinen VBA-Code immer in einer Kopie deiner Datei, um Datenverlust zu vermeiden.
  • Nutze die Debug.Print-Funktion, um Variablen während der Ausführung zu überwachen, falls du Probleme beim Ausführen des Codes hast.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Leerzeichen zwischen den Werten einfügen?
Du kannst den Code anpassen, indem du die Anzahl der Leerzeichen anpasst, z.B. rngAdresse.Cells(i) = PLZ.Cells(i) & " " & Ort.Cells(i) & " " & Ortsteil.Cells(i).

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der gezeigte VBA-Code sollte in allen Excel-Versionen funktionieren, die VBA unterstützen. Achte jedoch darauf, dass die Funktionen in den neueren Versionen möglicherweise zusätzliche Möglichkeiten bieten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige