Daten aus anderem Blatt in aktives übernehmen

Hallo Leute!

Nachdem Ihr mir letzte Woche so toll geholfen habt, habe ich Blut geleckt und mich an die weitere Automatisierung meiner Excel-Datenbestände gemacht. :smile:
Jetzt hänge ich wieder fest.

Ich habe eine Arbeitsmappe mit mehreren Blättern.
Jetzt soll per Makro auf einem weiteren angehängten Blatt quasi eine Zusammenfassung mit den wichtigsten Daten aus den anderen Blättern erzeugt werden.

Wie kann ich mir nun die Daten aus den anderen Tabellenblättern ziehen?

Ich habe es versucht mit:

Cells(ZZeile, „A“) = Tabelle1!Cells(AZeile, „C“)
oder
Cells(ZZeile, „A“) = Tabelle1.Cells(AZeile, „C“)

aber er meint „Laufzeitfehler 424: Objekt erforderlich“.
(AZeile und ZZeile sind Zähler, die in einer Schleife hochgezählt werden.)

In der Hoffung auf wieder so tolle Hilfe :smile:

Gruß
Hans

Hi Hans,
poste mal den gesamten Code.
Gruß
Reinhard

Hallo Hans.

Cells(ZZeile, „A“) = Tabelle1.Cells(AZeile, „C“)

Diese Schreibweise ist für VBA nicht ganz korrekt. VBA erwartet für „Cells“ zwar die Angabe einer Spalte, jedoch muß an der Stelle, an der Du als Spalte „A“ angegeben hast auch eine Zahl vom Daten-Typ Long stehen. Das bedeutet, Du mußt für Spalte „A“ eine 1 schreiben, für Spalte „B“ eine 2 usw.

Die korrekte Syntax für Deinen obigen Code muß dann lauten

Cells(ZZeile, 1) = Tabelle1.Cells(AZeile, 3)

Viele Grüße
Carsten

Falsche Fährte gelegt, sorry…
Vielen Dank für Deine Antwort, Carsten!

Diese Schreibweise ist für VBA nicht ganz korrekt. VBA
erwartet für „Cells“ zwar die Angabe einer Spalte, jedoch muß
an der Stelle, an der Du als Spalte „A“ angegeben hast auch
eine Zahl vom Daten-Typ Long stehen. Das bedeutet, Du mußt für
Spalte „A“ eine 1 schreiben, für Spalte „B“ eine 2 usw.

Die korrekte Syntax für Deinen obigen Code muß dann
lauten

Cells(ZZeile, 1) = Tabelle1.Cells(AZeile, 3)

Es funktioniert inzwischen sowohl mit Buchstaben, als auch Zahlen für die Spalten-Bezeichnung.

Der Hase lag woanders im Pfeffer.
Ich habe das Tabellenblatt nämlich in „Gesamtliste“ umbenannt, hier aber der Einfachheit wegen „Tabelle1“ gepostet… 'tschuldigung!

Im VBA-Editor ist mir dann aufgefallen, daß das Blatt trotzdem noch „Tabelle1“ heißt und nur in Klammern dahinter „Gesamtliste“ steht.
Ergo:
falsch:

Cells(ZZeile, "A") = Gesamtliste.Cells(AZeile, "C")

richtig:

Cells(ZZeile, "A") = Tabelle1.Cells(AZeile, "C")

Gibt es irgendeine Möglichkeit, daß ich im Code „Gesamtliste“ statt „Tabelle1“ schreiben kann? Ist kein Muß, wäre aber schön, weil’s übersichtlicher ist.

Gruß
Hans

Hallo Reinhard, erstmal ist das akute Problem gelöst. Aber das nächste kommt bestimmt… vielleicht ist dann der ganze Code fällig. :wink:

Hallo Hans

Ich habe das Tabellenblatt nämlich in „Gesamtliste“ umbenannt,
hier aber der Einfachheit wegen „Tabelle1“ gepostet…

Da Umbenennen der Sheets ist immer lästig. Daher folgender Vorschlag (nur das Prinzip)

Ändere den codeNamen des „Masters“ zb ,in master, dann

master.cells.copy
for i=1 to activeworkbook.count
if activeworkbook.sheets(i).codename „master“ then
activeworkbook.sheets.cells.pastespecial …
end if
next

Hab hier kein Excel am Start, könnte also noch etwas „Schreibfehler“ haben…

mfg

Dirk.Pegasus

1 „Gefällt mir“

Hallo Hans.

Der Hase lag woanders im Pfeffer.
Ich habe das Tabellenblatt nämlich in „Gesamtliste“ umbenannt,
hier aber der Einfachheit wegen „Tabelle1“ gepostet…
'tschuldigung!

Das macht ja nichts.

Im VBA-Editor ist mir dann aufgefallen, daß das Blatt trotzdem
noch „Tabelle1“ heißt und nur in Klammern dahinter
„Gesamtliste“ steht.
Gibt es irgendeine Möglichkeit, daß ich im Code „Gesamtliste“
statt „Tabelle1“ schreiben kann? Ist kein Muß, wäre aber
schön, weil’s übersichtlicher ist.

Ja, das ist kein Problem. Wenn Du im Visual-Basic-Editor bist, markiere im Projekt-Explorer den Eintrag „Tabelle1 (Gesamtliste)“. Falls das Eigenschaftenfenster noch nicht geöffnet ist, öffne dies bitte über das Menü „Ansicht“ > „Eigenschaftenfenster“. Dort findest Du für Tabellenblätter die Eigenschaft

Name

und die Eigenschaft

(Name)

Die zweite in Klammern kannst Du dann auch umbenennen in „Gesamtliste“ und die Tabelle danach im Code einfach mit diesem Namen ansprechen.

Viele Grüße
Carsten

1 „Gefällt mir“

Codename ändern
Hallo Carsten,
ich hatte glaub noch nie das Eigenschaftsfenster bei einem Blatt auf, deshalb danke dir wie das manuell geht den Codenamen zu ändern, wußte ich nich.
Da mich das ineteressiert wie das mit Vba geht, denn die Hilfe zu Codename sagt, es ginge nicht zur Laufzeit, fragte ich woanders nach und K.Rola hat mir die Lösung gegeben:

Sub CodeName\_ändern()
Dim s As Long, CName As String, wks As Worksheet, wb As Workbook
Set wb = ThisWorkbook
For Each wks In wb.Worksheets
 CName = wks.CodeName
 s = s + 1
 ThisWorkbook.VBProject.VBComponents(CName).Properties(5).Value = "KRola" & s
Next
End
End Sub

Und, wenn ich ihr Vba-Wissen sehe und meins, ich könnte heulen, da brauche ich noch Jahrzehnte für :frowning:
Egal, Lebbe geht weiter und irgendwann wirds auch Sommer und wir stöhnen unter der Hitze :smile:
Andrerseis soll es auch mit Risiken behaftet sein den Codenamen zu ändern, ich bekam diesen Link, habe ihn aber noch nicht durchforstet:
http://www.xlam.ch/soscq/fragen.htm#%DCbersicht
Gruß
Reinhard

Codename ändern birgt Gefahren
Hallo,
hier der genauere Link zu den Problemen wenn man den Codenamen während der Laufzeit ändert:
http://www.xlam.ch/soscq/fragen.htm#Kann%20man%20ein…?
Gruß
Reinhard

Hallo Reinhard.

Ich habe mir den Link jetzt nicht angesehen. Meiner Meinung ist das Ändern des CodeName eines Objektes zur Laufzeit Unsinn. Selbst wenn es möglich ist, fällt mir absolut kein Grund ein, warum man das machen sollte. Danach erhält man doch bestimmt eine Fehlermeldung nach der anderen („Objekt erforderlich“).

Viele Grüße
Carsten

Ich habe mir den Link jetzt nicht angesehen. Meiner Meinung
ist das Ändern des CodeName eines Objektes zur Laufzeit
Unsinn. Selbst wenn es möglich ist, fällt mir absolut kein
Grund ein, warum man das machen sollte. Danach erhält man doch
bestimmt eine Fehlermeldung nach der anderen („Objekt
erforderlich“).

Hallo Carsten,
diese eine Linkseite lohnt sich immer.
Ich wollte ja auch nur wissen ob und wie man den Codenamen ändern kann.
Ich habe es an einer neuen leeren Datei getestet, gab da keine Fehler, aber mit anderen Codes oder Funktionen kann es natürlich crashen :smile:
Gruß
Reinhard

Danke Dirk, werd’s ausprobieren owt.

-)

Danke Carsten, manche Dinge sind so einfach, man weiß es nur meist nicht. :smile: