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.
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.
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.
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.
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
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