Zelleninhalt löschen

Bild

Betrifft: Zelleninhalt löschen
von: Jochen Franke
Geschrieben am: 19.05.2015 20:56:56

Hallo,
ich habe mir ein makro geschrieben was folgendes auslösen soll.
In der Datei report_vorlage werden Daten eingegeben. Diese werden durch das Makro in der Datei report_daten gespeichert.
Jetzt wird die datei report_vorlage unter anderen namen ( report& der wert aus K6)gespeichert.
Der in der Datei report_vorlage vorhandene und dementsprechend mitgespeicherte button wird in der kopie gelöscht und die datei report_vorlage geschlossen.
die datei report& wert aus K6 ist nun zur weiteren Bearbeitung bereit.
Soweit, so gut.
bis hierhin funktioniert auch alles.
Zusätzlich möchte ich das beim schließen der Datei report_vorlage der Wert in k3 um 1 erhöht wird und die Daten in D7:D9 entfernt werden.

Sub daten_speichern_und_kopie_anlegen()
Dim wsKopie As Worksheet, wsBasis As Worksheet, iLetzte As Long
Dim wbKopie As Workbook
Set wsBasis = ActiveSheet
Set wbKopie = Workbooks.Open("C:\Report-Test\Report_daten.xlsx") 'Zieldatei anpassen
Set wsKopie = wbKopie.Sheets("sheet1")    'Tabellennamen der Quelle anpassen
    iLetzte = wsKopie.Cells(wsKopie.Rows.Count, 1).End(xlUp).Row + 1
    wsKopie.Range("A" & iLetzte) = wsBasis.Range("K3").Value '1.Wert Ziel und 2.Wert Quellzelle  _
 _
anpassen
    wsKopie.Range("B" & iLetzte) = wsBasis.Range("K6").Value
    wsKopie.Range("C" & iLetzte) = wsBasis.Range("D6").Value
    wsKopie.Range("D" & iLetzte) = wsBasis.Range("D7").Value
    wsKopie.Range("E" & iLetzte) = wsBasis.Range("D8").Value
    wsKopie.Range("F" & iLetzte) = wsBasis.Range("D9").Value
    wsKopie.Range("G" & iLetzte) = wsBasis.Range("K7").Value
    wsKopie.Range("H" & iLetzte) = wsBasis.Range("K8").Value
    wsKopie.Range("I" & iLetzte) = wsBasis.Range("L9").Value
wbKopie.Save
wbKopie.Close False
ActiveWorkbook.SaveAs Filename:="C:\Report-Test\Report\" & "8D-Report-" & Range("K3").Value & ". _
 _
xls" 'speichern unter
ActiveSheet.Shapes("Button 1").Select
            Selection.Delete 'Schaltfläche löschen
                        
            ActiveWorkbook.Save 'speichern
End Sub
Vieleicht hat ja jemand von den Experten einen Tip für mich, weil sich meine VBA künste eher auf copy&paste beschränken.
Danke & Gruß,
Jochen

Bild

Betrifft: AW: Zelleninhalt löschen
von: UweD
Geschrieben am: 20.05.2015 09:48:47
Hallo


wsBasis.Range("K3").Value = wsBasis.Range("K3").Value + 1
'...
wsBasis.Range("D7:D9").Clearcontents
Gruß UweD

Bild

Betrifft: AW: Zelleninhalt löschen
von: Jochen Franke
Geschrieben am: 20.05.2015 16:22:05
Hallo Uwe,
du hast mir grundsätzlich schon mal etwas weiter geholfen.
Aber:
egal wo ich deinen Code einfüge werden die Zellen in meiner mit save as hergestellten Kopie verändert.
ich denke mal das der Befehl save as auch das schließen der Ursprungsdatei beinhaltet. Google konnte mir da aber auch nicht weiterhelfen.
Wenn das aber so ist müsste man wohl die Ursprungsdatei nochmal öffnen dann deinen code auführen und speicheren und schließen.
dann habe ich aber das Problem das ich die mit save as erstellet Kopie nicht mehr ansprechen kann weil sich der Name ja mit jedem speichern ändert.
Bitte um weiter Hilfe,
Danke Jochen

Bild

Betrifft: AW: Zelleninhalt löschen
von: Jochen Franke
Geschrieben am: 20.05.2015 16:48:42
So, habe es dann doch hinbekommen.
Hier mein code für die es sehen wollen:

Sub daten_speichern_und_kopie_anlegen()
Dim wsKopie As Worksheet, wsBasis As Worksheet, iLetzte As Long
Dim wbKopie As Workbook
Set wsBasis = ActiveSheet
Set wbKopie = Workbooks.Open("C:\Report-Test\Report_daten.xlsx") 'Zieldatei anpassen
Set wsKopie = wbKopie.Sheets("sheet1")    'Tabellennamen der Quelle anpassen
    iLetzte = wsKopie.Cells(wsKopie.Rows.Count, 1).End(xlUp).Row + 1
    wsKopie.Range("A" & iLetzte) = wsBasis.Range("K3").Value '1.Wert Ziel und 2.Wert Quellzelle  _
anpassen
    wsKopie.Range("B" & iLetzte) = wsBasis.Range("K6").Value
    wsKopie.Range("C" & iLetzte) = wsBasis.Range("D6").Value
    wsKopie.Range("D" & iLetzte) = wsBasis.Range("D7").Value
    wsKopie.Range("E" & iLetzte) = wsBasis.Range("D8").Value
    wsKopie.Range("F" & iLetzte) = wsBasis.Range("D9").Value
    wsKopie.Range("G" & iLetzte) = wsBasis.Range("K7").Value
    wsKopie.Range("H" & iLetzte) = wsBasis.Range("K8").Value
    wsKopie.Range("I" & iLetzte) = wsBasis.Range("L9").Value
wbKopie.Save
wbKopie.Close False
ActiveWorkbook.SaveAs Filename:="C:\Report-Test\Report\" & "8D-Report-" & Range("K3").Value & ". _
xls" 'speichern unter
Workbooks.Open ("C:\Report-Test\Report_vorlage.xlsm")
Range("K3").Value = Range("K3").Value + 1 'Wert in K3 erhöht sich um 1
Range("D6:F6").ClearContents ' Zelleinhalte werden gelöscht bei verbunden Zellen alle Zelle  _
nangeben
Range("D7:F7").ClearContents
Range("D8:F8").ClearContents
Range("D9:F9").ClearContents
Range("K6:M6").ClearContents
Range("K7:M7").ClearContents
Range("K8:M8").ClearContents
Range("L9:M9").ClearContents
Workbooks("Report_vorlage.xlsm").Save
Workbooks("Report_vorlage.xlsm").Close
ActiveSheet.Shapes("Button 1").Select
            Selection.Delete 'Schaltfläche löschen
                        
            ActiveWorkbook.Save 'speichern
End Sub

Danke & Gruß,
Jochen

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zelleninhalt löschen"