Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Datensätze nebeneinader
#1
Hallo zusammen,

ich habe eine Kundendatei, in der die Kunden  untereinander stehen. Soweit alles gut. Nur die Liste ist so aufgebaut, das für jedes Produkt/Artikel eine Zeile verwendet wird. 
Kunde X , Hammburg, Artikel YY, Wert XXX, 
Kunde X, Hamburg, Artikel SSS, Wert FFF
usw. 
Manche Kunden haben vier oder fünf Zeilen, manche nur eine Zeile.


Ich möchte gerne eine Zeile mit Kunde usw und dann alle Artikel nebeneinader. 
Ich habe keine Idee. 

Viele Grüße
Stefan


Angehängte Dateien
.xlsx   Kundendatei.xlsx (Größe: 9,49 KB / Downloads: 8)
Antworten Top
#2
Hallo


so??

Code:
Sub Kunden()
    Dim TB1 As Worksheet, TB2 As Worksheet, i As Integer, LR1 As Integer
    Dim S1 As Integer, Off As Integer, LC2 As Integer, Zeile As Integer
    Dim KuNu As String
   
    Set TB1 = Sheets("Tabelle1")
    Set TB2 = Sheets("ZielTabelle")
   
    S1 = 9 'Artikelnummern ab Spalte I
    Off = 6 'Anzahl der Datenspalten
    With TB1
        LR1 = .Cells(.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte
   
        For i = 2 To LR1
            KuNu = .Cells(i, 4)
            If WorksheetFunction.CountIf(TB2.Columns(4), KuNu) > 0 Then
                Zeile = WorksheetFunction.Match(KuNu, TB2.Columns(4), 0) ' Zeile mit Kunden
                LC2 = TB2.Cells(Zeile, TB2.Columns.Count).End(xlToLeft).Column 'letzte Spalte einer Zeile
   
                .Cells(i, S1).Resize(1, Off).Copy TB2.Cells(Zeile, LC2 + 1)
            Else
                Zeile = TB2.Cells(TB2.Rows.Count, "A").End(xlUp).Row + 1
                .Rows(i).Copy TB2.Rows(Zeile)
            End If
           
        Next
    End With
   
End Sub
LG UweD
Antworten Top
#3
Hallo Uwe,

danke hat super geklappt  :19:

Nur meine original Datei hat 71.763 Zeilen. Wie wo ändere ich die Zeilen ab?
Antworten Top
#4
Ok,

dann als LONG deklarieren


Code:
    Dim TB1 As Worksheet, TB2 As Worksheet, i As Long, LR1 As Long
    Dim S1 As Integer, Off As Integer, LC2 As Integer, Zeile As Long

LG UweD
Antworten Top
#5
Sub Kunden()
Dim TB1 As Worksheet, TB2 As Worksheet, i As Long, LR1 As Long
    Dim S1 As Integer, Off As Integer, LC2 As Integer, Zeile As Long
    Dim KuNu As String
 
    Set TB1 = Sheets("Tabelle1")
    Set TB2 = Sheets("Tabelle2")
 
    S1 = 9 'Artikelnummern ab Spalte I
    Off = 6 'Anzahl der Datenspalten
    With TB1
        LR1 = .Cells(.Rows.Count, "A").End(xlUp).Row 'letzte Zeile der Spalte
 
        For i = 2 To LR1
            KuNu = .Cells(i, 4)
            If WorksheetFunction.CountIf(TB2.Columns(4), KuNu) > 0 Then
                Zeile = WorksheetFunction.Match(KuNu, TB2.Columns(4), 0) ' Zeile mit Kunden
                LC2 = TB2.Cells(Zeile, TB2.Columns.Count).End(xlToLeft).Column 'letzte Spalte einer Zeile
 
                .Cells(i, S1).Resize(1, Off).Copy TB2.Cells(Zeile, LC2 + 1)
            Else
                Zeile = TB2.Cells(TB2.Rows.Count, "A").End(xlUp).Row + 1
                .Rows(i).Copy TB2.Rows(Zeile)
            End If
         
        Next
    End With
End Sub


[
Bild bitte so als Datei hochladen: Klick mich!
]
Antworten Top
#6
Klappt es ?
Antworten Top
#7
ja und nein. Die vollen 74.000 Zeilen schafft der Rechner nicht, er hängt sich auf. Ich werde dieses nach Mitarbeitern step by step erstellen. dann sollte es gehen.

Danke noch dafür :)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste