Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: Blatt kopieren, dann abspeichern

VBA: Blatt kopieren, dann abspeichern
11.01.2007 15:31:11
Boris
Hallo,
ich würde gerne folgendes lösen: Sheet1 zieht sich je nach in Zelle A1 eingegebener ID Informationen aus Sheet2. Nun möchte ich Sheet1 für jede ID in einer eigener Datei abspeichern. Also: Speichere Sheet1 nur mit Werten (ohne Verknüpfungen) in eine eigene Datei, benannt nach Zelle A1.
Eine Lösung wäre:
1) Kopiere Sheet1
2) lösche alle Verknüpfungen (break links)
3) Speichere die erzeugte Datei
4) Schliesse die erzeugte Datei
Dabei habe ich nun folgendes Problem: mit ActiveSheet.copy kopiere ich Sheet1 in eine neue Datei. Wie spreche ich diese Datei nun an (um die verknüpfungen zu löschen und sie abzuspeichern)? Sie hat ja noch keinen Namen...? Mein Code sieht erstmal so aus, wobei die ? zu ersetzen wären:

Sub CopyToSingleFile()
Dim vlink As Variant
ActiveSheet.Copy
vlink = ?workbook.LinkSources(xlExcelLinks)
If Not IsEmpty(vlink) Then
For j = 1 To UBound(vlink)
?Workbook.BreakLink vlink(j), Type:=xlLinkTypeExcelLinks
Next j
End If
?Workbook.SaveAs Filename:=ActiveWorkbook.Sheets(1).Range("A1").Value
End Sub

Oder gibt es eine elegantere Lösung?
Gruß,
Boris
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Blatt kopieren, dann abspeichern
11.01.2007 15:44:09
Rudi
Hallo,
nach dem Kopieren ist es ActiveWorkbook.
Den Dateinamen holst du dir dann mit
Filename:=Thisworkbook.sheets....
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: VBA: Blatt kopieren, dann abspeichern
11.01.2007 16:46:01
Boris
Stimmt, das kopierte Sheet1 ist dann tatsächlich das aktive. Allerdings habe ich auch aufmerksam den Beitrag "Selektieren und Aktivieren" in den Excel-FAQs gelesen, d.h. ich möchte ein "wildes herumspringen" vermeiden. So funktioniert es jedoch:

Sub CopyToSingleFile()
ScreenUpdating = False
Dim vlink As Variant
ActiveSheet.Copy
vlink = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(vlink) Then
For j = 1 To UBound(vlink)
ActiveWorkbook.BreakLink vlink(j), Type:=xlLinkTypeExcelLinks
Next j
End If
With ActiveWorkbook
.SaveAs Filename:=ThisWorkbook.Path & "\" & .Sheets(1).Range("A1").Value & ".xls"
.Close
End With
ScreenUpdating = True
End Sub

Danke für die Antworten...
Anzeige
AW: VBA: Blatt kopieren, dann abspeichern
11.01.2007 15:47:09
Matthias
Hallo Boris,
mein Vorschlag:

Sub CopyToSingleFile()
ActiveSheet.Copy
Cells.Copy
Cells.PasteSpecial xlPasteValues 'alle Formeln durch Werte ersetzen
Application.CutCopyMode = False
[a1].Select 'damit nicht mehr alles markiert ist
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Sheets(1).Range("A1").Value
End Sub

Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige