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

Tabellenblätter erstellen

Tabellenblätter erstellen
09.01.2006 09:13:06
Dominik
Guten Morgen zusammen!
Ich habe eine Datenbank von Paradox in Excel umgewandelt und stehe nun vor einem Problem, bei dem ich einfach nicht weiter weiss.
In Spalte B stehen IDs von Rechnern, die sich in die Paradox-DB eingeloggt haben, also z.b. 1, 23, 75, 77 etc., insg. ca. 40 verschiedene Zahlen.
Nun mein Problem, ich weiss nicht wie es mir möglich ist, diese Spalte B nach Zahlen auszulesen (also wie viele verschiedene Zahlen in der Spalte vorkommen) und dann so viele neue Tabellenblätter zu erstellen, wie verschiedene Zahlen da sind (aber -2, da ja schon Tabelle2 und Tabelle3 da sind).
Schön fände ich es auch noch, wenn jedes neu erstellte Tabellenblatt den Namen "WS X" tragen würde, wobei das X für die Zahl in Spalte B steht.
Könnte mir ja jemand bei behilflich sein? Es muss auch nicht direkt alles auf einmal erledigt werden :)
Es grüßt aus Bingen am Rhein, Dominik

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter erstellen
09.01.2006 09:38:45
Basti
Moin Dominik,
Nur auf die Schnelle:
Mit der Tabellenblattfunktion Anzahl kannst du ermittel in wie vielen Tabellenzellen Werte stehen:
z.B.
=Anzahl(B2:B42)
Dieser Tabellenzelleninhalt gibt die Anzahl an "vollen" Tabellenzellen im Bereich B2 bis B42 zurück.
Neu Tabellenblätter erstellen ist meiner Meinung nach nur mit VBA möglich und dann auch wieder Aufwändiger, aber generell kein großes Problem.
Basti
AW: Tabellenblätter erstellen
09.01.2006 09:42:03
Dominik
Hallo!
Das Problem ist ja, dass in der SpalteB nicht nur einfach die Zahlen 1-x vorkommen, sondern dass, sagen wir von 1-10, bestimmte zahlen nicht vorkommen.
es sieht in der praxis so aus:
77
77
77
77
77
55
55
55
55
7
2
38
38
38
2
7
also nicht alle zahlen von 1 - x, sondern nur bestimmte, und die kommen auch noch häufiger vor. deshalb mag ich ja zählen, wie viele verschiedene zahlen vorkommen.
einigermaßen verstanden? :)
Gruß, Dominik
Anzeige
AW: Tabellenblätter erstellen
09.01.2006 09:40:38
Heiko
Hallo Dominik,
ich lösche erstmal Tabelle 2 und 3, gehe also davon aus das die noch leer sind.

Sub TabErzeugen()
Dim lngI As Long, lngN As Long
Dim bolSchonDa As Boolean
On Error Resume Next
Application.DisplayAlerts = False
Sheets(2).Delete
Sheets(2).Delete
Application.DisplayAlerts = True
On Error GoTo 0
For lngI = 1 To Sheets(1).Cells(Rows.Count, 2).End(xlUp).Row
bolSchonDa = False
For lngN = 1 To Sheets.Count
If Sheets(lngN).Name = "WS_" & Sheets(1).Cells(lngI, 2).Value Then bolSchonDa = True
Next lngN
If bolSchonDa = False Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "WS_" & Sheets(1).Cells(lngI, 2).Value
End If
Next lngI
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Tabellenblätter erstellen
09.01.2006 09:45:25
Dominik
Hallo Heiko!
Vielen Dank für die Antwort, funktioniert wunderbar!
Toll, dass hier einem so schnell geholfen wird! Weiter so :)
Gruß & nochmals Danke, Dominik
Geschlossen
09.01.2006 09:47:37
Geschlossen
.
AW: Tabellenblätter erstellen
09.01.2006 09:48:12
Ramses
Hallo Heiko
hübscher Code.
2 Anmerkungen.
1.
Es ist SEHR gefährlich Sheets einfach mit der Indexnummer zu löschen.
Lieber direkt ansprechen, bzw. das Sheet mit den Daten explicit beim Namen nennen lassen und dann vom löschen ausschliessen
2.
If bolSchonDa = False Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "WS_" & Sheets(1).Cells(lngI, 2).Value
'Hier kannst du auch noch die jeweils einzelnen Vorkommen
'der Zahlen gleich in Spalte C schreiben lassen wie gewünscht,
'dann ist das auch gleich gemacht ;-)
With Sheets("Tabelle_mit_Daten") ';-)
.Cells(.cells(.Rows.Count, 3).End(xlUp).Row +1,3).Value = .Cells(lngI, 2).Value
End With

End If
Gruss Rainer
Anzeige
@ Rainer
09.01.2006 09:56:59
Heiko
Hallo Rainer,
zu 1.:
Is mir schon klar, aber wenn ich die Namen nicht kenne (kann ja auch auf einer englischen oder französischen, spanischen ... Installation laufen :-) ) dann geht so schön einfach.
zu 2.:
Wo steht das ich was in Spalte C eintragen soll ?!
Gruß Heiko
PS: Rückmeldung wäre nett !
AW: @ Rainer
09.01.2006 10:01:01
Ramses
Hallo Heiko
1.
"...dann geht so schön einfach...."
Ist schon klar ;-)
Dim qWks as Worksheet
Set qWks = Worksheets("Tabelle_mit_Daten")
Das kann der Benutzer anpassen, ... und du bist aus dem Schneider.
Ausserdem kannst du dich im Code leichter und einfacher auf die Tabelle beziehen ;-)
2.
Das war die Frage
"... diese Spalte B nach Zahlen auszulesen (also wie viele verschiedene Zahlen in der Spalte vorkommen..."
Aber das habe ich wohl falsch verstanden ;-)
Gruss Rainer
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige