Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1424to1428
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

archivieren von tabellenblättern

archivieren von tabellenblättern
13.05.2015 14:02:58
tabellenblättern
hallo,
ich habe ein Excel Problem, für das ich leider keine Lösung weiß.
Folgende Grunddarstellung:
Eine Arbeitsmappe mit
Sheet 1 - Übersicht
Sheet 2-20 mit Detailblättern. Die Detailblätter heißen 1000, 2000, 3000 etc.
In der Übersicht sind diese Nummern in Spalte C gelistet.
Ich hätte gerne einen VBA Code der von mir gekennzeichnete Nummern in der Übersicht(z.B. "x" in Spalte "Archivieren"):
1: die Zeile entsprechender Nummer (z.B. 2000) kopiert und in eine neue Mappe spielt, dann aus Ursprungsmappe löscht (ohne das eine Leerzeile bleibt)
2: entsprechendes Sheet (z.B. 2000) kopiert und aus Ursprungsdatei löscht
gibt's dafür eine Lösung?
Besten Dank im Voraus
Gruß Bianca

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: archivieren von tabellenblättern
13.05.2015 14:21:58
tabellenblättern
Hallo Bianca,
ich würde erst 2. und dann 1. machen, wenn 2. erfolgreich war.
Zu 2. kannst Du mit VBA gut selbst recherchieren, z.B. Excel vba blatt in neue Datei verschieben
Zu 1. recherchiere: excel vba zeile löschen
und Du triffst u.a. https://www.herber.de/forum/archiv/408to412/409217_in_VBA_Zeilen_loeschen.html
Reicht Dir das?
Schöne Grüße,
Michael

AW: archivieren von tabellenblättern
13.05.2015 14:38:45
tabellenblättern
es hilft mir etwas weiter, reicht mir aber nicht vollständig.
Zuerst Punkt 2 und dann 1 zu tun, ist absolut die bessere Lösung - danke!
und mit zu Punkt 1 komme ich schon irgendwie zurecht.
Das Grundproblem ist eigentlich, dass ich nicht weiß, wie ich im Code das Sheet ansprechen soll...
beim Aufzeichnen sieht es ja so aus
Sub Makro1()
Sheets("2000").Select
Sheets("2000").Move Before:=Workbooks("Archiv.xlsm").Sheets(1)
Windows("Bau.xlsm").Activate
End Sub
aber wie schaffe ich es, dass er diese Auswahl (Sheet xxxx) aus der Übersicht in den Code bekommt.
also wenn zeile 1 irgendwie gekennzeichnet ist, lösche sheet mit Namen aus zeile 1 Spalte B...
Gruß Bianca

Anzeige
AW: archivieren von tabellenblättern
13.05.2015 15:36:07
tabellenblättern
Hi Bianca,
also gut, Du hast ja in Deiner Übersicht die Namen in einer Spalte stehen, meinetwegen A5:A20.
So einen Bereich kann man gut mit einer for/each-Schleife durchlaufen. Nur: wenn Du zwischendrin Zeilen löschst, könnte die zicken. Ich würde in einer Spalte "rechts" ein Kennzeichen setzen, wenn der Export erfolgreich war, z.B. ein "x" oder "ok", um dann, wenn die Kopierei (bzw. Verschieberei) erledigt ist, alles Löschen, wo ein "ok" steht.
Du kannst den Bereich händisch auf eine Größe setzen, die "immer groß genug ist" oder die Untergrenze per VBA ermitteln (in dem Fall A5:A20 wäre das so: Variable von=5 händisch zuweisen, Variable
bis = Range("a5").End(xlDown).Row
In Deiner Schleife durchläufst Du dann alle Zellen in etwa so:
Sub machen()
Dim von As Long, bis As Long
Dim z As Range
Dim blatt As String
von = 5
bis = Range("a5").End(xlDown).Row
For Each z In Range("A" & von & ":A" & bis)
blatt = z.Value
Range("B" & z.Row) = "x"
MsgBox "Blatt " & blatt & "so verwenden: Sheets(blatt)"
Next
End Sub
Du kannst nämlich einen konkreten Werten bei Sheets einsetzen (z.B. "2000") oder eine (String-)Variable.
Schöne Grüße,
Michael

Anzeige
AW: archivieren von tabellenblättern
13.05.2015 15:44:47
tabellenblättern
ok, ich danke dir...werde das morgen gleich mal testen
Gruß Bianca

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige