Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Namen definieren mit Variable

VBA Namen definieren mit Variable
Philipp
Hallo,
ich bin seit Stunden dabei einen Dynamischen Datenbereich für eine Pivottabelle zu definieren und komm einfach nicht weiter. Meine bisherigen Lösungsansätze:
Sheets("PRO_Report_alle").Names.Add Name:="ReportBereich", RefersToR1C1:="PRO_Report_alle!" & "A1" & ":" & "BF" & zeilen
Sheets("PRO_Report_alle").Names.Add Name:="Kunde", RefersToR1C1:="Pro_Report_alle!R" & _
'"1C1:R" & zeilen & "C" & 58
Bei Beiden Möglichkeiten zeigt er mir bei Prüfung des Namens das gewünschte ERgebnis an (z.B. ="PRO_Report_alle!A1:BF11023"). Allerdings kann ich den Namen nicht in die Pivottabelle einbeziehen. Er gibt mir immer den Fehler : "Bezug ist Ungültig".
Ich denke, dass liegt an den "" Zeichen... aber wie bekomme ich die weg?
Eine schnelle und einfache Lösung wäre super Danke!
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Namen definieren mit Variable
11.06.2010 20:01:01
Peter.H
Hallo Philipp
Versuche es hiermit...
Sheets("PRO_Report_alle").Names.Add Name:="ReportBereich", RefersTo:="=PRO_Report_alle!$A$1:$BF$" & zeilen
Gruß
Peter
Feedback wäre nett
AW: VBA Namen definieren mit Variable
11.06.2010 20:09:20
Philipp
Klappt super. Vielen Dank!!!
AW: dann vergiss bitte nicht,
11.06.2010 23:31:37
Daniel
in den anderen Foren, wo du diese Frage noch gestellt hast, die entsprechende Hinweismeldung zu geben, daß das Problem inzwischen gelöst ist.
nebenbei könntest du noch in den verschiedenen Foren die FAQ zum Thema "Crossposting" durchlesen.
Gruß, Daniel
Anzeige
AW: dann vergiss bitte nicht,
12.06.2010 10:37:38
Philipp
wenn mir in anderen Foren aber keine Antwort beommen habe ist es wohl sinnvoll die Frage auch andersweitig zu stellen....
AW: dann vergiss bitte nicht,
12.06.2010 11:26:55
Gerd
Hallo Philipp,
das ist nicht der Punkt. So "beschäftigst" Du verschiedene Leute mit deinem Problem,
ggf. auch nachdem Du schon eine Lösung erhalten hast.
Denn Du kannst einfach nicht unterstellen, dass jeder deine Frage u. Antworte in jedem Forum
liest. Also stelle bitte in den anderen Foren klar, dass dein Problem gelöst ist.
Gruß Gerd
Anzeige
AW: dann vergiss bitte nicht,
12.06.2010 11:48:43
Philipp
Da muss ich euch allerdings recht geben und habe dies auch umgehend gemacht.
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Namen definieren mit Variable


Schritt-für-Schritt-Anleitung

Um in Excel einen Namen dynamisch mit VBA zu definieren, kannst Du folgendes Vorgehen nutzen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deine Datei)" und wähle Einfügen > Modul.

  3. Schreibe den folgenden Code:

    Sub DefiniereNamen()
       Dim zeilen As Long
       zeilen = 11023 ' Beispielanzahl der Zeilen
    
       Sheets("PRO_Report_alle").Names.Add Name:="ReportBereich", RefersTo:="=PRO_Report_alle!$A$1:$BF$" & zeilen
       ' Alternativ: Verwendung von Referenzierung im R1C1-Stil
       ' Sheets("PRO_Report_alle").Names.Add Name:="Kunde", RefersToR1C1:="PRO_Report_alle!R1C1:R" & zeilen & "C58"
    End Sub
  4. Führe das Makro aus: Drücke F5, um das Makro auszuführen und den Namen zu definieren.

Damit hast Du erfolgreich einen Namen in Excel definiert, der sich an die Anzahl der Daten anpasst.


Häufige Fehler und Lösungen

  • Bezug ist Ungültig: Dieser Fehler tritt häufig auf, wenn der definierte Name nicht korrekt auf einen Bereich verweist. Stelle sicher, dass die Syntax korrekt ist, und verwende die RefersTo-Anweisung anstelle von RefersToR1C1, wenn Du den A1-Stil verwendest.
  • Falscher Arbeitsblattname: Überprüfe, ob der Arbeitsblattname in der Sheets()-Anweisung korrekt geschrieben ist.
  • Variable nicht definiert: Stelle sicher, dass die Variable zeilen korrekt initialisiert ist, bevor Du sie in der RefersTo-Anweisung verwendest.

Alternative Methoden

  1. Direkte Eingabe im Namensmanager: Du kannst Namen auch direkt im Excel Namensmanager definieren. Gehe zu Formeln > Namensmanager und füge einen neuen Namen hinzu.

  2. Nutzung von Excel-Formeln: Anstelle von VBA kannst Du auch dynamische Bereiche durch die Verwendung von Excel-Formeln wie BEREICH.VERSCHIEBEN() oder INDEX() definieren.


Praktische Beispiele

  • Dynamische Pivottabelle: Verwende den definierten Namen ReportBereich in Deiner Pivottabelle, um sicherzustellen, dass die Datenbasis automatisch aktualisiert wird, wenn neue Daten hinzugefügt werden.

  • Verwendung von R1C1: Um einen Namen im R1C1-Stil zu definieren, kannst Du diesen Code verwenden:

    Sheets("PRO_Report_alle").Names.Add Name:="Kunde", RefersToR1C1:="PRO_Report_alle!R1C1:R" & zeilen & "C58"

Tipps für Profis

  • Namen automatisch aktualisieren: Stelle sicher, dass Du die Namen regelmäßig aktualisierst, insbesondere wenn sich die Daten in den verwendeten Bereichen ändern.
  • Kommentare im Code: Verwende Kommentare in Deinem VBA-Code, um die Verständlichkeit zu erhöhen und zukünftige Anpassungen zu erleichtern.
  • Verwendung von Konstanten: Definiere Konstanten für häufig verwendete Werte, um die Wartbarkeit Deines Codes zu verbessern.

FAQ: Häufige Fragen

1. Frage
Wie kann ich einen Namen in Excel ändern?
Du kannst einen Namen im Namensmanager ändern oder im VBA-Editor den Code anpassen, um den bestehenden Namen zu überschreiben.

2. Frage
Welche Excel-Version benötige ich für VBA?
VBA ist in den meisten modernen Excel-Versionen enthalten. Stelle sicher, dass Du Excel 2010 oder neuer verwendest, um VBA in vollem Umfang nutzen zu können.

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