Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Excel 2013 VBA für Profis

In Bereichsnamen kopieren

Testen Sie unsere 2018 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Ein Bereichsname beschreibt eindeutig und vor allem dateineutral, in welche Zelle die Adresse in der Zieldatei eingefügt werden soll.

Transkript

Das Formular kann jetzt Adressen auslesen und schon in die Zwischenablage hineinkopieren. Das Nächste was es können soll, ist, in geöffnete Workbooks, also wirklich ehrlich geöffnete Excel-Dateien ebenfalls hineinzukopieren, und zwar dort direkt an eine bestimmte Stelle zu schreiben. Bevor Sie jetzt lange drüber nachdenken, wie und wo Sie das am besten machen, nehmen Sie einen Bereichsnamen. Zum Beispiel, ich mache das mal eben hier in einer der anderen geöffneten Arbeitsmappen. Hier ist eine leere, die Mappe2, ungespeicherte völlig beliebige Datei. Und dort werde ich einen Bereich einfach noch ein bisschen größer machen, weil da ja ein längerer Text kommt. Und der kriegt einen Bereichsnamen, diese Zelle nämlich. Den kann ich hier einfach einfügen. Der heißt ganz schlicht Adresse. Also die Zelle B4 heißt Adresse. Das hat den Vorteil: Wenn ich per Programmierung dorthin schreibe, muss ich mir keine Gedanken drüber machen, in welchem Tabellenblatt, in welcher Zelle das ist. Ich sage einfach, an den Bereichsnamen Adresse. Und jetzt muss ich dafür sorgen, dafür sollte ich natürlich wieder rüberwechseln, dass ich dieses auch richtig treffe. Ich muss mir merken, in Mappe2 habe ich es schon drin Und wenn ich jetzt also hier in meinen Code zurückwechsle, in das btnOK-Click, dann geht es jetzt um geöffnete Workbooks. Ich möchte als Erstes die dann markierte Datei zu meinem Workbook machen. Das ist nicht aktiv, aber ich kann es ansprechen. Also: wbkZiel As Workbook. Und hier steht dann erstmal einfach nur Set wbkZiel =. Und da das bereits geöffnet ist, muss ich eigentlich nur von allen Workbooks dasjenige nehmen, was den richtigen Namen trägt. Der richtige Name steht in der zweiten Spalte von lstZiele. Also Me.lstZiele.Column und (1) ist die zweite Spalte. Markiert ist schon das richtige. Ich muss also mir um die Zeile von lstZiele keine Gedanken machen. Der Einfachheit halber mache ich noch nicht wirklich was, sondern noch eine schnelle MsgBox, in der ich dann von wbkZiel.Name den Namen anzeigen lasse. Also einmal testen. Was immer ich hier oben anklicke, ich habe jetzt hier Mappe1 mal markiert. Und nach dem OK steht hier korrekt Mappe1. Dann können wir es direkt nochmal starten, damit es kein Zufall war. Mappe2, und nach dem OK steht hier Mappe2. Es gelingt mir also, auf die richtige, offene Workbook-Arbeitsmappe zuzugreifen. Damit können wir die MsgBox wieder wegschmeißen. Jetzt will ich da was wirklich reinschreiben. Und das muss ich auch hier gleich machen. Deswegen schreibe ich eine neue Prozedur dafür. Die können wir gern auch Private machen. Die ist eine Sub-Prozedur. SchreibeInExcelDatei. Und die kriegt ein wbkZiel As Workbook übergeben. Falls Sie gerade das Gefühl haben, das habe ich doch da oben schon deklariert: Nein, haben Sie nicht. Dies ist eine lokale Variable, gilt hierdrin. Die werden Sie möglicherweise gleich aufrufen, aber hier ist es eine andere lokale Variable, und die gilt nur hierdrin. Und hier sage ich dann, von dieser Datei, von diesem Workbook wbkZiel gibt es eine Names-Auflistung, Achtung Plural. Einer von diesen Names, nämlich Bereichsnamen, heißt Adresse. Und dessen RefersToRange, also die Umleitung auf den wirklichen Zellbereich brauche ich. Und dadrin will ich ein Value ändern. Und da ich mich ja noch in meinem Modul befinde, in meinem Formular-Modul, könnte ich jetzt theoretisch hier schreiben: Me.lblDetails.Caption. Und würde das dort einfügen. Das werde ich auch gleich erstmal machen, aber Sie werden sehen, ist noch nicht perfekt. Und hier rufe ich dann einfach auf SchreibeInExcelDatei, können Sie mit Strg+Leertaste erzeugen lassen. Und übergebe das Workbook wbkZiel. Und damit ich dann auch sehe, dass es geklappt hat, machen wir hier ein wbkZiel.Activate. Dann brauche ich keine Meldung hinterher machen. Also alles speichern, gucken, dass die richtig Datei aktiv ist. Und jetzt mit F5. Ich nehme mal den Störtebecker, schreibe in die Mappe2, nur die besitzt ja bisher den Bereichsnamen. Und nach dem OK ist hier erstmal nichts zu sehen. Aber jetzt sehen Sie, wenn ich mit Alt+F11 zurückwechsle, da ist Mappe2. Es ist aktiv geworden. Es steht drin. So weit sieht alles gut aus. Manchmal gibt es Probleme, dass Sie hier so eckige Kästchen sehen. Wenn der Zeilenumbruch nicht funktioniert, achten Sie drauf, wenn Sie Zellen formatieren, dass Sie dann möglicherweise in der Ausrichtung den Zeilenumbruch aktivieren müssen. Wenn Sie das nämlich nicht machen, kriegen Sie sowas zu sehen. Das ist derselbe Inhalt, nur die Zelle weiß nicht, dass sie den Zeilenumbruch aktivieren muss. Deswegen: Das ist abhängig von Ihrer Zieldatei, müssen Sie hier bei Ausrichtung Zeilenumbruch erlauben sozusagen, und das blendet dann diese Zeichen ein. Hat also wunderbar funktioniert. Es steht im Bereichsnamen Adresse. Dann brauchen wir nichts weiter dran zu verbessern, und sind jetzt also in der Lage, in eine geöffnete Excel-Datei hineinzuschreiben an die Stelle, an den Bereichsnamen Adresse, wenn er den denn hat. Der Fehler, dass dieser Bereichsname nicht existiert, wird jetzt der Bequemlichkeit halber nicht abgefangen. Da müssten wir eine ausführliche Fehlerbehandlung reinmachen. Das will ich Ihnen jetzt ersparen. Technisch funktioniert das also. Wir können in eine geöffnete Excel-Datei in den Bereichsnamen Adresse die gewünschte Adresse direkt einfügen.

Excel 2013 VBA für Profis

Nutzen Sie die Möglichkeiten der Programmiersprache VBA in Excel 2013, um eigene Dialoge zu erstellen, auf andere Arbeitsmappen zuzugreifen und wichtige Funktionen einzusetzen.

4 Std. 59 min (53 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!