Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel Marko, neue Arbeitsmappe

Excel Marko, neue Arbeitsmappe
26.06.2020 14:08:58
Denis
Hallo zusammen,
Ich bin leider totaler VBA Anfänger und habe keinerlei bis kaum Kenntnisse.
Daher möchte ich sofort zu meinem Problem kommen.
Ich habe eine Excel Datei mit vielen Formeln und Verknüpfungen (auch Preise usw sind dort hinterlegt).
Oft haben wir Kunden die einen Teilbereich (Spalte A bis BA), wobei dort auch ausgeblendete Spalten drin sind, zur Verfügung gestellt bekommen. Die ausgeblendeten Spalten sollen nicht kopiert werden.
Man muss auch noch sagen, dass das Arbeitsblatt dynamisch ist, sprich es kommen noch Zeilen hinzu oder werden gelöscht.
Stand jetzt ist es so, dass ich das Arbeitsblatt in ein neue Mappe kopieren und dann alles unnötige händisch löschen muss.
Gibt es dazu vllt. ein einfachen Weg ein Makro zu erstellen?
Folgende Funktionen sollten beinhaltet sein:
1) dynamischen Druckbereich (Kopierbereich) erstellen (Spalte A bis BA), Zeilen variabel
2) diesen dann in eine neue Excel-Datei legt (nur. Werte aber mit Formatierung, inkl. Zellenparameter, ohne die ausgeblendeten Spalten)
3) den Dateinamen der Quelldatei übernimmt und durch "_Liste" ergänzt?
Ich wäre über jede Hilfe dankbar.

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ergänzende Fragen
26.06.2020 15:36:29
ralf_b
willst du die Datei, in welcher auch Kunden Zugriff haben, auch noch mit VBA code vollstopfen oder kann das alles über eine separate Datei geschehen?
Reicht es aus, das der Bereich nur gedruckt wird oder muß das auch zwingend noch in einer Datei gespeichert werden? Es liest sich so das das du nur eine extra Datei benötigst weil du darin rumlöschen kannst.
AW: ergänzende Fragen
26.06.2020 18:23:16
Denis
Hallo Ralf,
Zu 1) die zu erstellende Mappe/Datei soll nur die Werte und eben die Formatierung beinhalten. Formeln usw sind entsprechend nicht nötig.
Zu 2) die Funktion drucken habe ich bereits geschafft. Sprich es wird der Bereich den der Kunde bekommt durch bestätigen eines Buttons generiert. Der dynamische Bereich wird mir in der Druckvorschau gezeigt und ich kann sie dann als pdf speichern.
Die Funktion mit dem Button würde ich auch für die Erstellung der neuen excel bevorzugen.
Anzeige
AW: vielleicht so?
27.06.2020 00:12:04
ralf_b
try it,
sub KopierenBereichnurSichtbar()
Dim wb As Workbook, aktwb As Workbook
Application.ScreenUpdating = False
Set aktwb = ThisWorkbook
Set wb = Workbooks.Add(xlWBATWorksheet)
wb.SaveAs Filename:=aktwb.Path & "/" & Left(aktwb.Name, Len(aktwb.Name) - 5) & "_Liste_" & _  _
Format(Time, "hhmmss") & ".xlsx"
With aktwb.Worksheets("deintabellenname")
.Range("A1:AB" & .Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy
wb.Worksheets(1).Range("A1").PasteSpecial Paste:=xlValues
wb.Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End With
Application.ScreenUpdating = True
Set wb = Nothing
Set aktwb = Nothing
End Sub

Anzeige
AW: vielleicht so?
27.06.2020 12:53:39
Denis
Hallo Ralf,
vielen Dank für deine Mühe.
In dem Befehl mit dem Erstellen des Namens wird mir ein Fehler angezeigt.
wb.SaveAs Filename:=aktwb.Path & "/" & Left(aktwb.Name, Len(aktwb.Name) - 5) & "_Liste_" & _ _
Format(Time, "hhmmss") & ".xlsx"
Den "deintabellenname " habe ich entsprechend dem Namen meines Arbeitsblatts angepasst.
AW: vielleicht so?
27.06.2020 13:01:08
ralf_b
möglicherweise liegts am Zeilenumbruch hier im editor. ich hatte das von Hand später eingetragen.
"_Liste_" & _ _ die Unterstriche am Ende gehören eigentlich nicht dahin.
es hilft aber nicht wenn du nur von fehler schreibst aber nicht um welchen es sich handelt.
Die Zeitkomponente im neuen Dateinamen habe ich eingefügt, damit es keine Fehler gibt falls die Datei schon existiert. Es ist unwahrscheinlich das innerhalb 1 Sekunde die Datei nochmal erstellt werden wird.
Anzeige
AW: vielleicht so?
27.06.2020 13:16:10
Denis
Es kommt der Fehler 1004:Anwendungs- oder objektdefinierter Fehler.
Ich habe die beiden unterstriche entfernt und die Zeile darunter Format(Time, "hhmmss") & ".xlsx" entsprechend hinter das & gesetzt.
Nach beenden des Fehlers wird auch eine neue Datei erstellt inkl. des Namen und des Zeitstempels. Allerdings ohne Inhalt.
AW: vielleicht so?
27.06.2020 13:17:55
ralf_b
schick mir mal die datei zurück bitte.
AW: vielleicht so?
27.06.2020 13:23:00
Denis

Sub KopierenBereichnurSichtbar()
Dim wb As Workbook, aktwb As Workbook
Application.ScreenUpdating = False
Set aktwb = ThisWorkbook
Set wb = Workbooks.Add(xlWBATWorksheet)
wb.SaveAs Filename:=aktwb.Path & "/" & Left(aktwb.Name, Len(aktwb.Name) - 5) & "_Liste_" &  _
Format(Time, "hhmmss") & ".xlsx"
With aktwb.Worksheets("FMA")
.Range("A1:AB" & .Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy
wb.Worksheets(1).Range("A1").PasteSpecial Paste:=xlValues
wb.Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End With
Application.ScreenUpdating = True
Set wb = Nothing
Set aktwb = Nothing
End Sub

Anzeige
statt "/" so "\" owT
27.06.2020 13:50:14
Helmut
AW: statt "/" so "\" owT
27.06.2020 13:53:59
Denis
Der Fehler ist in der Zeile:
.Range("A1:AB" & .Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy
Kann es ggf mit ausgeblendeten Zeilen zu tun haben? oder mit verbundenen Zellen?
AW: Application.PathSeparator
27.06.2020 14:13:28
ralf_b
danke Helmut. Bei mir läuft das mit slasch oder backslash.
dann setze mal stat "/" ..... Path & Application.PathSeparator & Left.....
verbundene Zellen sind sehr hässlich, da sich die Zelladresse nicht so einfach herausfinden läßt.
Bei mir geht das wie von dir gewünscht. Woran es jetzt in deinen Originaldaten hapert, will meine Glaskugel einfach nicht hergeben.
Anzeige
AW: Application.PathSeparator
27.06.2020 14:37:56
Denis
In dem originalen Makro funktioniert das leider nicht.
Wie genau muss die Zeile denn Aussehen bei ….Path &...?
AW: Application.PathSeparator
27.06.2020 15:50:55
ralf_b
ersetze "/" durch Application.PathSeparator
die Variable sorgt dafür das immer der zum Betriebssystem passende Strich( \ oder / ) genutzt wird.
der copybefehl kopiert nur die sichtbaren Zellen.
AW: Application.PathSeparator
27.06.2020 16:22:27
Denis
Leider bringen die Änderungen keinen Erfolg.
Vermutlich hängt es wirklich mit den Daten in der Excel zusammen. Habe auch mal versucht andere Blätter als Quelle zu nehmen, aber es kommt der gleiche Fehler.
Zum probieren habe ich mal eine andere Excel von mir genommen und dort eingefügt. Siehe da es klappt.
Alles so wie es funktionieren soll.
Also erstmal vielen Dank an Ralf und Helmut!!!
Anzeige
AW: Application.PathSeparator
27.06.2020 16:29:11
Denis
Leider bringen die Änderungen keinen Erfolg.
Vermutlich hängt es wirklich mit den Daten in der Excel zusammen. Habe auch mal versucht andere Blätter als Quelle zu nehmen, aber es kommt der gleiche Fehler.
Zum probieren habe ich mal eine andere Excel von mir genommen und dort eingefügt. Siehe da es klappt.
Alles so wie es funktionieren soll.
Also erstmal vielen Dank an Ralf und Helmut!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige