Anzeige
Archiv - Navigation
836to840
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
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige