Wert aus anderem Tabellenblatt prüfen
#1
Hallo zusammen,

ich habe eigentlich eine ganz einfache Frage:

Wenn ich einen Tabellenblattnamen bspw. in Zelle B6 stehen habe, kann ich ganz einfach indirekt zum Reiter springen mit folgender Zeile:


Code:
Sheets(Range("B6").Value).Select


Wieso kann ich nicht einen Schritt weitergehen und eine Zelle auswählen bspw. so:


Code:
Sheets(Range("B6").Value).Range("A1").Select

Das war jetzt ganz allgemein gefragt, letztendlich will ich mir nur einen Wert holen, benötige aber den Schritt mit indirektem Tabellenblattnamen aus einer Zelle.
So was hätte ich gerne:



Code:
x = Sheets(Range("B6").Value).Range("A1").Value


Wieso? Was hat Excel für ein Problem?  :22:

Danke für jeden Tipp! 

Matti
Top
#2
Hallo Matti

das sind mehrere Fragen, die gehen in die Excel Grundkenntnisse.  Ich hopffe ich kann es dir richtig erklaeren.

Zitat:Sheets(Range("B6").Value).Select    
Sheets(Range("B6").Value).Range("A1").Select
x = Sheets(Range("B6").Value).Range("A1").Value
Der 1. Teil funktioniert, vorausgesetzt in der Zelle B6 steht ein gültiger Tabellen Name.  Sonst kommt Fehlermeldung!!
Der 3. Teil müsste auch funktionieren, vorausgesetzt  s. oben gültiger Tabellen Name!!

Der 2. Teil wird so nicht funktionieren, weil du zum Zeitpunkt des Aufrufs wahrscheinlich in einer anderen Tanelle bist. 
Wenn du zwei Zeilen daraus machst klappt es.  Zum eine Zelle mit Select anspringen braucht Excel ein gültiges Objekt.
Excel streikt aber zu recht, wenn du in einer anderen Tabelle bist, und willst in einer -fremden Tabelle- Zelle A1 anspringen!
Sheets(Range("B6").Value).Select
Range("A1").Select

Ein blöödes Beispiel:  wenn du mit deinem Auto an der Ampel stehst, kannst du auch nicht beim Nebenmann aufs Gas treten. 
Wie soll das gehen???  Wenn du das Auto wechselst, kein Thema!  Oder???  Kapiert???

mfg  Gast 123
Top
#3
Nachtrag

eine sehr wichtige Funktion von Excel, die Anfaenger leider nicht kennen, ist die Tatsache das Select zu 99% überflüssig ist.  
Excel kann Daten aus anderen Tabellen (und Mappen) auslesen, ohne das man die Tabelle dafür Selektieren muss. siehe dein 3. Code!

Du kannst den Nachbar Autofahrer ja auch nach dem Weg fragen, -ohne dafür- aussteigen zu müssen!!

mfg Gast 123
Top
#4
Hi,

(11.03.2017, 22:28)Gast 123 schrieb: Der 2. Teil wird so nicht funktionieren, weil du zum Zeitpunkt des Aufrufs wahrscheinlich in einer anderen Tanelle bist. 
Wenn du zwei Zeilen daraus machst klappt es.  Zum eine Zelle mit Select anspringen braucht Excel ein gültiges Objekt.
Excel streikt aber zu recht, wenn du in einer anderen Tabelle bist, und willst in einer -fremden Tabelle- Zelle A1 anspringen!
Code:
Sheets(Range("B6").Value).Select
Range("A1").Select

das könnte man analog zu folgendem Beitrag auch so probieren, vielleicht klappt es:
Code:
Application.Goto Worksheets(Range("B6").Value).Range("A1")
'oder
Application.Goto Range(" &Sheets(Range("B6").Value) & "!A1")
Top
#5
Hi,


gelöscht!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste