Clever-Excel-Forum

Normale Version: Datum kopieren von Datumändern nach Tabelle1
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo ihr guten Helfer,
habe 2 Makro Probleme und bitte darum wieder mal um Hilfe.

Problem 1:
Wenn ich die Datum von "Datumändern" Spalten "A","B","C" nach "Tabelle1" "AC","AE","AG" kopiere
funktioniert das Makro einwandfrei.

Neu sind aber in "Datumändern" die die Datum nicht mehr in den Spalten  "A","B","C" sondern in
den Spalten "AC","AE","AG". Habe das Makro angepasst, leider funktioniert es nicht mehr.
Was stimmt bei diesem Makro nicht ?

Problem 2:
Wenn ich an Stelle der ganzen Spalten von "Datumändern" nach "Tabelle1" nur die Zellen kopieren möchte,
die einen Datum Eintrag haben, wie würde das Makro aussehen ?

(Die alten Datum in "Tabelle1" sollten nur überschrieben werden, wenn in "Datumändern" neue Datum vorhanden sind,
nicht aber mit leeren Zellen)

Ich kriege es nicht hin. 91   Würde mich freuen wenn mir jemand helfen würde.
Mit dankbaren Grüssen
Martin
Hallo luna,
hier die beiden Makros:
Code:
Option Explicit
Option Base 1
Sub IntelligentKopieren()
Const Qstartzeile = 4 ' ggfls.anpassen
Const Zstartzeile = 7 ' ggfls.anpassen
Dim Quellspalten, Zielspalten
Dim Bquell As Object, Bziel As Object, AnzSpal As Long, spal As Long
Dim LetzteZeile As Long, zeile As Long
  Quellspalten = Array(29, 30, 31) ' ggfls.anpassen
  Zielspalten = Array(29, 31, 33) ' ggfls.anpassen
  Set Bquell = Sheets("Datumändern") ' ggfls.anpassen
  Set Bziel = Sheets("Tabelle1") ' ggfls.anpassen
  AnzSpal = UBound(Quellspalten)
  With Bquell
    For spal = 1 To AnzSpal
      LetzteZeile = WorksheetFunction.Max(LetzteZeile, .Cells(.Rows.Count, Quellspalten(spal)).End(xlUp).Row)
      For zeile = Qstartzeile To LetzteZeile
        If Not IsEmpty(.Cells(zeile, Quellspalten(spal))) Then
          Bziel.Cells(Zstartzeile + zeile - Qstartzeile, Zielspalten(spal)).Value = .Cells(zeile, Quellspalten(spal)).Value
        End If
      Next zeile
    Next spal
  End With
End Sub
Sub Kopieren_Daten_von_Spalten_ACbisAE_nach_Tabelle1()
   Cells(1, 1).Select
   Sheets("Datumändern").Range("AC3:AC" & Cells(Rows.Count, 29).End(xlUp).Row).Copy
   Sheets("Tabelle1").Range("AC7").PasteSpecial xlPasteValues
   Sheets("Datumändern").Range("AD3:AD" & Cells(Rows.Count, 30).End(xlUp).Row).Copy
   Sheets("Tabelle1").Range("AE7").PasteSpecial xlPasteValues
   Sheets("Datumändern").Range("AE3:AE" & Cells(Rows.Count, 31).End(xlUp).Row).Copy
   Sheets("Tabelle1").Range("AG7").PasteSpecial xlPasteValues
 
   Sheets(1).Activate
   Cells(1, 1).Select
End Sub
Das letzte ist an die Dateistruktur angepasst, nicht an Deinen Text. Du musst schon die Spalten ansprechen, die Du anreden willst. Das gilt auch für die Spaltennummer in Cells(Rows.Count, 1).End(xlUp).
Das Intelligent...Makro kommt ohne Select etc. aus und ist anpassungsfähig an andere Dateien/Strukturen.
Guten Tag AlteDresdner,
vorerrst mal danke für deine Hilfsbereitschaft, uns "Leien" bei den
Problemen so selbstlos zu helfen.   18 

Deine Makro funktionieren wie üblich, hervorragend.
Werde sie mal genauer studieren und wieder etwas lernen.
Wünsche noch ein schöner Tag und nochmals besten Dank.

Gruss Martin
Guten Morgen Alter Dresdner

benötige wieder mal Hilfe.
habe meine Mappe erweitert und nun stimmt etwas nicht mehr.
Es werden mehr Daten nach "Tabelle1" kopiert, als bei "Datum_ändern" vorhanden sind
und ich weis nicht woher sie kommen.

Wäre froh um deine Hilfe.
Gruss Martin
Hallo Alter Drestner
Bitte um Entschuldigung, habe in Beitrag (Post 4) zwei Zahlen verwechselt. Angry
Neu sollte es so geschrieben sein: Zielspalten = Array(29, 33, 31) ' ggfls.anpassen

Beim Rückkopieren werden die Einträge um 1 Zeile verschoben eingetragen.
Gruss Martin
Hallo allerseits,
habe mein Fehler gefunden.
Die Makro sind gut. Alles funktoniert. Thumbsupsmileyanim
Grus Martin
Hallo Namensvetter,
da bin ich aber froh. War eine Woche außerhalb des Internets unterwegs (doch doch, das geht!).
By the way: Mein bürgerlicher Vorname ist Martin 19
Guten Abend AlterDresdner (Martin)

dein Makro "Intelligentkopieren" hat mir bis jetzt sehr gute Dienste geleistet.
Nun habe ich in den Zellen auch noch Formeln und darum interpretiert
das Makro die Zelle nicht als leer und überschreibt somit in der Ziel-Zelle
der alte Eintrag mit leer. Gibt es eiine Möglichkeit, dies zu ändern?

(Die alten Datum in "Tabelle1" sollten nur überschrieben werden, wenn in "Datumändern" neue Datum vorhanden sind,
nicht aber mit leeren Zellen, oder wenn Formeln vorhanden sind.)

Wäre dankbar, wenn du mir dias Makro anpassen würdest.
Mit Freundlichhen Grüssen
Martin