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

Forumthread: Zelladresse auslesen u. zu best. Zelle springen

Zelladresse auslesen u. zu best. Zelle springen
11.01.2013 11:12:21
Saja
Hallo Leute,
folgende Aufgabe kann ich nicht lösen:
Im Excel in der Tabelle1 und in der Zeile A1 habe ich eine Zelladresse per Formel ausgelegen und diese dort hinterlegt (hier: F1 aus der Tabelle2). In der gleichen Tabelle und in der Zeile A2 steht die Zieltabelle (hier: Tabelle2)
Jetzt möchte ich über Excel vba zu dieser Adresse sowie eine Zeile tiefer springen (also Tabelle2 Zelle F2). Die Adresse ist variabel d.h. je nach Eingabe aktueller Zahlen ändert sich diese, so dass es nicht immer F1 als Zieladresse im Tabellenblatt 2 sein wird.
Weiß jemand ein Rat?
Vielen Dank im Voraus für eure Hilfe.
Gruß
Saja

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zelladresse auslesen u. zu best. Zelle springen
11.01.2013 11:22:13
Hajo_Zi
warum nicht ein Hyperklink?

AW: Zelladresse auslesen u. zu best. Zelle springen
11.01.2013 11:28:42
Saja
Hyperlink ist schlecht, da ich es vollständig automatisieren möchte. Die VBA-Prozedur geht dann weiter, Werte werden ermittelt, kopiert eingefügt und berechnet. Am ende soll nur das Ergebnis ausgegeben werden. Die ganze Auswertung soll schließlich auf Knopfdruck funktionieren.
Gruß Saja

Anzeige
AW: Zelladresse auslesen u. zu best. Zelle springen
11.01.2013 11:43:44
Matthias
Hallo
Zitat
Jetzt möchte ich über Excel vba zu dieser Adresse sowie eine Zeile tiefer springen
Zitat
Am ende soll nur das Ergebnis ausgegeben werden
Warum willst Du denn dann zu dieser Adresse springen, wenn Du nur ein Ergebnis ausgeben willst?


hier trotzdem mal eine Variante:
Option Explicit
Sub saja()
Dim rng As String
On Error GoTo ErrAddress
Application.ScreenUpdating = False
rng = Tabelle1.Range("A1").Text
Tabelle2.Activate
Range(rng).Offset(1, 0).Select
Exit Sub
ErrAddress:
Tabelle1.Activate
Application.ScreenUpdating = True
End Sub
https://www.herber.de/bbs/user/83356.xls


Wäre aber mit dem ganzen Ativate/Select nicht nötig
Gruß Matthias

Anzeige
AW: Zelladresse auslesen u. zu best. Zelle springen
11.01.2013 12:15:05
Saja
Hallo Matthias,
das sieht schon mal gut aus. Im Tabellenblatt 1 und in der Zelle A2 soll der Tabellenblatt angegeben werden, in meinem Beispiel ist das Tabelle2. Der Tabellenblatt kann ebenfalls sich ändern, so das die Prozedur A2 mitberücksichtigen (lesen) und in das entsprechende Tabellenblatt (A2) und in die Zelle (A1) springen sollte.
Zu Deiner Frage:
Ich schreibe eine "Mega" Prozedur wo es um Berechnungen geht und am Ende das Ergebnis ausgegeben werden soll. Das beschriebene Problem von mir wo ich nicht weiter komme ist nur ein kleiner aber entscheidender Baustein von der gesamten Prozedur. Liefert aber nicht das Endergebnis.
Besten Dank im Voraus!
Gruß
Saja

Anzeige
Die Lösung!
11.01.2013 14:17:35
Saja
Hallo Matthias,
ich habe an deiner Prozedur rumgebastelt und habe die Lösung gefunden :o)
Dabei habe ich die starre Vorgabe des Tabellenblattes
Tabelle2.Activate mit Worksheets(Worksheets("Tabelle1").Range("A2").Value).Activate
ersetzt und es klappt hervorragend!
Noch einmal Danke für die Hilfe.
Beste Grüße
Saja
...und hier noch einmal die vollständige Prozedur:
Sub saja()
Dim rng As String
On Error GoTo ErrAddress
Application.ScreenUpdating = False
rng = Tabelle1.Range("A1").Text
Worksheets(Worksheets("Tabelle1").Range("A2").Value).Activate
'Tabelle2.Activate
Range(rng).Offset(1, 0).Select
Exit Sub
ErrAddress:
Tabelle1.Activate
Application.ScreenUpdating = True
End Sub

Anzeige
gut wenns geholfen hat + Hinweis
11.01.2013 18:28:53
Matthias
Hallo
Freut mich wenn ich etwas helfen konnte
Kleiner Hinweis
Benutze statt
Dim RnG As String
Dim StrG As String
Dadurch kann man schon beim Lesen des Code erkennen das es sich um eine String-Variable handelt.
RnG benutze ich eingentlich für RanGe, hatte es aber leider versäumt vor meinem Beitrag die Variable anzupassen.
Gruß Matthias
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zelladresse auslesen und zu einer bestimmten Zelle springen


Schritt-für-Schritt-Anleitung

  1. Zelladresse in Tabelle1 festlegen: In Zelle A1 der Tabelle1 legst du die Zelladresse fest, zu der du springen möchtest (z.B. F1 in Tabelle2).

  2. Zieltabelle angeben: In Zelle A2 der Tabelle1 gibst du den Namen der Zieltabelle an (in diesem Beispiel Tabelle2).

  3. VBA-Prozedur erstellen: Öffne den VBA-Editor (ALT + F11) und füge das folgende Skript in ein neues Modul ein:

    Sub saja()
       Dim rng As String
       On Error GoTo ErrAddress
       Application.ScreenUpdating = False
       rng = Tabelle1.Range("A1").Text
       Worksheets(Worksheets("Tabelle1").Range("A2").Value).Activate
       Range(rng).Offset(1, 0).Select
       Exit Sub
    ErrAddress:
       Tabelle1.Activate
       Application.ScreenUpdating = True
    End Sub
  4. Prozedur ausführen: Du kannst die Prozedur nun ausführen, um zu der angegebenen Zelladresse in der Zieltabelle zu springen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"
    Lösung: Überprüfe, ob der Name der Zieltabelle in Zelle A2 korrekt eingegeben wurde.

  • Fehler: Zelle nicht gefunden
    Lösung: Stelle sicher, dass die Zelladresse in Zelle A1 korrekt ist und tatsächlich existiert.

  • Endergebnis beim Eintragen von weiteren Summen nach unten verschieben
    Lösung: Verwende Range(rng).Offset(n, 0).Select, wobei n die Anzahl der Zeilen ist, die du nach unten springen möchtest.


Alternative Methoden

  • Hyperlinks verwenden: Für eine manuelle Navigation kann ein Hyperlink in Excel erstellt werden. Dies ist jedoch nicht automatisiert und eignet sich weniger für komplexe Aufgaben.

  • Excel-Formel: Du kannst die Funktion INDIREKT() in Excel verwenden, um auf eine Zelle zuzugreifen. Der Einsatz könnte jedoch komplex werden, wenn die Zellen dynamisch sind.


Praktische Beispiele

  • Beispiel 1: Angenommen, du hast in Tabelle1 in A1 den Wert "F1" und in A2 "Tabelle2". Wenn du die Prozedur ausführst, springt Excel zu Tabelle2, Zelle F2.

  • Beispiel 2: Wenn du A1 auf "A3" und A2 auf "Tabelle3" setzt, wird Excel zu Tabelle3, Zelle A4 springen.


Tipps für Profis

  • Verwendung von With-Anweisungen: Du kannst den Code optimieren, indem du With-Anweisungen verwendest, um die Lesbarkeit und Effizienz zu erhöhen.

  • Vermeide Activate und Select: Diese Befehle sind oft überflüssig und verlangsamen den Code. Arbeite stattdessen direkt mit Objekten.

Sub Optimiert()
    Dim rng As Range
    Set rng = Worksheets("Tabelle1").Range("A1")
    Worksheets(Worksheets("Tabelle1").Range("A2").Value).Range(rng.Value).Offset(1, 0).Value = "Neuer Wert"
End Sub

FAQ: Häufige Fragen

1. Wie kann ich die Zelle Adresse auslesen?
Du kannst die Zelladresse mit Range("A1").Address auslesen, um die genaue Adresse der Zelle zu erhalten.

2. Gibt es eine Formel, um zu einer Zelle zu springen?
Ja, du kannst die INDIREKT()-Funktion verwenden, um auf eine Zelle zuzugreifen, jedoch ist dies nicht direkt mit einem "Sprung" verbunden, sondern eher eine Referenz.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige