Clever-Excel-Forum

Normale Version: Makro aus 27 Blätter bestimmte Zelle
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich hänge etwas an der nachfolgenden Situation. Und zwar habe ich 28 TabBlätter und von TabBlatt 3 bis TabBlatt 28 kopiere wert jeweils aus Zelle G3, gehe dann zu TabBlatt1 und füge alle 25 kopierten Werte ab Zelle L3 bis L27 senkrecht ein.

Kann mir vielleicht dabei jemand helfen. Danke im Voraus!!!
Hallo,

wie wäre es mit einer Formel:

Code:
=indirekt("TabBlatt "&Zeile()&"!G3")

In L3, nach unten ziehen
Hallo Edgar,

schön das du mir helfen möchtest. Die Formel löst Bezugsfehler aus. Das kann vielleicht an meiner Beschreibung liegen.

Also in TabBlatt1 in Spalte E ab Zeile 3 sind die Namen der anderen Tabellenblätter bis Zelle E27 enthalten. D.h. nehme den Wert aus Zelle E3 usw., suche TabBlatt in selbige Mappe mit dem Namen und gehe zu dem TabBlatt und kopieren den Wert aus Zelle G3 und füge es in TabBlatt1 in Zelle L3 ein.
Ich hab von Formeln nicht soviel Ahnung und weiß nicht ob es mit einer Formel zu erledigen ist. Hoffe aber es trotzdem verständlich erklärt zu haben.
Hallo Bernie,

in der Frage hast Du
TabBlatt 3
geschrieben. In Deiner Antwort auf die Lösung schreibst Du
TabBlatt1

Fall Deine Tabellenblätter kein Leerzeichen haben, dann musst Du das aus der Formel rausnehmen.

Code:
nicht =indirekt("TabBlatt "&Zeile()&"!G3")
sondern =indirekt("TabBlatt"&Zeile()&"!G3")
Hallo André,

irgendwie drücke ich mich falsch aus hier der Tabellenausschnitt ..
Arbeitsblatt mit dem Namen 'Depot'
BCDEFGHIJKL
NameBrancheIndizesKürzelWKN / ISINOrdervol. €StückKaufdatumOrder Stck.KaufkursLetzter
3M CompanyKonsumgüterDow JonesMMMUS88579Y1010     #BEZUG!

ZelleFormel
C3=WENN($B$3="";"";SVERWEIS($B$3;Kürzel!$A:$E;3;0))
D3=WENN(B3="";"";SVERWEIS($B$3;Kürzel!$A:$E;2;0))
E3=WENN($B3="";"";SVERWEIS($B$3;Kürzel!$A:$E;4;0))
F3=WENN($B3="";"";SVERWEIS($B$3;Kürzel!$A:$E;5;0))
L3=INDIREKT("TabBlatt"&ZEILE()&"!G2")

... und das hatte ich mit Recorder aufgezeichnet ...
Sub Makro8()
Sheets("MMM").Select
Range("G2").Select
Selection.Copy
Sheets("Depot").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub




VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel


Code erstellt und getestet in Office 14

Den Code müsste so abgeändert werden, dass für "Sheets("MMM").Select" es so aussehen sollte "Sheets(Tabelle Depot,Zelle E3).Select". Irgendwie mache ich immer einen Fehler.
Hallo Bernie,

wir waren doch noch bei der Ursachenforschung für den Fehler im Ergebnis der Formel in L3 ...

Zum code, ich bleibe erst mal bei dem aufgezeichneten
Da warst Du fast schon fertig Wink

Code:
Sub Makro8()
    Sheets(Sheets("Depot").Range("E3")).Select
    Range("G2").Select
    Selection.Copy
    Sheets("Depot").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
Wenn Du auf dem Blatt Depot bleibst, kann man einiges rausnehmen.

Code:
Sub Makro8()
    Sheets(Sheets("Depot").Range("E3")).Range("G2").Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

Hinweis: Die selektierte Zelle auf deinem Excel-Blatt Depot ist hoffentlich beim Start des Makro die richtige ... Ansonsten müsste man die im VBA-Code programmieren
Hallo André,

bekomme Fehlermeldung, weiß leider nicht weiter deshalb hier meine Testmappe. In Tabelle Depot Zelle L3 habe ich einen Kommentar abgelegt der das was ich suche nochmal darstellt.

Danke schon mal im Voraus.
Hallo Bernie,

mal deine Mappe zurück. Ich habe es hier mal in der Tabelle Depot mit einem Ereignismakro gelöst und zwar mit einem Rechte-Maus-Klick. Aber teste mal selber.
Hallo Bernie,

sorry, das ist so ein Fall, mit dem man begründen kann, warum man die "Standardeigenschaften" nicht ohne Angabe im Code verwenden sollte.
Oft reicht Range("E3") und es wird der Wert ausgegeben, z.B. MsgBox Range("E3") gibt dir MMM aus.

Beim Selectieren des Blattes reicht das nicht. Hier brauchst Du
Code:
Sheets(Sheets("Depot").Range("E3").Value).Select
Hallo André,

du erklärst das immer sehr anschaulich, so dass ich als VBA Laie es verstehen kann. Dafür nochmal Danke :15: