Clever-Excel-Forum

Normale Version: Tabelle 1 achivieren.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Abend Leute......

Bin neu hier, und mit meinem Latein am Ende...... :22:
Habe schon oft nützliche Tips gefunden, doch leider nicht hier für. 

Ich habe eine Tabelle, die jeden Tag nach 0 Uhr geleert wird, und neu beschrieben wird. Das zuvor geschrieben soll über einen Button archiviert werden. 
Das funktioniert soweit auch. Sobald ich es aber neu archivieren möchte, kommt die Meldung: "Es sind bereits Daten vorhanden. Diese Überschreiben". Das sollte eben nicht passieren.
Die Liste sollte fortlaufend geführt werden. So das ich über einen Filter z.b Einträge von 6 Monaten finden könnte. 
Ich verzweifel noch.....:( 

In einer älteren Version hat das wunderbar funktioniert. Doch Leider mussten wir die Tabelle anpassen, und seit dem geht es nicht mehr. 
Habe das Forum rauf und runter durchsucht. Habe ähnliche Themen gefunden, doch leider funktionierte das nicht.
Vielleicht kann mir jemand helfen, und mir evtl. sagen, was ich Doofkopp da jetzt falsch gemacht habe..........

Danke schon mal im Voraus für eure Hilfen.

Hier ist die Datei....
Hallo,

ich kann keinen Unterschied zwischen jetziger und vorheriger Version erkennen. Blush

Gruß Uwe
Guten Abend Uwe

Hier eine Datei wie es vorher aussah, und funktionierte.

Vielen Dank fürs gucken
Hallo

hier mal ein verbesserter Code ohne die ganzen Select des Makrorecorders. Die Zeilen sind überflüssig!
Ob das Sortieren im Archiv notwendig ist weiss ich nicht? Deshalb zwei Makros. Ohne oder mit Sortierung ...

mfg Gast 123


Code:
'Makro OHNE Sortierung
Sub insArchiv()
' insArchiv Makro
   'LastZell +1 in Archiv ermitteln
   lz1 = Sheets("Archiv").Cells(Rows.Count, 2).End(xlUp).Row + 1
   
   Sheets("Tabelle1").Range("C7:I64").Copy
   Sheets("Archiv").Cells(lz1, 2).PasteSpecial xlPasteValues
   Application.CutCopyMode = False
   
   Sheets("Tabelle1").Range("C7:I64").ClearContents
   Range("C1").Select
End Sub


'Makro MIT Sortierung
Sub insArchiv_Sort()
' insArchiv Makro
With ActiveWorkbook.Worksheets("Archiv")
   'LastZell +1 in Archiv ermitteln
   lz1 = .Cells(Rows.Count, 2).End(xlUp).Row + 1
   
   Sheets("Tabelle1").Range("C7:I64").Copy
   .Cells(lz1, 2).PasteSpecial xlPasteValues
   Application.CutCopyMode = False
   
   lz1 = .Cells(Rows.Count, 2).End(xlUp).Row
   .Sort.SortFields.Clear
   .Sort.SortFields.Add Key:=Range("H6"), SortOn:=xlSortOnValues, _
     Order:=xlAscending, DataOption:=xlSortNormal
   With .Sort
       .SetRange Range("B6:H" & lz1)
       .Header = xlNo
       .MatchCase = False
       .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
       .Apply
   End With
End With
End

   Range("C7:I64").ClearContents
   Range("C1").Select
End Sub
Guten Abend Gast 123.....:)

Danke, das werde ich Morgen auf der Arbeit direkt mal Probieren.
Lg
Mahlzeit zusammen.
Hallo Gast 123.

Funktioniert mit oder ohne Sortierung auf der alten Liste super. 
Wenn ich das jetzt auf die neue Anpasse, schmeißt der ne Fehlermeldung aus, oder kopiert archiviert nur die ersten 3 Reihen.

Die verbundenen Zeilen nimmt der gar nicht mit.... :22: :22:



Sub insArchiv_Sort()

' insArchiv Makro

With ActiveWorkbook.Worksheets("Archiv")
    
   'LastZell +1 in Archiv ermitteln
   lz1 = .Cells(Rows.Count, 6).End(xlUp).Row + 1
   
   Sheets("Tagesbericht").Range("C7:AN606").Copy
   .Cells(lz1, 6).PasteSpecial xlPasteValues
   Application.CutCopyMode = False
   
   lz1 = .Cells(Rows.Count, 6).End(xlUp).Row
   .Sort.SortFields.Clear
   .Sort.SortFields.Add Key:=Range("AN6"), SortOn:=xlSortOnValues, _
     Order:=xlAscending, DataOption:=xlSortNormal
   With .Sort
       .SetRange Range("B6:AN" & lz1)
       .Header = xlNo
       .MatchCase = False
       .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
       .Apply
   End With
End With
End

   Range("C7:AN606").ClearContents
   Range("C1").Select
End Sub
(25.12.2019, 19:30)Digger5000 schrieb: [ -> ]Ich habe eine Tabelle, die jeden Tag nach 0 Uhr geleert wird, und neu beschrieben wird. Das zuvor geschrieben soll über einen Button archiviert werden. 

Moin!
Wenn Du eine exakt dafür vorgesehene Vorlagendatei mit der Endung .xltx nimmst,
und jeden Tag eine neue Datei auf Basis dieser Vorlage erstellst,
und sie sofort unter einem Namen (incl. Datum?) abspeicherst,
dann ersparst Du Dir das überflüssige VBA!

Lesefutter:
https://support.office.com/de-de/article...8baec39e1e

Gruß Ralf
Hallo Ralf.

Ja das würde auch funktionieren. Jedoch habe ich dann nach 1 Jahr 365 Dateien. 
Die Tabelle dient zur Dokumentation im 24 Std. Betrieb. Sobald es nach 0 Uhr ist wird sie kopiert, deswegen auch der Button Markierung, über Copy Paste in eine Mail Vorlage kopiert und versendet. 
Danach soll dann alles archiviert werden, und geleert damit die für den Folge Tage wieder zu verwendet ist.

So habe ich die Möglichkeit rückwirkende Sachen über die Filterfunktion schnell noch mal zu finden. Deswegen der Aufwand mit dem VBA Projekt. 
in der Alten Liste hat das auch super funktioniert. Doch musste die Liste ein wenig angepasste werden. Und nun bin ich nur bei der Archivierung mit dem Latein am Ende   Confused Confused

Lg Andreas
Hallo,
Erstelle mal eine Tabelle ohne verbundene Zellen ... Vielleicht klappt dann dein Code. Verbundene Zellen sind Mist.

Gruß
Marcus
(26.12.2019, 15:06)marose67 schrieb: [ -> ]Hallo,
Erstelle mal eine Tabelle ohne verbundene Zellen ... Vielleicht klappt dann dein Code. Verbundene Zellen sind Mist.

Gruß
Marcus

Hallo Marcus.

Das ist meine Befürchtung. Wenn du dir Oben die alte Liste ansiehst, die Funktioniert einwandfrei. 

Lg Andreas
Seiten: 1 2