EXcel Spalten zusammenführen

Hi !

Ich arbeite mit EXcel 2000. Habe in einer Tabelle das Datum zu stehen. Dieses verteilt sich wie folgt:
Spalte A: Tag
Spalte B: Monat
Spalte C: Jahr
Die Spalten sind jeweils als Text formatiert. Die Werte sind zweistellig, also der Tag 1 wird „01“ geschrieben usw. Monat und Jahr dto. Diese Schreibweise wird benötigt, um die Daten in ein Programm einzulesen.
Da ich selbst dieses Programm nicht benutze (die Tabelle wird an denjenigen übergeben, der die Daten dann einspielt), die Daten aber vorher überprüfen möchte, habe ich ein ähnliches Programm. Dieses kommt beim Einlesen allerdings nicht mit dem Datumsformat klar.

Die Daten sollen daher in einer Spalte mit dem Format „25.12.04“ stehen. Habe dazu auch schon die Formel „a1&a2&…“ verwendet. Da ich aber an der Tabelle noch einige andere Änderungen vornehmen muss, hab ich für sämtliche wiederkehrenden Vorgänge ein Makro erstellt.
Die Tabelle besteht aus mehreren Tabellenblättern. Bis einschließlich zum 5 Tabellenblatt funktioniert auch alles bestens.
Doch ab dem 6. Tabellenblatt schreibt er mit in die Zelle (bei mir D1), in der das Datum in zusammengefasster Form auftauchen soll, nur die Formel rein (sogar mit „=“-Zeichen am Anfang) ohne das Ergebnis zu berechnen. Bisher hab ich also immer ab Blatt 6 manuell die Formel aus einem Word-Dokument kopieren müssen, um sie dann über den restlichen Datenbestand zu kopieren.

Nun weiß ich auch, dass man per Daten–>Text in Spalten… den Weg, den ich mir wünsche in umgekehrter Reihenfolge gehen kann, also wenn das Datum in einer Spalte steht, kann man da 3 Spalten draus machen.

Aber wie funktioniert mein Wunsch.

Am liebsten wäre mir, wenn in der „Tabelle nach Makro“ auch die ursprünglichen 3 Spalten nicht mehr vorhanden sind. Könnte aber auch damit leben, wenn es ab Tabellenblatt 6 problemlos klappt.

Bitte die Lösungsschritte möglichst nicht als Makro, da ich eigentlich sämtliche Schritte mit nur einem Makro erledigen will und es mir dazu auch selber erstelle (schreiben kann ich es nicht, sondern nur die Möglichkeiten von EXcel dazu nutzen).

Ich danke schon mal für die Mühen

BARUL76

Hi, BARUL76!

Doch ab dem 6. Tabellenblatt schreibt er mit in die Zelle (bei
mir D1), in der das Datum in zusammengefasster Form auftauchen
soll, nur die Formel rein (sogar mit „=“-Zeichen am Anfang)
ohne das Ergebnis zu berechnen. Bisher hab ich also immer ab

Das wird daran liegen, dass die Spalte D als ebenfalls als Text formatiert wurde. Das Zellenformat muss wenigstens auf „Standard“ eingestellt sein, optional auch als Datum. Bei „Text“ ist eine Formel eben nur ein Text, der wie eine Formel aussieht.

eigentlich sämtliche Schritte mit nur einem Makro erledigen
will und es mir dazu auch selber erstelle (schreiben kann ich
es nicht, sondern nur die Möglichkeiten von EXcel dazu
nutzen).

Hier ein zusätzliches Makro. Dieses rufst Du am Ende (oder an der betreffenden Stelle) einfach auf mit

Call DatumSetzen

Hier also das Makro:

Sub DatumSetzen()
 Dim wsTabelle As Worksheet
 Dim lngZeile As Long
 Dim strFormel As String
 Dim strDatum As String

 For Each wsTabelle In Worksheets
 wsTabelle.Columns(4).NumberFormat = "dd.mm.yyyy"
 wsTabelle.Columns(5).NumberFormat = "dd.mm.yyyy"
 strFormel = "=DATEVALUE(RC[-3]&"".""&RC[-2]&"".""&RC[-1])"
 lngZeile = 1 ' oder andere erste Zeile nach Kopfzeile/Spaltenüberschriften
 Do While wsTabelle.Cells(lngZeile, 1) ""
 ' setzt in Spalte D eine Berechnungsformel rein:
 ' Formel funktioniert natürlich nicht, wenn Du anschließend die Spalten
 ' löschen willst.
 wsTabelle.Cells(lngZeile, 4).FormulaR1C1 = strFormel
 ' oder berechnet das Datum anhand der Werte, schreibt den fixen Wert
 ' in Spalte E
 strDatum = wsTabelle.Cells(lngZeile, 1) & "." & wsTabelle.Cells(lngZeile, 2) \_
 & "." & wsTabelle.Cells(lngZeile, 3)
 If IsDate(strDatum) Then
 wsTabelle.Cells(lngZeile, 5) = CDate(strDatum)
 End If
 lngZeile = lngZeile + 1
 Loop
 Next wsTabelle
End Sub

Wie immer ungetestet/uncompiliert; Du kannst Dir auch das Makro in Dein bestehendes Makro reinkopieren.

Gruß, Manfred

Hi !

Das mit der Formatierung der Spalte wars.

Danke

BARUL76