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

Daten von eine in die andere Tabelle übertragen

Daten von eine in die andere Tabelle übertragen
eine
Gibt es hierzu eine Makro Lösung?
Ich habe zwei Sheets:
1. Disposition
2. NMPKurz
Ich möchte die Daten aus der Disposition in NMPKurz in einer anderen Anordnung übertragen.
Hierzu habe ich eine Beispielsdatei eingestellt.
https://www.herber.de/bbs/user/71160.xls
Danke Achim

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Daten von eine in die andere Tabelle übertragen
21.08.2010 14:20:27
eine
Hallo Achim,
Makrolösungen gibt es zu fast allem.
Die erforderlichen/gewünschten Formatierungen machen das Ganze jedoch etwas aufwendiger.
In deiner Datei findest du jetzt ein entsprechendes Makro.
https://www.herber.de/bbs/user/71165.xls
Gruß
Franz
AW: Daten von eine in die andere Tabelle übertragen
21.08.2010 14:42:51
eine
Hallo Franz
Eine Super arbeit.
An einer stelle macht das makro zicken
Default:= Format usw. (DateSerial(Ye
kannst du bitte noch mal schauen
AW: Daten von eine in die andere Tabelle übertragen
21.08.2010 15:00:10
eine
Hallo Franz
Bei Änderung des Datum von 01.08.2010 auf 01.09.2010 kommt dann die Meldung wie in der ersten Antwort beschrieben. Kann es sein wenn der Monat nicht 31 Tage hat das das ein Problem ist?
Danke
Gruß Achim
Anzeige
AW: Daten von eine in die andere Tabelle übertragen
21.08.2010 19:08:03
eine
Hallo Achim,
mit den Daten in deiner Beispiel-Datei hatte ich unter Excel 2007 keine Probleme. Anfangs- und Endedatum spielen keine Rolle. Die Anzahl Tage ist nur durch die max. Anzahl Spalten des Tabellenblatts begrenzt.
Kann es sein, dass die Datumsangeben als Text in den Zellen stehen und nicht als Excel-Datum/Zahl. Dies passiert häufig wenn Daten importiert werden. Dann gibt es Probleme im Makro rund um die Daumsangaben.
Falls ja, dann füge nachfolgende Text-Datums-Konversion für die Spalte F der Disposition ein.
Die einfache Variante zur Konversion sollte in deinem Fall reichen.
Gruß
Franz
Sub Daten_umgruppieren()
Dim StatusCalc
'Makrobremsen lösen
With Application
.EnableEvents = False
StatusCalc = .Application.Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
On Error GoTo Fehler
Set wksDispo = Worksheets("Disposition")
'Blatt zum Umgruppieren setzen
Set wksNMP = Worksheets("NMPkurz")
sMsgTitel = "Daten umgruppieren"
'DatumKonvertieren
With wksDispo
Call TextZuDatum(Zellbereich:=.Range(.Cells(Zeile_1, 6), _
.Cells(.Rows.Count, 6).End(xlUp)))
'    Call TextZuDatum2(Zellbereich:=.Range(.Cells(Zeile_1, 6), _
.Cells(.Rows.Count, 6).End(xlUp)), Pos1J:=7, Len_J:=4, _
Pos1M:=4, Len_M:=2, Pos1T:=1, Len_T:=2)
End With
Call AltdatenLoeschen
If Titelzeilen = False Then GoTo Beenden
Call DatenUbertragen
wksNMP.Activate
Range("E3").Select
'Fehlerbehandlung
Fehler:
With Err
Select Case .Number
Case 0 'kein Fehler
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
Beenden:
'Makrobremsen zurücksetzen
With Application
.EnableEvents = True
.Calculation = StatusCalc
.ScreenUpdating = True
End With
End Sub
Sub TextZuDatum(Zellbereich As Range)
Dim Zelle As Range
'Wandelt als Datum interpretierbare Texte in Zellen in Excel-Datum um.
'Vorsicht bei Datum im US-Format!!
'Funktionioniert zuverlässig nur wenn Datumsschreibweise wie Systemeinstellung oder _
im ISO-Format JJJJ-MM-DD
With Zellbereich
.NumberFormat = "General"
For Each Zelle In .Cells
If IsDate(Zelle.Text) Then
Zelle.Value = CDate(Zelle.Text)
End If
Next
End With
End Sub
Sub TextZuDatum2(Zellbereich As Range, Pos1J&, Len_J&, Pos1M&, Len_M&, Pos1T&, Len_T&)
Dim Zelle As Range, sJahr$, sMonat$, sTag$
'Wandelt als Datum interpretierbare Texte in Zellen in Excel-Datum um.
'Position und Länge von Jahr,Monat,Tag im Textstring muss immer gleich sein
'Textteile werden ins ISO-Format JJJJ-MM-DD umgesetzt, dann konvertiert
With Zellbereich
.NumberFormat = "General"
For Each Zelle In .Cells
sJahr = Mid(Zelle.Text, Pos1J, Len_J)
sMonat = Mid(Zelle.Text, Pos1M, Len_M)
sTag = Mid(Zelle.Text, Pos1T, Len_T)
If IsDate(sJahr & "-" & sMonat & "-" & sTag) Then
Zelle.Value = CDate(sJahr & "-" & sMonat & "-" & sTag)
End If
Next
End With
End Sub

Anzeige
Danke
22.08.2010 19:32:53
Achim
Hallo Franz
Danke für deine Super arbeit. Hurt ab. Werde erst am Di die Möglichkeit haben zu testen.
Nochmals danke und Gruß Achim
Danke
22.08.2010 19:33:43
Achim
Hallo Franz
Danke für deine Super arbeit. Hurt ab. Werde erst am Di die Möglichkeit haben zu testen.
Nochmals danke und Gruß Achim
Danke
22.08.2010 19:34:04
Achim
Hallo Franz
Danke für deine Super arbeit. Hurt ab. Werde erst am Di die Möglichkeit haben zu testen.
Nochmals danke und Gruß Achim

334 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige