Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
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

Tabelle1 auf x-Tabellen verteilen

Tabelle1 auf x-Tabellen verteilen
Dave
Guten Morgen,
im habe im Archiv gesucht und fand keinen Artikel der mein Problem löst.
Jeden Tag bekomme ich von unserem System eine CSV-Tabelle die ich in vorbereitetes Excel-Sheet einfüge.
In der Tabelle1 vom Excel-Sheet sind dann ca 500 Datensätze die ich auf verschiedene Tabellen verteilen muss.
In der Spalte C stehen die Werte verschiedene Werte ( ca 20 ) wie BD01, AX15, ZW51, etc.
Nun möchte ich das Excel folgendes macht.
Erster Datensatz lesen, eine neue Tabelle im Sheet anlegen (sofern nicht schon vorhanden) mit dem Namen aus Spalte C, den entsprechenden Datensatz kopieren und in der neuen, oder bestehenden Tabelle ab Spalte 2 einfügen.
Nett wäre natürlich noch, wenn beim anlegen der neuen Tabelle, die Titel-Zeile aus Tabelle1 übernommen würde.
Danke für Hilfe.
Dave
AW: Tabelle1 auf x-Tabellen verteilen
11.10.2011 10:12:14
Tino
Hallo,
was hat dies nun mit X Tabellen zu tun
wenn es doch nur die eine spalte C ist?
Gruß Tino
AW: Tabelle1 auf x-Tabellen verteilen
11.10.2011 10:39:06
Dave
Hallo,
ich habe die beiliegende Tabelle mal kopiert ( siehe LINK ).
die erste Tabelle (1891) habe ich händisch angelegt ( was ich jeden Tag mache ).
am Schluss des Makro's sollten 8 Tabellen erstellt sein (1891, 21AB, 21AC, 3033, ECGX, NAER, NAEU, NAFA).
Danke
Dave
https://www.herber.de/bbs/user/76954.xls
AW: Tabelle1 auf x-Tabellen verteilen
11.10.2011 11:55:38
Tino
Hallo,
kannst mal den Code testen, im Code evtl. die Tabelle noch anpassen (hier aus Bsp. Tabelle1)

Option Explicit

Sub Test()
Dim oDic As Object, ArrayC, varValue
Dim rngBereich As Range, oWS As Worksheet, rngCrit As Range

'Tabelle anpassen 
With Sheets("Tabelle1")
    Set rngBereich = .Range("A1", .Cells(.Rows.Count, 3).End(xlUp).Offset(0, 13))
    If Intersect(rngBereich, .Rows(2)) Is Nothing Then Exit Sub 'keine Daten 
    ArrayC = .Range("C2", .Cells(.Rows.Count, 3).End(xlUp))
    Set rngCrit = .Cells(1, .Columns.Count).Resize(2)
End With

Set oDic = CreateObject("Scripting.Dictionary")
For Each varValue In ArrayC
   If varValue <> "" Then oDic(varValue) = 0
Next varValue
ArrayC = oDic.keys

With Application
    .ScreenUpdating = False
    .EnableEvents = False
    
    With rngBereich
        For Each varValue In ArrayC
            Set oWS = CheckTab(CStr(varValue))
            If Not oWS Is Nothing Then
                rngCrit.Cells(2, 1).FormulaR1C1 = "=RC3=""" & varValue & """"
    
                .AdvancedFilter xlFilterCopy, rngCrit, oWS.Range("A1").Resize(, .Columns.Count)
            End If
        Next varValue
    End With
    
     rngCrit.EntireColumn.Delete
     
    .ScreenUpdating = True
    .EnableEvents = True
End With
End Sub

Function CheckTab(strName$) As Worksheet
Dim nIndex%
On Error Resume Next
With ThisWorkbook
    nIndex = .Sheets(strName).Index
    If nIndex = 0 Then
        With .Sheets.Add(After:=.Sheets(.Sheets.Count))
            .Name = strName
            Set CheckTab = .Sheets
        End With
        Set CheckTab = .Sheets(.Sheets.Count)
    Else
        Set CheckTab = .Sheets(nIndex)
    End If
End With
End Function
Gruß Tino
Anzeige
AW: Tabelle1 auf x-Tabellen verteilen
11.10.2011 11:39:36
Rudi
Hallo,
so?

Sub aaaa()
Dim wks As Worksheet, lRow As Long
With Sheets("Tabelle1")
Application.ScreenUpdating = False
For lRow = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
Set wks = Nothing
On Error Resume Next
Set wks = Worksheets(.Cells(lRow, 3).Value)
On Error GoTo 0
If wks Is Nothing Then
Set wks = Worksheets.Add(after:=Sheets(Sheets.Count))
wks.Name = .Cells(lRow, 3)
.Range("A1:P1").Copy wks.Cells(1, 1)
End If
.Range(.Cells(lRow, 1), .Cells(lRow, 16)).Copy _
wks.Cells(Rows.Count, 1).End(xlUp).Offset(1)
Next
End With
End Sub

Gruß
Rudi
Anzeige
AW: Tabelle1 auf x-Tabellen verteilen
11.10.2011 11:50:26
Dave
Hallo Rudi,
nein leider nicht ganz.
Das Makro steht dort an, wo er die Tabelle (mit dem Namen aus Spalte 3) nehmen sollte,
und das entsprechende Blatt erstellen soll.
Danke
Dave
Das Makro steht dort an,
11.10.2011 12:10:29
Rudi
Hallo,
was soll das heißen?
Bei mir funktioniert's einwandfrei.
Gruß
Rudi
AW: Das Makro steht dort an,
11.10.2011 13:11:33
Dave
https://www.herber.de/bbs/user/76958.xls
Hallo Rudi,
das Makro steht vermutlich dort an, wo ein 2. Datensatz geschrieben werden soll.
Ich habe das Makro mit F8 gestartet und versucht den Abbruchpunkt herauszufinden.
Ich habe extra nochmals eine Tabelle beigelegt.
Danke
Dave
Anzeige
AW: Das Makro steht dort an,
11.10.2011 13:11:55
Dave
FRage noch offen
AW: Das Makro steht dort an,
11.10.2011 13:31:30
Rudi
Hallo,
jetzt hast du plötzlich Zahlen in C?

Sub aaaa()
Dim wks As Worksheet, lRow As Long
With Sheets("Tabelle1")
Application.ScreenUpdating = False
For lRow = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
Set wks = Nothing
On Error Resume Next
Set wks = Worksheets(CStr(.Cells(lRow, 3).Value))
On Error GoTo 0
If wks Is Nothing Then
Set wks = Worksheets.Add(after:=Sheets(Sheets.Count))
wks.Name = .Cells(lRow, 3).Value
.Range("A1:P1").Copy wks.Cells(1, 1)
End If
.Range(.Cells(lRow, 1), .Cells(lRow, 16)).Copy _
wks.Cells(Rows.Count, 1).End(xlUp).Offset(1)
Next
End With
End Sub

Gruß
Rudi
Anzeige
AW: Tabelle1 auf x-Tabellen verteilen
11.10.2011 16:02:13
Dave
Hallo Rudi,
Du bist echt Spitze.
Es funzt
Dave

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige