Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenübernahme mit Bezug auf CodeName

Datenübernahme mit Bezug auf CodeName
11.07.2016 14:55:37
Christof
Hallo zusammen,
ich habe ein kleines Problem bei der Erstellung einer Gesamtzusammenstellung.
Da ich noch keinen Beitrag erstellt habe, bitte ich um etwas Nachsicht, falls ich nicht die richtige Fragestellung bzw eine eindeutige Angabe meines Problems aufgestellt habe.
Folgender Fall:
Aus beispielsweise drei Blättern einer Arbeitsmappe soll der Bereich A1:G8 ausgewählt, kopiert und in das Arbeitsblatt Gesamt eingefügt werden
in diesem Beispiel habe ich eine Abfrage der Blätter eingebaut, was jedoch auch automatisiert werden könnte.
Beispiel:

Sub Kopieren()
Dim TabAnzahl As Integer
Dim x, y, z As Integer
Dim Block()
TabAnzahl = InputBox("Wie viele Blätter sind vorhanden?")
ReDim Block(TabAnzahl)
y = 1
For x = 1 To TabAnzahl
Worksheets("Tabelle" & x).Select
Block(x) = Worksheets("Tabelle" & x).Range("A1:G8").Value
Worksheets("Gesamt").Range("A" & y & ":G" & 7 + y) = Block(x)
y = y + 8
Next
Worksheets("Gesamt").Select
End Sub

Nun mein Problem:
Ich möchte nicht die Tabellennamen sondern auf den Codenamen zugreifen,
da die Tabellen nicht mit "Tabelle" sondern mit Namen wie "Gleis 1", "Weiche 2" etc benannt werden.
Der Codename des Vorlagearbeitsblattes würde bei der Ausgangsmappe beispielsweise Datenerfassung1 lauten.
Gibt es eine Möglichkeit, den Blattnamen im oben dargestellten Beispiel gegen den CodeNamen zu ändern?
Also auch, wenn ich beispielsweise bei Blatt Datenerfassung51 angelangt bin.
Gruß
Christof

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenübernahme mit Bezug auf CodeName
11.07.2016 15:12:24
Michael
Hi Chris,
ich bin mir nicht ganz sicher, was Du meinst, aber Du kannst auch so vorgehen:
Option Explicit
Sub abc()
Dim sh As Worksheet
Dim y As Long
y = 1
For Each sh In Worksheets
If sh.CodeName  "Gesamt" Then   ' ggf. hier weitere ausnehmen, mit Or
Gesamt.Range("A" & y).Resize(, 7).Value = sh.Range("A1").Resize(, 7).Value
End If
y = y + 8
Next
End Sub
Schöne Grüße,
Michael

AW: Datenübernahme mit Bezug auf CodeName
12.07.2016 13:07:38
Christof
Hallo Michael,
vielen Dank erst einmal für die schnelle Antwort.
Zur weiteren Erklärung:
Ich habe eine Massenermittlung als Vorlage erstellt.
Diese Vorlage ist versteckt und wird durch Ausführung eines Befehls als neues Arbeitsblatt mit einem frei zu vergebenden Namen kopiert bzw erstellt.
Dies kann, sagen wir mal, 20x erfolgen.
Die Vorlage hat einen Objektnamen oder auch CodeNamen Datenerfassung1,
die nächste Datenerfassung2, dann Datenerfassung3 etc.
Die berechneten Massen werden dann in der jeweiligen Tabelle in den Bereich A1 - G8 geschrieben.
Nun benötige ich eine Gesamtzusammenfassung der einzelnen Daten.
Soll heißen, bei der Ausführung der Routine soll der Bereich A1:G8 aus Datenerfassung2 (Datenerfassung1 wäre die Vorlage) in die Tabelle Gesamt kopieren, direkt darunter soll der Bereich A1:G8 aus Datenerfassung3 und so weiter einkopiert werden.
So erhalte ich eine Zusammenfassung sämtlicher Massen und kann diese für die weitere Kalkulation nutzen.
Ich habe Deine Antwort ausprobiert, jedoch habe bekomme ich einen Fehler bei Gesamt.Range, da die Variable nicht zugeordnet ist (Bin leider noch in der Lernphase).
Gruß
Christof

Anzeige
AW: Datenübernahme mit Bezug auf CodeName
12.07.2016 13:20:21
Christof
Hallo Michael,
vielen Dank erst einmal für die schnelle Antwort.
Zur weiteren Erklärung:
Ich habe eine Massenermittlung als Vorlage erstellt.
Diese Vorlage ist versteckt und wird durch Ausführung eines Befehls als neues Arbeitsblatt mit einem frei zu vergebenden Namen kopiert bzw erstellt.
Dies kann, sagen wir mal, 20x erfolgen.
Die Vorlage hat einen Objektnamen oder auch CodeNamen Datenerfassung1,
die nächste Datenerfassung2, dann Datenerfassung3 etc.
Die berechneten Massen werden dann in der jeweiligen Tabelle in den Bereich A1 - G8 geschrieben.
Nun benötige ich eine Gesamtzusammenfassung der einzelnen Daten.
Soll heißen, bei der Ausführung der Routine soll der Bereich A1:G8 aus Datenerfassung2 (Datenerfassung1 wäre die Vorlage) in die Tabelle Gesamt kopieren, direkt darunter soll der Bereich A1:G8 aus Datenerfassung3 und so weiter einkopiert werden.
So erhalte ich eine Zusammenfassung sämtlicher Massen und kann diese für die weitere Kalkulation nutzen.
Ich habe Deine Antwort ausprobiert, jedoch habe bekomme ich einen Fehler bei Gesamt.Range, da die Variable nicht zugeordnet ist (Bin leider noch in der Lernphase).
Gruß
Christof

Anzeige
AW: Datenübernahme mit Bezug auf CodeName
12.07.2016 13:48:25
Michael
Hi Christof,
Gesamt.Range funktioniert nur dann, wenn Du dem Blatt auch den CODEnamen Gesamt zugewiesen hast.
Ich habe mal alles in eine Datei gesteckt: https://www.herber.de/bbs/user/106950.xlsm
und das Makro auf Deine Angaben angepaßt:
Sub Import()
Dim sh As Worksheet
Dim y As Long
y = 1
For Each sh In Worksheets
If Mid(sh.CodeName, 1, 14) = "Datenerfassung" Then
If Len(sh.CodeName) > 14 Then
If Mid(sh.CodeName, 15)  "0" Then
Gesamt.Range("A" & y).Resize(, 7).Value = sh.Range("A1").Resize(, 7).Value
y = y + 8
End If
End If
End If
Next
End Sub
Schöne Grüße,
Michael

Anzeige
AW: Datenübernahme mit Bezug auf CodeName
12.07.2016 15:40:41
Christof
Hallo Michael,
Ich ziehe meinen Hut, vielen Dank, genau so hatte ich es gedacht.
Es klappt auch fast ganz gut, nur werden bei mir ausschließlich die Bereiche A1:G1 übertragen.
Was müsste hier noch geändert werden?
Gruß
Christof

ups, verschaut
12.07.2016 18:43:20
Michael
Hi,
das hab ich glatt übersehen...
Steuern kannst Du das über .resize(zeilen,spalten), d.h. range("A1").resize(2,2) = Range("A1:B2"), ok?
Konkret also statt resize(,7) dann resize(8,7)
Schöne Grüße,
Michael

AW: ups, verschaut
13.07.2016 08:29:43
Christof
Hallo Michael,
vielen Dank für die schnelle und vor allem unkomplizierte Hilfe.
Gruß
Christof

Anzeige
gerne, vielen Dank für die Rückmeldung,
13.07.2016 11:07:47
Michael
Christof,
und schöne Grüße zurück,
Michael

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige