Ahoi,
ich erstelle mir derzeit eine Arbeitsmappe:
In meinem letzten Tabellenblatt befindet sich eine Liste von Herstellern und Produkten. Jetzt mache ich es so, dass ich mit Hilfe einer Userform ein neues Produkt in dieses letzte Blatt hinzufügen kann. Dabei wird mir außerdem ein neues Tabellenblatt erstellt mit dem Namen des Produktes.
Jedes Produkt wird in vier Typen unterteilt. Das spielt zwar in in dieser Liste keine Rolle, aber dafür in meinem Tabellenblatt 1. Hier stehen nämlich nochmals alle Produkte, hier jedoch jeweils in Nr. 1, 2, 3 und 4 unterteilt.
In Spalte A stehen dabei die Produkte, in B steht einfach untereinander 1,2,3,4.
Nun will ich erreichen, dass ich, wenn ich ein neues Tabellenblatt in meiner Liste erstellt habe, auch ein neuer Eintrag in meinem ersten Blatt gemacht wird, nämlich mit dem gleichen Namen, den auch das neue Tabellenblatt trägt.
Dabei bin ich wie folgt vorgegangen:
Das ganze funktioniert prinzipiell schon mal.
Nur bekomme ich es nicht hin, dass es vernünftig automatisch ausgeführt wird.
Wenn ich es mit
mache, dann benennt er das ganze in Blatt 1 nur als "TabelleX", da die Änderungen am Namen des Blattes natürlich erst unmittelbar nach dem Erstellen passiert.
Bei worksheet_change(ByVal Target As Range) erstellt er mir immer irgendwelche Daten in meiner Liste.
Vielleicht habt ihr ja noch eine gute Idee, wie ich es einfacher und besser machen kann.
Doof ist ja auch, dass immer nur das als letztes erstellte Tabellenblatt übernommen wird.
Wäre also schön, wenn man das irgendwie umgehen könnte.
So viel zum ersten.
Außerdem benötige ich eine Möglichkeit, aus meinen Tabellenblättern mit den Produkten gewisse Bereiche zu übernehmen. Diese Bereiche sind jedoch immer die gleichen, also z.B. A6:B10, A12:B16, A16:B20 und A22:B26. Nur eben von jedem Tabellenblatt.
Am einfachsten wäre es wohl, wenn diese Werte einfach untereinander in meiner Auswahl (Tabellenblatt1) landen und ich sie dort mit Excel weiter verarbeite.
Vielleicht hat da ja jemand eine Idee, wie ich diese ganzen Werte bekomme. Dazu habe ich bisher
Das funktioniert leider so nicht. Außerdem müssen mehrere Ranges pro Tabellenblat übernommen werde.
Eine Datei ist auch angehängt.
Vielen Dank im Voraus!
VB-Tags eingefügt. Datei entfernt: Office-Dateien sind ausführbar, da sie Makros enthalten können. Diese Makros können Schadcode enthalten. ~Thunderbolt
ich erstelle mir derzeit eine Arbeitsmappe:
In meinem letzten Tabellenblatt befindet sich eine Liste von Herstellern und Produkten. Jetzt mache ich es so, dass ich mit Hilfe einer Userform ein neues Produkt in dieses letzte Blatt hinzufügen kann. Dabei wird mir außerdem ein neues Tabellenblatt erstellt mit dem Namen des Produktes.
Jedes Produkt wird in vier Typen unterteilt. Das spielt zwar in in dieser Liste keine Rolle, aber dafür in meinem Tabellenblatt 1. Hier stehen nämlich nochmals alle Produkte, hier jedoch jeweils in Nr. 1, 2, 3 und 4 unterteilt.
In Spalte A stehen dabei die Produkte, in B steht einfach untereinander 1,2,3,4.
Nun will ich erreichen, dass ich, wenn ich ein neues Tabellenblatt in meiner Liste erstellt habe, auch ein neuer Eintrag in meinem ersten Blatt gemacht wird, nämlich mit dem gleichen Namen, den auch das neue Tabellenblatt trägt.
Dabei bin ich wie folgt vorgegangen:
Visual Basic-Quellcode
- Private Sub auswahl_aktualisieren()
- Dim rngCol As Range, objF As Object, FirstFreeRow As Long, i As Long
- Dim isheet As Long
- With Worksheets("auswahl")
- Set rngCol = .Columns(2) 'Spalte B
- Set objF = rngCol.Find("*", SearchDirection:=xlPrevious, lookat:=xlPart)
- If Not objF Is Nothing Then
- FirstFreeRow = objF.Row + 1
- i = FirstFreeRow
- For isheet = 4 To Sheets.Count - 1
- If WorksheetFunction.CountIf(Range("A:A"), Sheets(isheet).Name) = 1 Then
- Cells(i, 1) = ""
- Else
- If WorksheetFunction.CountIf(Range("A:A"), Sheets(isheet).Name) = 0 Then
- Cells(i, 1).Value = Sheets(isheet).Name
- Cells(i, 2) = "1"
- Cells(i + 1, 2) = "2"
- Cells(i + 2, 2) = "3"
- Cells(i + 3, 2) = "4"
- End If
- End If
- Next
- End If
- End With
- End Sub
Das ganze funktioniert prinzipiell schon mal.
Nur bekomme ich es nicht hin, dass es vernünftig automatisch ausgeführt wird.
Wenn ich es mit
mache, dann benennt er das ganze in Blatt 1 nur als "TabelleX", da die Änderungen am Namen des Blattes natürlich erst unmittelbar nach dem Erstellen passiert.
Bei worksheet_change(ByVal Target As Range) erstellt er mir immer irgendwelche Daten in meiner Liste.
Vielleicht habt ihr ja noch eine gute Idee, wie ich es einfacher und besser machen kann.
Doof ist ja auch, dass immer nur das als letztes erstellte Tabellenblatt übernommen wird.
Wäre also schön, wenn man das irgendwie umgehen könnte.
So viel zum ersten.
Außerdem benötige ich eine Möglichkeit, aus meinen Tabellenblättern mit den Produkten gewisse Bereiche zu übernehmen. Diese Bereiche sind jedoch immer die gleichen, also z.B. A6:B10, A12:B16, A16:B20 und A22:B26. Nur eben von jedem Tabellenblatt.
Am einfachsten wäre es wohl, wenn diese Werte einfach untereinander in meiner Auswahl (Tabellenblatt1) landen und ich sie dort mit Excel weiter verarbeite.
Vielleicht hat da ja jemand eine Idee, wie ich diese ganzen Werte bekomme. Dazu habe ich bisher
Visual Basic-Quellcode
- Private Sub Werte_einfuegen()
- Dim rngCol As Range, objF As Object, FirstFreeRow As Long, i As Long
- Dim isheet As Long
- With Worksheets("auswahl")
- Set rngCol = .Columns(1) 'Spalte A
- Set objF = rngCol.Find("*", SearchDirection:=xlPrevious, lookat:=xlPart)
- If Not objF Is Nothing Then
- FirstFreeRow = objF.Row + 1
- i = FirstFreeRow
- For isheet = 4 To Sheets.Count - 1
- If WorksheetFunction.CountIf(Range("A:A"), Sheets(isheet).Name) = 1 Then
- Worksheets("Reifenauswahl").Cells(i, 15).Value = Sheets(isheet).Range("A19:B23").Value
- End If
- Next
- End If
- End With
- End Sub
Das funktioniert leider so nicht. Außerdem müssen mehrere Ranges pro Tabellenblat übernommen werde.
Eine Datei ist auch angehängt.
Vielen Dank im Voraus!
VB-Tags eingefügt. Datei entfernt: Office-Dateien sind ausführbar, da sie Makros enthalten können. Diese Makros können Schadcode enthalten. ~Thunderbolt
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Thunderbolt“ ()