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

(Bereichs-)Namen in andere Mappe kopieren?

Forumthread: (Bereichs-)Namen in andere Mappe kopieren?

(Bereichs-)Namen in andere Mappe kopieren?
17.04.2007 19:50:00
Kyrie
Guten Abend, zusammen,
darf ich noch einmal auf Eure Expertise hoffen?
In meinem Workbook habe ich vielen Spaltenbereichen, aber auch sehr vielen Formeln (weil letztere teilweise monstermässig lang...) Namen zugewiesen. Durch ein Versehen im Makroablauf habe ich meine Originaldatei unbrauchbar umsortiert und auch noch gespeichert, ich Blödchen.
Nun habe ich zwar noch eine weitere Originaldatei (.sik), aber dort sind die Namen noch nicht definiert.
Ich suche jetzt nach einem Weg, die definierten Namen aus der .unbrauchbar in die .sik zu übernehmen/kopieren, OHNE nochmals händisch sämtliche Monsterformeln (über 50 Stück!!!) via EINFÜGEN/NAMEN/DEFINIEREN 'reinzufummeln...
Ich weiss, daß es möglich ist via VBA alle vergebenen Namen auf einen Schlag in einer Arbeitsmappe zu löschen,
aber habt Ihr eine Idee, wie es "umgekehrt" geht: alle Namen von der einen in die andere Mappe via VBA zu übernehmen?
Insbesondere jene Namen, die keine Zellbereiche, sondern die Monsterformeln definieren?
Herzlichen Dank vorab für Vorschläge/Meinungen/Kommentare... LG, KL

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: (Bereichs-)Namen in andere Mappe kopieren?
17.04.2007 21:24:00
K.Rola
Hallo,
versuchs mal so:
Option Explicit

Sub Names_copy()
''Es muss sicher gestellt werden, dass WbZiel geöffnet ist.
''Der Name der Zieldatei muss angepasst werden.
Dim WbZiel As Workbook
Dim n As Long
Dim Nc As Long
Nc = ThisWorkbook.Names.Count
If Nc > 0 Then
Set WbZiel = Workbooks("Ziel.xls")
For n = 1 To Nc
WbZiel.Names.Add Name:=ThisWorkbook.Names(n).Name, _
RefersTo:=ThisWorkbook.Names(n).RefersTo
Next
End If
End Sub


Gruß K.Rola

Anzeige
AW: (Bereichs-)Namen in andere Mappe kopieren?
18.04.2007 18:33:00
Kyrie
Liebe(r) K. Rola,
hat einwandfrei geklappt, vielen Dank also!!!
Code kann ich soweit auch nachvollziehen, außer der Bedeutung von
"Name:=ThisWorkbook.Names(n).Name, RefersTo:=ThisWorkbook.Names(n).RefersTo" (innerhalb der Schleife)...?
Mit der VBA-Hilfefunktion komme ich nämlich nicht wirklich klar...
Schönen Dank, nochmals, LG, KL

Anzeige
AW: (Bereichs-)Namen in andere Mappe kopieren?
18.04.2007 19:29:37
K.Rola
Hallo,

Sub Names_copy()
''Es muss sicher gestellt werden, dass WbZiel geöffnet ist.
''Der Name der Zieldatei muss angepasst werden.
Dim WbZiel As Workbook
Dim n As Long
Dim Nc As Long
''ThisWorkbook ist die Mappe, in der der Code ausgeführt wird
''und in der sich die zu übetragenden Namen befinden.
''Die Anzahl der Namen in ThisWorkbook wird ermittelt.
Nc = ThisWorkbook.Names.Count
''Wenn die Anzahl der Namen größer 0 ist...
If Nc > 0 Then
''Objektvariable auf die Zielmappe setzen
Set WbZiel = Workbooks("Ziel.xls")
''Schleife über Anzahl der Namen
For n = 1 To Nc
''Namen in der Zielmappe erzeugen
''Als Name des neu erzeugten Namen wird der selbe Name verwendet,
''wie der in ThisWorkbook.
''Als Referenz des neu erzeugten Namen wird die selbe Referenz
''verwendet, wie die in ThisWorkbook.
''Die Namen werden also nicht kopiert, sondern neu erzeugt und
''mit den selben Attributen ausgestattet, wie die Namen in der
''Quellmappe(ThisWorkbook).
WbZiel.Names.Add _
Name:=ThisWorkbook.Names(n).Name, _
RefersTo:=ThisWorkbook.Names(n).RefersTo
Next
End If
End Sub


Gruß K.Rola

Anzeige
AW: (Bereichs-)Namen in andere Mappe kopieren?
18.04.2007 22:16:00
Kyrie
''Die Namen werden also nicht kopiert, sondern neu erzeugt und
''mit den selben Attributen ausgestattet, wie die Namen in der
''Quellmappe(ThisWorkbook).
Das war die entscheidende Erläuterung, der Rest war klar.
Vielen lieben Dank für die Mühe, die du dir gemachst hast!
Bis demnächst (garantiert!),
LG, KL
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

(Bereichs-)Namen in eine andere Excel-Mappe kopieren


Schritt-für-Schritt-Anleitung

Um Namen aus einer Excel-Arbeitsmappe in eine andere zu kopieren, kannst Du den folgenden VBA-Code verwenden. Dieser Code übernimmt alle definierten Namen von der Quellmappe in die Zielmappe:

Sub Names_copy()
    ' Es muss sichergestellt werden, dass die Zieldatei geöffnet ist.
    ' Der Name der Zieldatei muss angepasst werden.
    Dim WbZiel As Workbook
    Dim n As Long
    Dim Nc As Long

    Nc = ThisWorkbook.Names.Count
    If Nc > 0 Then
        Set WbZiel = Workbooks("Ziel.xls")
        For n = 1 To Nc
            WbZiel.Names.Add Name:=ThisWorkbook.Names(n).Name, _
            RefersTo:=ThisWorkbook.Names(n).RefersTo
        Next
    End If
End Sub
  1. Öffne die Excel-Datei, in der Du die Namen kopieren möchtest.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge den obigen Code in ein neues Modul ein.
  4. Stelle sicher, dass die Zieldatei bereits geöffnet ist.
  5. Passe den Namen der Zieldatei in der Zeile Set WbZiel = Workbooks("Ziel.xls") an.
  6. Führe das Makro aus.

Häufige Fehler und Lösungen

  • Fehler: Zielmappe nicht gefunden

    • Stelle sicher, dass die Zieldatei geöffnet ist und der Name korrekt angegeben wurde.
  • Fehler: Name bereits vorhanden

    • Wenn der Name in der Zielmappe bereits existiert, wird der Kopiervorgang fehlschlagen. Überlege, ob Du bestehende Namen löschen oder umbenennen möchtest, bevor Du das Makro ausführst.

Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, kannst Du auch die Excel-Funktionen verwenden, um Namen manuell zu kopieren. Gehe dazu in den Namensmanager (Formeln > Namensmanager) und kopiere die Namen händisch in die Zielmappe.


Praktische Beispiele

Angenommen, Du hast in Deiner Quellmappe die folgenden Namen definiert:

  • Umsatz
  • Kosten
  • Gewinn

Mit dem VBA-Skript kannst Du diese Namen in eine andere Excel-Datei übertragen, ohne sie manuell neu definieren zu müssen. Dies ist besonders nützlich, wenn Du eine große Liste von Namen hast oder komplexe Formeln, die auf diesen Namen basieren.


Tipps für Profis

  • Nutze den Excel Namensmanager, um eine Übersicht über alle definierten Namen zu erhalten.
  • Du kannst die Funktion Refersto vba verwenden, um die Bezüge der Namen zu überprüfen, bevor Du sie überträgst.
  • Wenn Du regelmäßig Namen zwischen Dateien austauschen musst, erwäge, ein Makro zu erstellen, das dies automatisiert.

FAQ: Häufige Fragen

1. Wie kann ich alle Namen in einer Liste exportieren?
Du kannst die Namen im Namensmanager einsehen und händisch notieren oder ein VBA-Skript schreiben, um sie in eine Excel-Tabelle zu exportieren.

2. Was passiert, wenn ich den Namen nicht anpassen kann?
Stelle sicher, dass Du die richtige Datei geöffnet hast und der Name exakt übereinstimmt. Andernfalls kann das Makro nicht funktionieren.

3. Kann ich die Namen auch in eine andere Excel-Version kopieren?
Ja, solange die Zieldatei im gleichen Format wie die Quellmappe ist, kannst Du die Namen problemlos kopieren.

4. Wie kann ich sicherstellen, dass alle Namen korrekt übernommen werden?
Überprüfe nach dem Ausführen des Makros im Namensmanager der Zielmappe, ob alle gewünschten Namen vorhanden sind.

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