Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
996to1000
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 aus worksheets kopieren

Daten aus worksheets kopieren
05.08.2008 11:05:00
Squooshie
Hallo
Ich habe folgendes Problem.
In einer Arbeitsmappe werden Daten aus mehreren Arbeitsblättern auf ein Haupt-Arbeitsblatt kopiert.
Um das zu erreichen, habe ich eine For Schleife gebastelt, die die einzelnen Worksheets etwa so
n=thisworkbook.worksheets.count
for i=2 to n
worksheets(i).range ...
usw.
nun ist aber mein Problem, dass zwischenzeitlich Worksheets gelöscht wurden und die Nummerierung nicht fortlaufend ist, und wenn nun 77 worksheets gezählt werden kopiert das Programm höchstens bis Worksheet Nr. 77 , alle weiteren Worksheets werden unbeachtet. Anfangs gab es auch Probleme, da z.B. Worksheet 9 nicht existiert und dadurch ein Fehler beim kopieren entstand. Das habe ich aber durch "on error resume next" behoben.
Kann ich mir irgendwie die höchste vergebene Worksheet nummer anzeigen lassen?Das würde mein Problem bereits lösen.
Besten Dank im Vorraus
Mfg Squooshie

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus worksheets kopieren
05.08.2008 11:24:14
Tino
Hallo,
habe zwar kein Office2000, aber die Nr. ist doch der Platz wo Deine Tabelle in der Mappe steht?
Also wenn ich zBsp. worksheets(2) lösche wird aus worksheets(3), dass worksheets(2).
Kann Dein Problem nicht nachvollziehen oder ich verstehe Deine Frage nicht.
Gruß Tino

AW: Daten aus worksheets kopieren
05.08.2008 11:26:00
Andreas
Hi,
vielleicht so?
Dim ws As Worksheet
Dim IntHighestIndex As Integer
For Each ws In ThisWorkbook.Worksheets
If ws.Index > IntHighestIndex Then
IntHighestIndex = ws.Index
End If
Next ws
MsgBox IntHighestIndex
Grüße
Andreas

AW: Daten aus worksheets kopieren
05.08.2008 11:51:07
Squooshie
Hallo
Ich werde das jetzt mal probieren, aber vielleicht fällt jemand anders ja noch eine bessere Lösung ein.
Und zu Tinos Beitrag:
Es ist , bei mir jedenfalls, nicht so. Wenn ich Blatt 2 lösche bleibt das nachfolgende Blatt die Nummer 3.
Wäre ja auch schlecht , denn dann müsste man ja die ganzen direkten Verweise zb in vba ändern.
Das einzige was passiert ist, dass die Lücke mit dem nächsten Blatt, dass erstellt wird, geschlossen wird.

Anzeige
AW: Daten aus worksheets kopieren
05.08.2008 11:56:00
Tino
Hallo,
ist mir neu und ich habe schon ein bar einzeiler geschrieben. ;-)
Gruß Tino

AW: Frage ist offen.
05.08.2008 11:56:52
Tino

AW: Daten aus worksheets kopieren
05.08.2008 12:35:00
yusuf
Hi,
eigentlich hat dir Andreas Emmert ja indirekt eine Loesungmoeglichkeit aufgezeigt.
Wenn du anstatt der Blattnummer die Blaetter nimmst erledigt sich dein Problem.

Sub sheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
worksheets(i).range ...
Next ws
End Sub


Gruß
Yusuf

AW: Daten aus worksheets kopieren
05.08.2008 12:38:01
yusuf
Hi,
sry hab nicht richtig gelesen.
Musst ja nicht alle Blaetter durchgehen sondern ab dem zweiten erst.
Bloed das man nicht editieren kann, wenn man einen Beitrag schon abgeschickt hat.
Gruß
Yusuf

Anzeige
AW: Daten aus worksheets kopieren
05.08.2008 13:36:39
yusuf
Hi,
obwohl, du koenntest ja eventuell per if Abfrage ueber den Namen der Blaetter das erste Blatt auslassen.
z.B.:
If ws.name = "erstes Blatt" then
goto weiter
end if
weiter:
Next ws
Gruß
Yusuf

AW: Daten aus worksheets kopieren
05.08.2008 15:16:00
Squooshie
Hallo
Ich muss ja garkein Blatt auslassen. Es ist einfach so, dass die Index zahlen der Blätte bis 77 gehen, und in meienr Schleife jedoch die Blätter mit "worksheets(x)" abgefragt werden. Die index Nummer ist jedoch eine andere als die Nummer unter der Excel die Arbeitsblätter abspeichert.
Z.B. ist das Blatt mit Index 50 im visual basic als Tabelle60(Dateiname) abgespeichert. Wenn ich jetzt
eine For Schleife habe, und dort das Arbeitsblatt mit "worksheets(i)" anspreche steht das i jedoch nicht für die Index Nummer sondern für die andere Nummer. Sprich das Blatt heißt Tabelle60, der Index ist auf Grund einer Verschiebung 50 und wenn ich nun meine Schleife bis 50 zählen lasse, dann wird Tabelle60 nicht bearbeitet.
Gibt es eine Möglichkeit die Indexnr in einer Schleife abzufragen?

Anzeige
AW: Daten aus worksheets kopieren
05.08.2008 16:48:00
Tino
Hallo,
ich denke du verwechselst da was!
Das eine ist der Objektname, dass andere der Tabellenname und der Index hat damit nichts zu tun.
Aber dies hatten wir schon mal! oder?
Gruß Tino

www.VBA-Excel.de


AW: Daten aus worksheets kopieren
05.08.2008 17:03:27
Tino
Hallo,
hier mal ein Beispiel.
Aktiviere bei dir mal das Direktfenster.
Neue Datei mit 3 Tabellen und lass dieses Makro laufen.

Sub meineTabellen()
Dim meTab As Integer
For meTab = 1 To Worksheets.Count
Debug.Print Sheets(meTab).Name
Next meTab
End Sub


Nun lösche mal die zweite Tabelle und lass dieses nochmal laufen.
Nun kannst du erkennen, dass Tabelle3 jetzt den Index 2 hat und nicht mehr 3.
Aber wie gesagt ich habe kein Office2000, aber ich denke dies wurde von Bill nicht geändert.
Gruß Tino

www.VBA-Excel.de


Anzeige
AW: Daten aus worksheets kopieren
05.08.2008 22:58:00
Hubert
Hi,
wenn Blätter gelöscht und hinzugefügt werden, kannst du das mit dem Index vergessen,
machs über die Namen oder besser über die Codenamen der tabellen.
mfg Hubert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige