Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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
Antworten Top
#4
Hi,

(11.03.2017, 21: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")
Antworten Top
#5
Hi,


gelöscht!
Gruß

Edgar

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


Gehe zu:


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