Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
988to992
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
988to992
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Waisenkinder ausfindig machen

Waisenkinder ausfindig machen
29.06.2008 18:19:34
Steffen
Hallo in die Runde,
in meinem Übersichtblatt habe ich in A4 bis A120 alle Tabellenblätter namentlich aufgelistet, die in dieser Mappe vorhanden sind,
ich möchte gern per vba prüfen, ob es blätter gibt, die nicht in meiner übersicht vorhanden sind (also alle blattnamen auslesen und mit der Liste vergleichen)
Im archiv habe bisher nur artikel gefunden, die es genau andersrum durchführen -:(
aber ich bin mir sicher, dass ihr mir helfen könnt.

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

Betreff
Datum
Anwender
Anzeige
AW: Waisenkinder ausfindig machen
29.06.2008 18:42:00
Daniel
Hi
das könntest du mit diesem Makro tun:

Sub SheetsPrüfen()
Dim sh As Worksheet
Dim Liste As String
Dim Bereich As Range
Set Bereich = Sheets("Übersichtsblatt").Range("A1:A120")
For Each sh In ThisWorkbook.Worksheets
If WorksheetFunction.CountIf(Bereich, sh.Name) = 0 Then
Liste = Liste & Chr(10) & "-" & sh.Name
End If
Next
MsgBox "Folgende Blätter fehlen:" & Liste
End Sub


Gruß, Daniel

Danke
30.06.2008 14:40:00
Steffen
Hallo Daniel,
du hast mir sehr geholfen, so habe ich das gewünschte ergebnis hinbekommen.
natürlich auch Dank an Boris
Gruß Steffen

Anzeige
AW: Waisenkinder ausfindig machen
29.06.2008 19:40:21
{Boris}
Hi Steffen,
mach es Dir doch noch einfacher, indem Du alle vorhandenen Blätter nicht manuell sondern automatisch auflistest. Dann kannst Du Dir auch einen Abgleich sparen, da die Auflistung immer aktuell ist.
Mangels Excel auf diesem Rechner aus der Hand:
Definiere den Namen Alle (Strg+ F3) mit Bezug auf:
=ARBEITSMAPPE.ZUORDNEN(1+0*JETZT())
Schreibe in irgendeine Zelle (und dann weit genug runterkopieren):
=WENN(ZEILEN($1:1)>ANZAHL2(Alle);"";INDEX(Alle;ZEILEN($1:1)))
Dann hast Du alle Blätter.
Grüße Boris

AW: Waisenkinder ausfindig machen
30.06.2008 15:38:23
Reinhard
Hallo Boris,
warum benutzt du Zeilen($1:1) und nicht:
=WENN(ZEILE()>ANZAHL2(Alle);"";INDEX(Alle;ZEILE()))
ist doch einfacher, oder gibt es da andere Gründe?
Und, wenn nur die Blattnamen interessant sind:
Name: Alle:
=WECHSELN(ARBEITSMAPPE.ZUORDNEN(1+0*JETZT());"["&ARBEITSMAPPE.ZUORDNEN(16)&"]";"")
wobei da Leerzeichen im Mappennamen Probleme bereiten könnten, nicht getestet.
Aber wer sich nicht an die gute alte 8.3 Regel hält ist selbst schuld :-))
Gruß
Reinhard

Anzeige
AW: Waisenkinder ausfindig machen
30.06.2008 17:04:14
{Boris}
Hi Reinhard,
warum benutzt du Zeilen($1:1) und nicht:
=WENN(ZEILE()>ANZAHL2(Alle);"";INDEX(Alle;ZEILE()))
ist doch einfacher, oder gibt es da andere Gründe?

Mit ZEILEN($1:1) ist die Startzeile für die Formel egal - bei ZEILE() muss man - sofern nicht in Zeile 1 beginnend - noch subtrahieren - und dieses Geschreibe ist mir stets zu aufwändig ;-) - außerdem kann man bei ZEILE() auf keinen Fall Zeilen einfügen, da der Startindex sich erhöht.
Grüße Boris

Aha
30.06.2008 19:14:00
Reinhard
Hallo Boris,
ich wußte doch genau daß du das nicht grundlos so machst :-)
Danke für die Info.
Gruß
Reinhard

Anzeige
Wenn man es ganz optimal machen möchte...
30.06.2008 21:27:20
{Boris}
Hi Reinhard,
...dann schreibt man nicht ZEILEN($1:1) sondern ZEILEN($10000:10000), denn bei ZEILEN($1:1) führt das Löschen der Zeile 1 zu einem Bezugfehler, während aus ZEILEN($10000:10000) nur ZEILEN($9999:9999) wird - und das ist immer noch 1.
Und Zeilen Einfügen kann man bei der 10000er-Variante auch - wird dann zu ZEILEN($10001:10001) - und auch das ist 1.
Also am Besten einen Zeilenbereich außerhalb des benutzten Bereiches wählen - da kann man gar nix falsch machen.
Grüße Boris

AW: Wenn man es ganz optimal machen möchte...
30.06.2008 22:27:06
Reinhard
Hallo Boris,
interessant was da so alles in Zeilen() steckt. Ohne nachgeschaut zu haben gehe ich davon aus, das steht so nicht in der Hilfe, ergo herausfinden durch austesten, como siempre.
Wiederum Danke für die Info
Reinhard
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige