Bekomme das Makro einfach nicht hin!

Bild

Betrifft: Bekomme das Makro einfach nicht hin!
von: Jo
Geschrieben am: 03.09.2015 01:38:49

Hallo an alle Speziallisten,
Es ist ein Tabellenblatt das momentan 2 Seiten hat, es soll aber eine Endlosliste werden. Dabei sollte immer die letzte Seite (jetzt Seite 2) mit allen Formeln und Formaten auf die nächste Seite (dann Seite 3)kopiert werden. Ich werde natürlich auf Seite 1 und Seite 2 Einträge machen, die von mir gemachten Einträge sollten wenn möglich beim kopieren gelöscht werden, sodass die Seite bis auf die Formeln und Formate leer ist. Die Einträge von Zeile 33 und Spalte B33 - B52 usw. und alles was unterhalb der Tabelle steht sollte bestehen bleiben.
Geht das?
Ich habe es schon über Makro - Aufzeichnen versucht aber leider keinen Erfolg gehabt.
Ich bitte um dringende Hilfe.
Besten Dank im Voraus, für eure Bemühungen.
Eine Beispieldatei schicke ich mit.
https://www.herber.de/bbs/user/99990.xls
Gruß Jo

Bild

Betrifft: AW: Bekomme das Makro einfach nicht hin!
von: fcs
Geschrieben am: 03.09.2015 03:43:31
Hallo Jo,
hier ein Makro, mit dem du weiterkomen solltets.
Gruß
Franz

Sub Copy_neue_Woche()
    Dim wks As Worksheet
    Dim Zeile_L As Long, Zeile1 As Long, Zeile2 As Long
    Dim AnzZeilen As Long
    Dim rngCopy As Range
    
    Set wks = ActiveWorkbook.Sheets("Wochenverkauf")
    AnzZeilen = 29 'Zeilen pro Seite
    With wks
        'letzte Zeile in Spalte H - Zeile mit DIFFERENZ
        Zeile_L = .Cells(.Rows.Count, 8).End(xlUp).Row
        'zu kopierender Bereich der letzten Woche
        Set rngCopy = .Range(.Rows(Zeile_L - AnzZeilen + 1), .Rows(Zeile_L))
        .Unprotect
        rngCopy.Copy .Rows(Zeile_L + 1)
        
        'Zeilenbereich mit den Eingabewerten
        Zeile1 = Zeile_L + 5
        Zeile2 = Zeile_L + AnzZeilen - 6
        'Inhalte in Eingabezellen löschen
        .Range(.Cells(Zeile1, 4), .Cells(Zeile2, 4)).ClearContents 'Spalte D
        .Range(.Cells(Zeile1, 6), .Cells(Zeile2, 6)).ClearContents 'Spalte F
        .Range(.Cells(Zeile1, 8), .Cells(Zeile2, 9)).ClearContents 'Spalte H:I
        .Protect
        Cells(Zeile1, 4).Select
    End With
End Sub


Bild

Betrifft: AW: Bekomme das Makro einfach nicht hin!
von: Jo
Geschrieben am: 03.09.2015 08:33:07
Hallo fcs,
SUPER, funtioniert bestens.
Danke für deine schnelle Hilfe.
Hätte bloß noch eine Frage....
Ist es möglich, dass beim öffnen der Arbeitsmappe die blöden Fenster Makro aktivieren usw. nicht mehr eingeblendet werden und alle Makros und Verknüpfungen automatsch ohne langes klicken ausgeführt werden.
Gruß Jo

Bild

Betrifft: AW: Bekomme das Makro einfach nicht hin!
von: fcs
Geschrieben am: 04.09.2015 05:41:06
Hallo Jo,
meine Erinnering an die entsprechenden Optionen und Menüs in Excel 2003 verblasst so langsam.
Für Makros kannst du unter Optionen--Sicherheitscenter/Makrosicherheit oder Einstellungen für Makros festlegen wie Excel Dateien mit Makros behandeln soll. Die komplette Freischaltung wird aus Sicherheitsgründen aber nicht empfohlen.
In den neueren Excel-Versionen kannst du unter Optionen--Sicherheitscenter zusätzlich vertrauenswürdige Speicherorte festlegen. Bei Dateien in einem solchen Verzeichnis werden die Makros dann ohne Rückfrage ausgeführt.
Bei den Formel-Verknüpfungen funktioniert es evtl. auch mit dem vertrauenswürdigen Speicherort.
Gruß
Franz

Bild

Betrifft: AW: Bekomme das Makro einfach nicht hin!
von: Jo
Geschrieben am: 04.09.2015 10:32:27
Hallo fcs,
danke für deine schnelle Hilfe.
Ich schau mal was machbar ist.
Gruß Jo

Bild

Betrifft: AW: Bekomme das Makro einfach nicht hin!
von: Jo
Geschrieben am: 08.09.2015 02:16:20
Hallo fcs,
vielleicht kannst du dich noch erinnern, Makro zum kopieren von Blatt 2 das funktioniert auch wunderbar.
Aber jetzt möchte unser Kassier, das auch die Zeilen A54 - G58 beim kopieren auch gelöscht werden.
Könntest du mir vielleicht nochmal behilflich sein.
Danke für deine eure Bemühungen.
Das von dir geschriebene Makro.

Sub Copy_neue_Woche()
    Dim wks As Worksheet
    Dim Zeile_L As Long, Zeile1 As Long, Zeile2 As Long
    Dim AnzZeilen As Long
    Dim rngCopy As Range
    
    Set wks = ActiveWorkbook.Sheets("Wochenverkauf")
    AnzZeilen = 29 'Zeilen pro Seite
    With wks
        'letzte Zeile in Spalte H - Zeile mit DIFFERENZ
        Zeile_L = .Cells(.Rows.Count, 8).End(xlUp).Row
        'zu kopierender Bereich der letzten Woche
        Set rngCopy = .Range(.Rows(Zeile_L - AnzZeilen + 1), .Rows(Zeile_L))
        .Unprotect
        rngCopy.Copy .Rows(Zeile_L + 1)
        
        'Zeilenbereich mit den Eingabewerten
        Zeile1 = Zeile_L + 5
        Zeile2 = Zeile_L + AnzZeilen - 6
        'Inhalte in Eingabezellen löschen
        .Range(.Cells(Zeile1, 4), .Cells(Zeile2, 4)).ClearContents 'Spalte D
        .Range(.Cells(Zeile1, 6), .Cells(Zeile2, 6)).ClearContents 'Spalte F
        .Range(.Cells(Zeile1, 8), .Cells(Zeile2, 9)).ClearContents 'Spalte H:I
        .Protect
        Cells(Zeile1, 4).Select
    End With
End Sub
Die Datei
https://www.herber.de/bbs/user/100074.xls
Gruß Jo

Bild

Betrifft: Makro erweiterung habe keine Ahnung (fcs)
von: Jo
Geschrieben am: 08.09.2015 12:18:08
Hallo liebe Profis
Makro zum kopieren von Blatt 2 das funktioniert auch wunderbar.
Aber jetzt möchte unser Kassier, das auch die Zeilen A54 - G58 beim kopieren auch gelöscht werden.
Könntet ihr mir vielleicht nochmal behilflich sein.
Da einige Spalten verschoben wurden bitte auch prüfen ob das Makro so noch stimmt.
Das vorhandene Makro

Sub Copy_neue_Woche()
    Dim wks As Worksheet
    Dim Zeile_L As Long, Zeile1 As Long, Zeile2 As Long
    Dim AnzZeilen As Long
    Dim rngCopy As Range
    
    Set wks = ActiveWorkbook.Sheets("Wochenverkauf")
    AnzZeilen = 29 'Zeilen pro Seite
    With wks
        'letzte Zeile in Spalte H - Zeile mit DIFFERENZ
        Zeile_L = .Cells(.Rows.Count, 8).End(xlUp).Row
        'zu kopierender Bereich der letzten Woche
        Set rngCopy = .Range(.Rows(Zeile_L - AnzZeilen + 1), .Rows(Zeile_L))
        .Unprotect
        rngCopy.Copy .Rows(Zeile_L + 1)
        
        'Zeilenbereich mit den Eingabewerten
        Zeile1 = Zeile_L + 5
        Zeile2 = Zeile_L + AnzZeilen - 6
        'Inhalte in Eingabezellen löschen
        .Range(.Cells(Zeile1, 4), .Cells(Zeile2, 4)).ClearContents 'Spalte D
        .Range(.Cells(Zeile1, 6), .Cells(Zeile2, 6)).ClearContents 'Spalte F
        .Range(.Cells(Zeile1, 8), .Cells(Zeile2, 9)).ClearContents 'Spalte H:I
        .Protect
        Cells(Zeile1, 4).Select
    End With
End Sub
Die betreffende Datei
https://www.herber.de/bbs/user/100081.xls
Besten Dank für eure Mühe
Gruß Jo

Bild

Betrifft: AW: Makro erweiterung habe keine Ahnung (fcs)
von: fcs
Geschrieben am: 08.09.2015 22:51:44
Hallo Jo,
Aber jetzt möchte unser Kassier, das auch die Zeilen A54 - G58 beim kopieren auch gelöscht werden.
Könntet ihr mir vielleicht nochmal behilflich sein.

Was heißt Löschen? nur die Inhalte Löschen oder die kompletten Tabellenzeilen löschen?
Wenn die Zeilen gelöscht werden sollen: Warum sind sie dann auf den Seiten 1 und 2 überhaupt vorhanden?
Gruß
Franz
Neues Makro etwa so:

Sub Copy_neue_Woche()
    Dim wks As Worksheet
    Dim Zeile_L As Long, Zeile1 As Long, Zeile2 As Long
    Dim AnzZeilen As Long
    Dim rngCopy As Range
    
    Set wks = ActiveWorkbook.Sheets("Wochenverkauf")
    AnzZeilen = 29 'Zeilen pro Seite
    With wks
        'letzte Zeile in Spalte H - Zeile mit DIFFERENZ
        Zeile_L = .Cells(.Rows.Count, 8).End(xlUp).Row
        'zu kopierender Bereich der letzten Woche
        Set rngCopy = .Range(.Rows(Zeile_L - AnzZeilen + 1), .Rows(Zeile_L))
        .Unprotect
        rngCopy.Copy .Rows(Zeile_L + 1)
        
        'Zeilenbereich mit den Eingabewerten
        Zeile1 = Zeile_L + 6
        Zeile2 = Zeile_L + AnzZeilen - 5
        'Inhalte in Eingabezellen löschen
        .Range(.Cells(Zeile1, 4), .Cells(Zeile2, 7)).ClearContents 'Spalte D
'        .Range(.Cells(Zeile1, 6), .Cells(Zeile2, 6)).ClearContents 'Spalte F
'        .Range(.Cells(Zeile1, 8), .Cells(Zeile2, 9)).ClearContents 'Spalte H:I
        .Range(.Cells(Zeile2 + 1, 3), .Cells(Zeile_L + AnzZeilen, 3)).ClearContents  'Spalte D
        .Range(.Cells(Zeile2 + 1, 7), .Cells(Zeile_L + AnzZeilen, 7)).ClearContents  'Spalte G
        .Cells(Zeile2 + 2, 10).ClearContents 'Spalte J
        .Cells(Zeile_L + AnzZeilen - 1, 10).ClearContents 'Spalte J
        .Protect
        Cells(Zeile1, 4).Select
    End With
End Sub


Bild

Betrifft: AW: Makro erweiterung habe keine Ahnung (fcs)
von: Jo
Geschrieben am: 10.09.2015 01:13:11
Hallo Franz,
danke für deine schnelle Hilfe.
Ich hatte vergesseb dazu zu schreiben, dass nur die Inhalte beim kopieren gelöscht werden sollen. Alles andere Formel und Formate sollen beibehalten werden wie beim ersten Makro das wunderbar funktioniert.
Ich werde aber erst heute Nachmittag dazu kommen das neue Makro zu testen.
Nochmal vielen Dank
Gruß Sepp

Bild

Betrifft: AW: Makro erweiterung habe keine Ahnung (fcs)
von: Jo
Geschrieben am: 10.09.2015 12:07:30
Hallo Franz,
habe gerade das neue Makro getestet, aber die Inhalte von Zeile A54 - G58 werden beim kopieren nicht gelöscht.
Könntest du dir das bitte nochmal anschauen?
Danke für deine Bemühungen, ohne deine Hilfe wäre ich aufgeschmissen.
Gruß Jo

Bild

Betrifft: AW: Makro erweiterung habe keine Ahnung (fcs)
von: Jo
Geschrieben am: 12.09.2015 23:09:51
nochmal, mit der Bitte um Hilfe

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Bekomme das Makro einfach nicht hin!"