Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
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
Tabelle kopieren
27.08.2008 22:34:11
Werner
Hallo,
ich möchte ein Tabellenblatt ohne Verknüpfungen in eine andere Mappe kopieren wobei die Werte der Verknüpften Zellen erhalten bleiben sollen.
Über eine Lösung würde ich mich sehr freuen und bedanke mich schon in voraus.
Viele Grüße
Werner

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle kopieren
27.08.2008 23:01:00
Matthias
Hallo
Probier mal so:
Code in Mappe1 in einem Modul
Beide Mappen müssen offen sein

Sub NurWerte()
Cells.Copy
Windows("Mappe2").Activate 'Namen anpassen
Cells.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub


Gruß Matthias

AW: Rückfragen
27.08.2008 23:12:00
Erich
Hallo Werner,
dafür gibt es einige Möglichkeiten. Welche man in diesem Fall wählen sollte,
hängt noch von ein paar fehlenden Infos ab:
Welchen Namen soll das neue Blatt haben?
Gibt es die "andere Mappe" bereits oder kann/soll/muss sie beim Kopieren angelegt werden?
Wenn es die Zielmappe schon gibt:
Wie heißt die Mappe? Ist sie offen oder muss sie geöffnet werden?
Was soll geschehen, wenn es in der Zielmappe bereits ein Blatt mit dem gewünschten Namen gibt?
Sollen nur die Verknüpfungen eliminiert werden, d. h. andere Formeln erhalten bleiben?
Oder reicht es aus, wenn in der Kopie nur Werte stehen?
Sollen Formate (z. B. Zahlformate, Spaltenbreiten, Rahmen, Farben...) mit übertragen werden?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Tabelle kopieren
29.08.2008 12:30:00
Werner
Hallo Erich,
Danke für deine Antwort !
Die Mappe gibt es schon und hat den Namen "Mitarbeiterablage"
Verknüpfungen benödige ich keine den im Orginale Tabellenblatt wird wieder geändert (Verknüpfte Zellen)
und wenn die Verknüpfungen geändert werden, sollen sich das Kopierte Tabellenblatt "nicht geändert werden".
Die Formeln sollen erhalten bleiben. Der Tabellenblattname wird auch durch ein Makro von einer Zelle hergeleitet und sdoll aber erhalten bleiben . formate und sonstiege Daten sollen auch erhalten bleiben.
Ich hoffe , dass ich mnich verständlich ausgetrückt habe.
Viele Grüße
Werner
Anzeige
AW: Tabelle kopieren
29.08.2008 15:07:02
Erich
Hi Werner,
probier mal:

Option Explicit
Sub BlattKopieOhneLink()
Dim vLinks, ii As Integer
' Blattnamen anpassen
Sheets("XXXXXXX").Copy     ' legt neue temp. Mappe an
With ActiveWorkbook        ' dort Links entfernen
vLinks = .LinkSources(Type:=xlLinkTypeExcelLinks)
If Not IsEmpty(vLinks) Then
For ii = 1 To UBound(vLinks)
.BreakLink Name:=vLinks(ii), Type:=xlExcelLinks
Next ii
End If
' in Zielmappe kopieren
.Sheets(1).Copy before:=Workbooks("Mitarbeiterablage.xls").Sheets(1)
.Close False            ' temp. Mappe löschen
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Tabelle kopieren
29.08.2008 23:16:16
Werner
Hallo Erich,
das hat leiter nicht so funktioniert, was aber daran lag das ich mein Problem nicht richtig ausgetrückt hatte.
Ich habe es mit den Makrorekorter versucht und binn auf folgendes Ergebnis gekommen:

Private Sub CommandButton2_Click()
' MAinAblage Makro
' Makro am 29.08.2008 von Werner Zapf aufgezeichnet
ChDir _
"C:\Dokumente und Einstellungen\Werner.ZAPF-PC1.003\Eigene Dateien\Kalkulation  _
Kostenrechnung 23.08.2008"
Workbooks.Open Filename:= _
"C:\Dokumente und Einstellungen\Werner.ZAPF-PC1.003\Eigene Dateien\Kalkulation  _
Kostenrechnung 23.08.2008\Mitarbeiterablage.xls"
Windows("Kalkulation-Kostenrechnung Römerbad 25.07.2008.xls").Activate
Sheets("Tabelle1").Select
Sheets("Tabelle1").Copy After:=Workbooks("Mitarbeiterablage.xls").Sheets(1)
Application.CutCopyMode = False
ActiveWorkbook.Save
ActiveWindow.Close
End Sub


Das Funktioniert von Prinzip sehr Gut. In den Kopierten Tabellenblatt in Zelle B5 steht nun = '[Kalkulation-Kostenrechnung Römerbad 25.07.2008.xls]Startcenter'!D12.
Wenn nun in der Orginal Tabelle1 der Wert durch den Bezug =........ geändert wird, wird auch in der Kopie der Wert in diesen Fall ein Name geändert!!
Wie kann ich das Makro so ergänzen,dass in der Kopie in Zelle B5 nur der Name und nicht der Bezug erhalten bleibt.
Viele Grüße
Werner

Anzeige
AW: Tabelle kopieren
30.08.2008 11:20:05
Erich
Hi Werner,
hier hab ich mal versucht, aus deiner Makroaufzeichnung und meinem Code etwas zu bauen.
Probier mal

Option Explicit
Private Sub CommandButton2_Click()
Dim vLinks, ii As Integer
Sheets("Tabelle1").Copy       ' legt neue temp. Mappe an
With ActiveWorkbook           ' dort Links entfernen
vLinks = .LinkSources(Type:=xlLinkTypeExcelLinks)
If Not IsEmpty(vLinks) Then
For ii = 1 To UBound(vLinks)
.BreakLink Name:=vLinks(ii), Type:=xlExcelLinks
Next ii
End If
' Mitarbeiterablage öffnen
Workbooks.Open Filename:="C:\Dokumente und Einstellungen\Werner." & _
"ZAPF-PC1.003\Eigene Dateien\KalkulationKostenrechnung 23.08.2008\" & _
"Mitarbeiterablage.xls"
' in Zielmappe kopieren
.Sheets(1).Copy after:=Workbooks("Mitarbeiterablage.xls").Sheets(1)
.Close False               ' temp. Mappe schließen
End With
' Mitarbeiterablage speichern + schließen
Workbooks("Mitarbeiterablage.xls").Close True
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Tabelle kopieren
30.08.2008 19:44:00
Werner
Hallo Erich,
das mit Deinen Vorschlag klappt leider nicht, denn es wird eine neue Arbeitsmappe angelegt, was ja nicht notwendig ist (die Tabelle1 soll in die Arbeitsmappe "Mitarbeiterablage", die ja schon existiert kopiert werden). Anschließend soll vor dem Speichern und Schließen in Zelle B5 der Bezug =
( '[Kalkulation-Kostenrechnung Römerbad 25.07.2008.xls]Startcenter'!D12.) so gelöscht werden, dass der Wert bzw. der Name in der Zelle erhalten bleibt (in diesen Fall der Name Mitarbeiter1).
Auserdem sollte der Name aus der Zelle B5 als Tabellenblattname übernommen werden(aber erst wenn das Tabellenblatt in die Arbeitsmappe "Mitarbeiterablage kopiert ist.
Ich weis das ich jetzt schon wieder neue Aufgaben gestellt habe, hoffe aber trotzdem auf eine Antwort.
Viele Grüße
Werner
Anzeige
AW: Tabelle kopieren
31.08.2008 10:49:00
Erich
Hi Werner,
"das mit Deinen Vorschlag klappt leider nicht"? Ist das deine Meinung oder hast du es mal getestet?
Das, was du dann mit ", denn ..." schreibst, ist KEIN Grund dafür, dass das nicht klappen sollte.
(Ich weiß doch, was ich da programmiert UND GETESTET habe...)
Mit "klappt leider nicht" gibst du keinerlei Info darüber,
was am Ergebnis des Codes falsch oder unerwünscht wäre.
Oder gibt es eine Fehlermeldung, wenn du das Makro startest?
Das Anlegen einer temp(orären!) Mappe ein möglicher Schritt zur Lösung des Problems.
Hast du dir auch die Codezeilen hinter "Sheets("Tabelle1").Copy ' legt neue temp. Mappe an"
angesehen?
Wird da nicht die Mitarbeiterablage geöffnet und das Blatt hineinkopiert?
Wird nicht später die temporäre Mappe wieder geschlossen?
Du schreibst jetzt, dass in Zelle B5 der Bezug gelöscht werden soll. Bisher ging es immer darum,
ALLE Verknüpfungen auf diesem Blatt zu eliminieren. Um das leicht machen zu können, wird die
temp. Mappe verwendet. Hier kann das Makro alle Verknüpfungen löschen, ohne dass
andere Verknüpfungen in der Quell- oder der Zielmappe tangiert werden.
Hier habe ich auch noch das Umbebenennen des Blattes eingebaut:

Option Explicit
Private Sub CommandButton2_Click()
Dim vLinks, ii As Integer, strB As String
Sheets("Tabelle1").Copy       ' legt neue temp. Mappe an
With ActiveWorkbook           ' dort Links entfernen
vLinks = .LinkSources(Type:=xlLinkTypeExcelLinks)
If Not IsEmpty(vLinks) Then
For ii = 1 To UBound(vLinks)
.BreakLink Name:=vLinks(ii), Type:=xlExcelLinks
Next ii
End If
' Mitarbeiterablage öffnen
Workbooks.Open Filename:="C:\Dokumente und Einstellungen\Werner." & _
"ZAPF-PC1.003\Eigene Dateien\KalkulationKostenrechnung 23.08.2008\" & _
"Mitarbeiterablage.xls"
' in Zielmappe kopieren
.Sheets(1).Copy after:=Workbooks("Mitarbeiterablage.xls").Sheets(1)
.Close False               ' temp. Mappe schließen
End With
' Blatt umbenennen
strB = ActiveSheet.Cells(5, 2)
If SheetTest(strB) Then
MsgBox "Das kopierte Blatt konnte in " & ActiveWorkbook.Name & _
" nicht umbenannt werden." & vbLf & vbLf & "Blatt '" & strB & _
"' war bereits vorhanden.", vbExclamation, "weise hin..."
Else
ActiveSheet.Name = strB
' Mitarbeiterablage speichern + schließen
Workbooks("Mitarbeiterablage.xls").Close True
End If
End Sub
Public Function SheetTest(strName As String) As Boolean 'von Dani am 29.08.08 14:43
On Error Resume Next         'www.herber.de/forum/archiv/1004to1008/t1005833.htm
SheetTest = Not Sheets(strName) Is Nothing
End Function

Rückmeldung (nach Test) wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige