Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
880to884
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
880to884
880to884
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Zeilen zu einem Datensatz zusammenfassen
25.06.2007 09:20:00
Katja27
Hallo Forum,
ich möchte, dass Excel (per Makro?) die Daten aus mehreren Zeilen in eine Zeile zusammenfasst. Es handelt sich hierbei um den Versand mehrerer Teile = mehrere Zeilen, die aber alle zu einem Auftrag gehören und zu einem Kunden gehen, also in einem Paket verschickt werden = zusammengefasste Zeile. Hier ist die Datei:
https://www.herber.de/bbs/user/43536.xls
Die Quelldatei verwendet pro Teil eine Zeile. Nachdem die Sendung verschickt wurde, brauchen wir alles in einer Zeile = ein Versandvorgang. Dabei sollte es auch noch so sein, dass die verschiedenen Teile zusammengefasst werden, also 3 x Motor, 1 x Schraube usw. (hintereinander in einer Zelle), und die Seriennummern ebenfalls hintereinander in einer Zelle angezeigt werden, denn die dürfen nicht verloren gehen.
Hab keine Ahnung, ob das überhaupt machbar ist und mit welchem Ansatz.
Hat jemand von euch eine Idee?
Vielen Dank,
Katja

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen zu einem Datensatz zusammenfassen
25.06.2007 10:00:00
Renee
Mazwara Katja,
Das Ganze soll ja irgendwie einen Zweck haben, oder nicht?
Ich kann mir keinen denken, denn mit ein paar Artikeln bist Du schnell einmal über die Limite von 256 Spalten raus und dann ist Dein sogenannter Datensatz nicht mehr konsistent. Kannst Du erläutern, für was Du Daten in der Form eines einzigen Datensatzes willst. Es würde sicher auch helfen, wenn Du Dein Beispiel manuell mit dem "Ziel-Datensatz" ausbauen würdest.
Greetz Renee

AW: Zeilen zu einem Datensatz zusammenfassen
25.06.2007 10:34:49
Katja27
Hallo Renee,
danke, dass du dich der Sache annimmst. Ich habe die Datei noch mal um eine manuell erstellte Ziel-Zeile erweitert:

Die Datei https://www.herber.de/bbs/user/43544.xls wurde aus Datenschutzgründen gelöscht


Die Quelldatei ist ein sog. Slotplan, darin geht es um das einzelne Teil. Wir als Versandabteilung nehmen diesen Slotplan als Grundlage und fassen die Teile zusammen, die an einen Empfänger geschickt werden. Die Versandabteilung führt eine sog. Versandhistorie, in der die Sendungen untereinander in einer Excel-Tabelle erfasst werden, also pro Sendung eine Zeile.
Im Moment müssen wir die Daten aus dem Slotplan in die Versandhistorie abtippen, so wie ich das jetzt manuell im Beispiel gemacht habe, das raubt unheimlich viel Zeit. Ich würde gern wissen, ob Excel das auch automatisch machen kann. (Kann es bestimmt, aber ich hab keine Ahnung, wie.)
Danke schon jetzt für die Mühe,
Gruß
Katja

Anzeige
AW: Zeilen zu einem Datensatz zusammenfassen
25.06.2007 14:49:00
Renee
Hello Katja,
Du kannst diesen Code in DieseArbeitsmappe kopieren.
Wenn Du jetzt im Quellenblatt die Zellen einer Lieferung markierst und dann Rechtsklick, wirst Du nach der Zieladdresse gefragt, wo dann die Zusammenfassung gemacht wird:

Option Explicit
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As  _
Boolean)
'   Code by Renee Sulaweyo
'   June 2006
Dim dRowIx As Double
Dim dTargetRow As Double
Dim dTargetCol As Double
Dim vTargetCell As Variant
Dim sNr() As String
Dim sDesc() As String
Dim iCnt() As Integer
Dim ixArr As Integer
Dim sErrMsg As String
Dim bDoIt As Boolean
If Target.Rows.Count = 1 Or _
Target.Columns.Count  6 Or _
Left(Target.Cells(1, 1).Address, 3)  "$A$" Then Exit Sub
vTargetCell = InputBox("Bitte geben Sie die Adresse der Zielzelle an:", _
"Sendung zusammenfassen", "A" & Target.Row + Target.Rows.Count)
On Error Resume Next
vTargetCell = UCase(vTargetCell)
bDoIt = True
If Not (Sh.Range(vTargetCell).Address(False, False) = vTargetCell) Then bDoIt = False
If Not bDoIt Then
MsgBox "Aktion abgebrochen", vbOKOnly + vbExclamation, "Sendung zusammenfassen"
Exit Sub
End If
On Error GoTo 0
dTargetRow = Sh.Range(vTargetCell).Row
dTargetCol = Sh.Range(vTargetCell).Column
Application.ScreenUpdating = False
Sh.Cells(dTargetRow, dTargetCol) = Target.Cells(1, 1)
Sh.Cells(dTargetRow, dTargetCol + 1) = Target.Cells(1, 2)
ReDim sNr(0)
ReDim sDesc(0)
ReDim iCnt(0)
sNr(0) = Target.Cells(1, 3)
sDesc(0) = Target.Cells(1, 4)
iCnt(0) = 1
Sh.Cells(dTargetRow, dTargetCol + 5) = Target.Cells(1, 6)
sErrMsg = ""
For dRowIx = 1 To Target.Rows.Count
If Target.Cells(dRowIx, 1)  Sh.Cells(dTargetRow, dTargetCol) _
Then sErrMsg = "AUFTRAG"
If Target.Cells(dRowIx, 2)  Sh.Cells(dTargetRow, dTargetCol + 1) _
Then sErrMsg = "EMPFÄNGER"
If Target.Cells(dRowIx, 6)  Sh.Cells(dTargetRow, dTargetCol + 5) _
Then sErrMsg = "LIEFERDATUM"
If sErrMsg  "" Then
MsgBox "Kein EINDEUTIGKEIT im " & sErrMsg & "!" & vbCrLf & _
"Aktion abgebrochen!", vbOKOnly + vbExclamation, "Sendung zusammenfassen"
Sh.Range(Sh.Cells(dTargetRow, dTargetCol), _
Sh.Cells(dTargetRow, dTargetCol + 5)).ClearContents
Exit Sub
End If
bDoIt = True
For ixArr = 0 To UBound(sNr)
If sNr(ixArr) = Target.Cells(dRowIx, 3) Then
If dRowIx > 1 Then iCnt(ixArr) = iCnt(ixArr) + 1
bDoIt = False
End If
Next ixArr
If bDoIt Then
ReDim Preserve iCnt(ixArr)
ReDim Preserve sNr(ixArr)
ReDim Preserve sDesc(ixArr)
iCnt(ixArr) = 1
sNr(ixArr) = Target.Cells(dRowIx, 3)
sDesc(ixArr) = Target.Cells(dRowIx, 4)
End If
Sh.Cells(dTargetRow, dTargetCol + 4) = Sh.Cells(dTargetRow, dTargetCol + 4) & _
IIf(dRowIx = 1, "", ", ") & Target.Cells(dRowIx, 5)
Next dRowIx
For ixArr = 0 To UBound(sNr)
Sh.Cells(dTargetRow, dTargetCol + 2) = Sh.Cells(dTargetRow, dTargetCol + 2) & _
IIf(ixArr = 0, "", ", ") & _
iCnt(ixArr) & "x" & sNr(ixArr)
Sh.Cells(dTargetRow, dTargetCol + 3) = Sh.Cells(dTargetRow, dTargetCol + 3) & _
IIf(ixArr = 0, "", ",") & _
iCnt(ixArr) & "x" & sDesc(ixArr)
Next ixArr
Application.ScreenUpdating = True
End Sub


Greetz Renee

Anzeige
Renee, vielen vielen Dank!
26.06.2007 13:18:41
Katja27
Hallo Renee,
ich bin völlig begeistert, wie du das hinbekommen hast. Es funktioniert tadellos und wird uns zukünftig eine Menge Arbeit ersparen.
Ich bin immer wieder überrascht, wieviel man mit Excel und VBA machen kann, und solche Lösungen machen unheimlich Lust darauf, selbst mal in die Welt von VBA einzusteigen. Ich werde mir auf jeden Fall die Seminarunterlagen von Herber besorgen, um mir mal ein paar Grundlagen anzueignen.
Zum Schluss noch mal im Namen aller, die vielleicht vergessen, sich bei ihrem Helfer zu bedanken: Vielen lieben Dank an alle Genies, die hier ihre Zeit aufwenden um anderen zu helfen!! Schön, dass es euch gibt.
Liebe Grüße
Katja

Anzeige
AW: Zeilen zu einem Datensatz zusammenfassen
25.06.2007 13:00:21
Ludicla
Hallo Katja,
ich würde das mit der Pivot-Tabelle abbilden.
Je nach Reihenfolge der Daten ist eigentlich jede Abbildung mit Details und
ohne Details darstellbar. Die Daten bleiben immer verhanden.
Die Pivot hab ich im Arbeitsblatt eingebaut, man kann aber ein eigenes
Tabellenblatt erzeugen.
https://www.herber.de/bbs/user/43557.xls
mfg Lucicla

80 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige