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

neues blatt mit namen aus spalte erstellen

neues blatt mit namen aus spalte erstellen
22.09.2004 11:45:58
Stephan
Hallo zusammen,
ich habe folgendes Problem:
Ich habe ein Tabellenblatt mit einer Spalte, in der Namen stehen (sortiert). Siehe Mappe:
https://www.herber.de/bbs/user/11179.xls
Jetzt möchte ich mit Hilfe von VBA für jeden Namen ein neues Tabellenblatt erstellen und die jeweiligen Daten aus der Zeile in das Blatt übernehmen. Das Blatt soll dann den jeweiligen Namen haben.
Wie könnte ich das realisieren? Irgendwie komme ich da auf keinen grünen Zweig.
Vielen Dank im vorraus,
Gruss,
Stephan

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: neues blatt mit namen aus spalte erstellen
22.09.2004 12:21:07
chris
Hallo Stephan habe schnell mal was geschrieben für dich !
Hoffe es hilft dir.Bei mir funktioniert es!
Hier der Code

Sub neu()
Dim cb()
i = 0
z = 0
For x = 1 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
temp = Cells(x, 1)
b = True
If temp <> "" Then
ReDim Preserve cb(z)
z = z + 1
Else
End If
For y = x - 1 To 0 Step -1
If cb(y) = temp Then
b = False
Exit For
End If
Next
If b Then
cb(i) = temp
i = i + 1
End If
Next
For x = 0 To UBound(cb)
If cb(x) <> "" Then
Worksheets.Add
ActiveSheet.Name = cb(x)
Cells(1, 1) = "Betreuer"
Cells(1, 2) = "Kunde"
Cells(1, 3) = "Artikel"
End If
Next
For Each mysheet In ActiveWorkbook.Worksheets
a = 2
such = mysheet.Name
Set Zelle = Worksheets("Tabelle1").Range("A:A").Find(what:=such, Lookat:=xlWhole)
If Not Zelle Is Nothing Then
ersteAdresse = Zelle.Address
betreuer = Worksheets("Tabelle1").Cells(Zelle.Row, 1)
wert = Worksheets("Tabelle1").Cells(Zelle.Row, 2)
artikel = Worksheets("Tabelle1").Cells(Zelle.Row, 3)
Worksheets(such).Cells(a, 1) = betreuer
Worksheets(such).Cells(a, 2) = wert
Worksheets(such).Cells(a, 3) = artikel
a = a + 1
Do
'  Zelle.Interior.Pattern = xlPatternGray50    <-- würde die find zelle grau Färben hintergrund !
Set Zelle = Worksheets("Tabelle1").Range("A:A").FindNext(Zelle)
betreuer = Worksheets("Tabelle1").Cells(Zelle.Row, 1)
wert = Worksheets("Tabelle1").Cells(Zelle.Row, 2)
artikel = Worksheets("Tabelle1").Cells(Zelle.Row, 3)
Worksheets(such).Cells(a, 1) = betreuer
Worksheets(such).Cells(a, 2) = wert
Worksheets(such).Cells(a, 3) = artikel
a = a + 1
Loop While Not Zelle Is Nothing And Zelle.Address <> ersteAdresse
End If
Next
End Sub

Anzeige
AW: neues blatt mit namen aus spalte erstellen
22.09.2004 12:24:57
chris
Hier noch eine kleine Programmänderung !

Sub neu()
Dim cb()
i = 0
z = 0
For X = 1 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
temp = Cells(X, 1)
b = True
If temp <> "" Then
ReDim Preserve cb(z)
z = z + 1
Else
End If
For y = X - 1 To 0 Step -1
If cb(y) = temp Then
b = False
Exit For
End If
Next
If b Then
cb(i) = temp
i = i + 1
End If
Next
For X = 0 To UBound(cb)
If cb(X) <> "" Then
If cb(X) = "Betreuer" Then GoTo weiter
Worksheets.Add
ActiveSheet.Name = cb(X)
Cells(1, 1) = "Betreuer"
Cells(1, 2) = "Kunde"
Cells(1, 3) = "Artikel"
End If
weiter:
Next
For Each mysheet In ActiveWorkbook.Worksheets
a = 2
such = mysheet.Name
Set Zelle = Worksheets("Tabelle1").Range("A:A").Find(what:=such, Lookat:=xlWhole)
If Not Zelle Is Nothing Then
ersteAdresse = Zelle.Address
betreuer = Worksheets("Tabelle1").Cells(Zelle.Row, 1)
wert = Worksheets("Tabelle1").Cells(Zelle.Row, 2)
artikel = Worksheets("Tabelle1").Cells(Zelle.Row, 3)
Worksheets(such).Cells(a, 1) = betreuer
Worksheets(such).Cells(a, 2) = wert
Worksheets(such).Cells(a, 3) = artikel
a = a + 1
Do
'  Zelle.Interior.Pattern = xlPatternGray50    <-- würde die find zelle grau Färben hintergrund !
Set Zelle = Worksheets("Tabelle1").Range("A:A").FindNext(Zelle)
betreuer = Worksheets("Tabelle1").Cells(Zelle.Row, 1)
wert = Worksheets("Tabelle1").Cells(Zelle.Row, 2)
artikel = Worksheets("Tabelle1").Cells(Zelle.Row, 3)
Worksheets(such).Cells(a, 1) = betreuer
Worksheets(such).Cells(a, 2) = wert
Worksheets(such).Cells(a, 3) = artikel
a = a + 1
Loop While Not Zelle Is Nothing And Zelle.Address <> ersteAdresse
End If
Next
End Sub

Anzeige
AW: neues blatt mit namen aus spalte erstellen
22.09.2004 13:01:12
Stephan
klasser, das funktioniert ja schon mal super, danke!
jetzt habe ich aber doch wieder probleme, da ich noch ein paar zeilen und spalten eingefügt habe. d.h., die titelzeile mit "betreuer", "kunde", usw.. ist jetzt in Zeile 6 und die relevante Spalte "Betreuer" ist nicht mehr die erste sondern die 6 Spalte. Ich konnte deinen Quelltext nicht so umbauen, dass es trotzdem noch funktioniert. Wäre toll, wenn du mir nochmal behilflich sein könntest.
Danke und Gruss,
Stephan
AW: neues blatt mit namen aus spalte erstellen
23.09.2004 00:39:40
chris
Sollte jetzt auch wieder funktionieren denke ich !
Kurze Rückmeldung wäre wie immer ok !
Bye

Sub neu()
Dim cb()
i = 0
z = 0
For X = 1 To ActiveSheet.Cells(Rows.Count, 6).End(xlUp).Row
temp = Cells(X, 6)
b = True
If temp <> "" Then
ReDim Preserve cb(z)
z = z + 1
Else
End If
For y = X - 1 To 0 Step -1
If cb(y) = temp Then
b = False
Exit For
End If
Next
If b Then
cb(i) = temp
i = i + 1
End If
Next
For X = 0 To UBound(cb)
If cb(X) <> "" Then
If cb(X) = "Betreuer" Then GoTo weiter
Worksheets.Add
ActiveSheet.Name = cb(X)
Cells(1, 6) = "Betreuer"
Cells(1, 7) = "Kunde"
Cells(1, 8) = "Artikel"
End If
weiter:
Next
For Each mysheet In ActiveWorkbook.Worksheets
a = 2
such = mysheet.Name
Set Zelle = Worksheets("Tabelle1").Range("F:F").Find(what:=such, Lookat:=xlWhole)
If Not Zelle Is Nothing Then
ersteAdresse = Zelle.Address
betreuer = Worksheets("Tabelle1").Cells(Zelle.Row, 6)
wert = Worksheets("Tabelle1").Cells(Zelle.Row, 7)
artikel = Worksheets("Tabelle1").Cells(Zelle.Row, 8)
Worksheets(such).Cells(a, 6) = betreuer
Worksheets(such).Cells(a, 7) = wert
Worksheets(such).Cells(a, 8) = artikel
a = a + 1
Do
Set Zelle = Worksheets("Tabelle1").Range("F:F").FindNext(Zelle)
betreuer = Worksheets("Tabelle1").Cells(Zelle.Row, 6)
wert = Worksheets("Tabelle1").Cells(Zelle.Row, 7)
artikel = Worksheets("Tabelle1").Cells(Zelle.Row, 8)
Worksheets(such).Cells(a, 6) = betreuer
Worksheets(such).Cells(a, 7) = wert
Worksheets(such).Cells(a, 8) = artikel
a = a + 1
Loop While Not Zelle Is Nothing And Zelle.Address <> ersteAdresse
End If
Next
End Sub

Anzeige
AW: neues blatt mit namen aus spalte erstellen
23.09.2004 10:12:29
Stephan
hallo chris,
leider funktioniert es noch nicht, ich bekomme einen Laufzeitfehler "9", und zwar hier: "If cb(y) = temp Then"
Wäre super, wenn du es dir nochmal anschauen könntest.
Danke und Gruss,
Stephan
AW: neues blatt mit namen aus spalte erstellen
23.09.2004 12:09:16
chris
Hallo Stephan,
bei mir funktioniert es. !
Ich schaue es mir aber gerne noch einmal an wenn du mir die aktuelle Mappe hochlädst bei der es nicht funktioniert !
AW: neues blatt mit namen aus spalte erstellen
23.09.2004 12:29:05
Stephan
ok, ich habe die betreffende Datei nochmal hochgeladen, hier:
https://www.herber.de/bbs/user/11214.xls
danke fürs anschauen.
Gruss,
Stephan
Anzeige
AW: neues blatt mit namen aus spalte erstellen
23.09.2004 20:43:51
chris
Bitte, du hast folgende erklärung vergessen, du hast zwar geschrieben :->
"""jetzt habe ich aber doch wieder probleme, da ich noch ein paar zeilen und spalten eingefügt habe. d.h., die titelzeile mit "betreuer", "kunde", usw.. ist jetzt in Zeile 6 und die relevante Spalte "Betreuer" ist nicht mehr die erste sondern die 6 Spalte. Ich konnte deinen Quelltext nicht so"""
das der betreuer in Spalte 6 steht aber nichts das du das ganze auch 3 zeilen nach unten gesetzt hast :)
Jetzt gehts aber wieder wenn du den aktuellen code von mir einfügst !

Sub neu()
Dim cb()
i = 0
z = 0
For X = 6 To ActiveSheet.Cells(Rows.Count, 6).End(xlUp).Row
temp = Cells(X, 6)
b = True
If temp <> "" Then
ReDim Preserve cb(z + 5)
z = z + 1
Else
End If
For y = X - 1 To 0 Step -1
If cb(y) = temp Then
b = False
Exit For
End If
Next
If b Then
cb(i) = temp
i = i + 1
End If
Next
For X = 0 To UBound(cb)
If cb(X) <> "" Then
If cb(X) = "Betreuer" Then GoTo weiter
Worksheets.Add
ActiveSheet.Name = cb(X)
Cells(1, 6) = "Betreuer"
Cells(1, 7) = "Kunde"
Cells(1, 8) = "Artikel"
End If
weiter:
Next
For Each mysheet In ActiveWorkbook.Worksheets
a = 2
such = mysheet.Name
Set Zelle = Worksheets("Tabelle1").Range("F:F").Find(what:=such, Lookat:=xlWhole)
If Not Zelle Is Nothing Then
ersteAdresse = Zelle.Address
betreuer = Worksheets("Tabelle1").Cells(Zelle.Row, 6)
wert = Worksheets("Tabelle1").Cells(Zelle.Row, 7)
artikel = Worksheets("Tabelle1").Cells(Zelle.Row, 8)
Worksheets(such).Cells(a, 6) = betreuer
Worksheets(such).Cells(a, 7) = wert
Worksheets(such).Cells(a, 8) = artikel
a = a + 1
Do
Set Zelle = Worksheets("Tabelle1").Range("F:F").FindNext(Zelle)
betreuer = Worksheets("Tabelle1").Cells(Zelle.Row, 6)
wert = Worksheets("Tabelle1").Cells(Zelle.Row, 7)
artikel = Worksheets("Tabelle1").Cells(Zelle.Row, 8)
Worksheets(such).Cells(a, 6) = betreuer
Worksheets(such).Cells(a, 7) = wert
Worksheets(such).Cells(a, 8) = artikel
a = a + 1
Loop While Not Zelle Is Nothing And Zelle.Address <> ersteAdresse
End If
Next
End Sub

P.S ist zwar nicht mehr perfekt aufgebaut aber habe nur für deine Wünsche so abgeändert das es funktioniert und ich nicht wieder neu schreiben muss !
Anzeige
AW: neues blatt mit namen aus spalte erstellen
24.09.2004 09:12:35
Stephan
Sorry, ich habs ein bisschen schlecht beschrieben, aber wenn man die Datei direkt vor sich hat ist es glaub ich immer besser.
Auf jeden Fall funktioniert es jetzt einwandfrei und genau so wie ich es wollte.
Vielen Dank für die ausführliche und freundliche Hilfe, war wirklich super nett von dir.
Gruss,
Stephan

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige