Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Text in Spalte per Makro

Text in Spalte per Makro
09.01.2015 13:01:10
Tobias
Hallo,
ich habe ein Problem, über das ich eine ganze Menge gelesen habe, jedoch trotzdem nicht zur Lösung komme da ich mich mit Makros nicht auskenne.
Ich habe eine Tabelle kopiert und benötige von einer Spalte nur einen gewissen Teil.
Ist an sich per "Text in Spalten" kein Problem. Ich suche jedoch eine Makro-Lösung.
Die Zellen sind in folgendem Format : 08.01.2014 15:04
Zwischen dem Datum un der Uhrzeit befindet sich ein Leerzeichen.
Ich benötige jedoch nur das Datum.
Ist für euch bestimmt eine leichte Übung, ich jedoch bin am verzweifeln.
Danke & Gruß

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text in Spalte per Makro
09.01.2015 13:05:51
Klaus
Hallo Tobias,
Text-in-Spalten kannst du doch einfach Makrorekordern!
Datums/Zeit Zellen können in gefühlt 1000 Variationen vorliegen, dass fasse ich ohne Musterdatei nicht an :-) Hast aber recht, sollte eine einfache Übung sein.
Grüße,
Klaus M.vdT.

AW: Text in Spalte per Makro
09.01.2015 13:31:45
Tobias
Hallo Klaus,
ich hab etwas Blödsinn erzählt habe ich gerade gesehen
Das Ausgangsformat ist : 08.01 15:04
Wenn ich Text in Spalten anwende, wandelt er automatisch in ein Datum um....
Ich habe mal eine Musterdatei
https://www.herber.de/bbs/user/94884.xls

Anzeige
AW: Text in Spalte per Makro
09.01.2015 13:42:35
Klaus
Hi,
du hast recht, Text-In-Spalten formatiert die Spalte A um. Lösung: einfach im Makro zurück formatieren.
Sub TextSpaltenMakro()
Const AbZeile As Long = 3
Const inSpalte As Long = 1
Dim bisZeile As Long
With ActiveSheet
bisZeile = .Cells(.Rows.Count, inSpalte).End(xlUp).Row
.Range(.Cells(AbZeile, inSpalte), .Cells(bisZeile, inSpalte)).TextToColumns Destination:=. _
Range("A" & AbZeile), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
.Range(.Cells(AbZeile, inSpalte), .Cells(bisZeile, inSpalte)).NumberFormat = "dd/mm/"
End With
End Sub
Geht auch ganz ohne VBA!
Ab B3 die Formel
=A3-DATUM(JAHR(A3);MONAT(A3);TAG(A3))
runter kopieren. Spalte A als Datum "TT.MM" formatieren, Spalte B als Uhrzeit "hh:mm".
Grüße,
Klaus M.vdT.

Anzeige
AW: Text in Spalte per Makro
09.01.2015 13:54:28
Tobias
Ok das hat schon mal ganz gut funktioniert.
2 Anpassungen wären jetzt noch super.
In der Zieldatei ist das Format 08.01.2015 nicht 08.01
&
Beim einkopieren ist es in Spalte B nicht in A.
Ich weis leider nicht wie ich den VBA anpassen kann :s
Gruß
Tobias

Anzeige
AW: Text in Spalte per Makro
09.01.2015 14:42:42
Klaus
Tobias, ein bisschen selber ausprobieren ist erlaubt. Der Computer explodiert schon nicht!
Sub TextSpaltenMakro()
Const AbZeile As Long = 3
Const inSpalte As Long = 2
Dim bisZeile As Long
With ActiveSheet
bisZeile = .Cells(.Rows.Count, inSpalte).End(xlUp).Row
.Range(.Cells(AbZeile, inSpalte), .Cells(bisZeile, inSpalte)).TextToColumns Destination:=.  _
_
Range("B" & AbZeile), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
.Range(.Cells(AbZeile, inSpalte), .Cells(bisZeile, inSpalte)).NumberFormat = "dd/mm/yyyy"
End With
End Sub
Ist ziemlich offensichtlich, wenn man es so vor sich sieht, oder?
Grüße,
Klaus M.vdT.

Anzeige
AW: Text in Spalte per Makro
09.01.2015 14:44:08
Tobias
Gott wie unangenehm....
wer lesen kann ist klar im Vorteil.
Klappt exzellent jetzt.
Vielen Dank !

Danke für die Rückmeldung! owT.
09.01.2015 14:49:49
Klaus
.

AW: Text in Spalte per Makro
09.01.2015 13:08:10
Rudi
Hallo,
wenn es wirklich ein Datum und kein Text ist, muss du doch nur das Format der Spalte auf TT.MM.JJJJ ändern.
Gruß
Rudi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Text in Spalte per Makro


Schritt-für-Schritt-Anleitung

Um Text in Spalten mithilfe von VBA zu bearbeiten, kannst du folgendes Makro verwenden. Dieses Beispiel geht davon aus, dass sich die zu bearbeitenden Daten in der ersten Spalte (A) ab Zeile 3 befinden und das Ziel in Spalte B ist.

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere und füge folgendes Makro ein:
Sub TextSpaltenMakro()
    Const AbZeile As Long = 3
    Const inSpalte As Long = 1
    Dim bisZeile As Long
    With ActiveSheet
        bisZeile = .Cells(.Rows.Count, inSpalte).End(xlUp).Row
        .Range(.Cells(AbZeile, inSpalte), .Cells(bisZeile, inSpalte)).TextToColumns Destination:=. _
        Range("B" & AbZeile), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
        .Range(.Cells(AbZeile, inSpalte), .Cells(bisZeile, inSpalte)).NumberFormat = "dd/mm/yyyy"
    End With
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro aus, indem du auf Entwicklertools > Makros klickst und dein Makro auswählst.

Häufige Fehler und Lösungen

Problem: Das Datum wird nicht im gewünschten Format angezeigt.
Lösung: Stelle sicher, dass du die richtige Formatierung im Makro verwendest. In der Zeile .NumberFormat = "dd/mm/yyyy" kannst du das Format nach deinen Wünschen anpassen.

Problem: Text in Spalten funktioniert nicht wie erwartet.
Lösung: Überprüfe, ob die Daten in der richtigen Spalte sind und dass kein unerwartetes Leerzeichen oder Zeichen in den Zellen vorhanden ist.


Alternative Methoden

Falls du keine VBA-Lösung verwenden möchtest, kannst du auch die Excel-Funktion TEXT nutzen, um das Datum in der richtigen Form anzuzeigen. Hier ein einfaches Beispiel:

  • In Zelle B3 kannst du folgende Formel verwenden:
=TEXT(A3; "TT.MM.JJJJ")

Damit wird das Datum aus Zelle A3 in das Format „TT.MM.JJJJ“ umgewandelt. Kopiere die Formel anschließend nach unten für die restlichen Zellen.


Praktische Beispiele

Angenommen, du hast folgende Daten in Spalte A:

A
08.01 15:04
09.01 16:05

Nach Ausführung des Makros wird die Spalte B wie folgt aussehen:

B
08.01.2015
09.01.2015

Die Uhrzeit wird entfernt und das Datum korrekt formatiert.


Tipps für Profis

  • Experimentiere mit der TextToColumns-Methode in VBA, um verschiedene Delimiter (z.B. Komma oder Semikolon) zu verwenden, je nach deinen Daten.
  • Du kannst das Makro so anpassen, dass es automatisch für mehrere Spalten funktioniert, indem du eine Schleife hinzufügst.
  • Nutze Option Explicit zu Beginn deiner Module, um sicherzustellen, dass alle Variablen deklariert sind, was die Fehlersuche erleichtert.

FAQ: Häufige Fragen

1. Kann ich das Makro auch für andere Spalten verwenden?
Ja, ändere einfach die Konstante inSpalte im Makro, um die gewünschte Spalte anzugeben.

2. Was mache ich, wenn ich mehr als nur das Datum benötige?
Du kannst das Makro entsprechend anpassen, um weitere Spalten zu verarbeiten oder zusätzliche Daten zu extrahieren.

3. Wie kann ich das Makro automatisieren?
Du kannst das Makro so einstellen, dass es beim Öffnen der Datei oder beim Ändern einer bestimmten Zelle automatisch ausgeführt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige