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

Basartabelle bitte um schnelle hilfe

Basartabelle bitte um schnelle hilfe
29.02.2024 09:18:07
Aspire_1
Hallo Leute,

ich habe bei euch eine Super Tabelle gefunden für den anstehenden Basar/Flohmarkt bei uns.

Nur hätte jemand die Zeit mir diese zu bearbeiten?

Spalte D sollte 90 % vom Kaufpreis (bekommt der Verkäufer) enthalten und Spalte E 10 %.(Spende für den Fußballverein.

Wenn dann anschließen das Makro aufteilen gedrückt wird bekommt ja jeder Verkäufer ein neues Blatt zugeweisen, das geht ja schon. Leider müsste dann für jeden verkäufer in jedem Blatt die Endsumme sowie die 90 % die er erhält und die 10 % die Gespendet werden ausgewiesen sein.

Wäre dankbar wenn mir da einer helfen könnte. Makros sind völliges neuland für mich.

https://www.herber.de/bbs/user/167406.xls

Sub Aufteilen()

Dim wksSheet As Worksheet
Dim wksTMP As Worksheet
Dim rngRange As Range
Dim rngTMP As Range
Dim lngRow As Long
On Error GoTo Fin
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
For Each wksTMP In ThisWorkbook.Worksheets
If wksTMP.Name Like "Verk*" Then
wksTMP.Delete
End If
Next wksTMP
Set wksSheet = ThisWorkbook.Worksheets("Gesamt")
With wksSheet
Set rngRange = .Range("A1:D" & Cells(Rows.Count, 1).End(xlUp).Row)
rngRange.Sort Key1:=.Range("A2"), Order1:=xlAscending, _
Key2:=.Range("B2"), Order2:=xlAscending, _
Header:=xlYes
lngRow = 2
Do Until IsEmpty(rngRange.Cells(lngRow, 1))
If rngRange.Cells(lngRow, 1) > rngRange.Cells(lngRow - 1, 1) Then
rngRange.AutoFilter field:=1, Criteria1:=rngRange.Cells(lngRow, 1)
Set rngTMP = rngRange.SpecialCells(xlCellTypeVisible)
Worksheets.Add.Move After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Verk_" & rngRange.Cells(lngRow, 1)
rngTMP.Copy Range("A1")
Range("D1").FormulaR1C1 = "=SUM(R[1]C[-1]:R[41]C[-1])"
Columns("A:D").AutoFit
End If
lngRow = lngRow + 1
Loop
End With
Fin:
wksSheet.AutoFilterMode = False
With Application
.Goto wksSheet.Range("A1"), True
.ScreenUpdating = True
.DisplayAlerts = True
End With
Set rngRange = Nothing
Set wksSheet = Nothing
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Basartabelle bitte um schnelle hilfe
29.02.2024 09:26:18
Aspire_1
Achso könnte mann noch eine Spalte neben der Artikelnr. einfügen mit dem Namen Bezeichnung?
Sry aber die Mütter sitzen mir im Nacken :-)
Bin euch echt Dankbar für das Forum!

Liebe Grüße
AW: Basartabelle bitte um schnelle hilfe
29.02.2024 09:31:04
Aspire_1
Oh mann wieder was vergessen, natürlich sollte auf der Gesamt übersicht auch die Gesamtsumme und mit 90% und 10 % ersichtlich sein. Es tut mir so leid, aber irgendwie kann ich meinen Beitrag nicht editieren.
AW: Basartabelle bitte um schnelle hilfe
29.02.2024 10:16:17
UweD
Hallo

änder den Aufbau wie folgt
Arbeitsblatt mit dem Namen 'Gesamt'
ABCDEFG
VerkaeuferArtikel-Nr.BezeichnungPreis90%10% 


Das makro so:
Option Explicit

Sub Aufteilen()
Dim wksSheet As Worksheet
Dim wksTMP As Worksheet
Dim rngRange As Range
Dim rngTMP As Range
Dim lngRow As Long
Dim lngMax As Long
Dim lngVmax As Long

On Error GoTo Fin
With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With
For Each wksTMP In ThisWorkbook.Worksheets
If wksTMP.Name Like "Verk*" Then
wksTMP.Delete
End If
Next wksTMP
Set wksSheet = ThisWorkbook.Worksheets("Gesamt")
With wksSheet
lngMax = .Cells(.Rows.Count, 1).End(xlUp).Row ' Letzte Zeile in A

.Rows(lngMax + 2).ClearContents 'Summenzeile löschen
Set rngRange = .Range("A1:F" & lngMax)
rngRange.Sort Key1:=.Range("A2"), Order1:=xlAscending, _
Key2:=.Range("B2"), Order2:=xlAscending, _
Header:=xlYes
lngRow = 2
'Prozente
.Range("E2:E" & lngMax).FormulaR1C1 = "=RC[-1]*R1C5"
.Range("F2:F" & lngMax).FormulaR1C1 = "=RC[-2]*R1C6"

Do Until IsEmpty(rngRange.Cells(lngRow, 1))
If rngRange.Cells(lngRow, 1) > rngRange.Cells(lngRow - 1, 1) Then
rngRange.AutoFilter field:=1, Criteria1:=rngRange.Cells(lngRow, 1)
Set rngTMP = rngRange.SpecialCells(xlCellTypeVisible)
Worksheets.Add.Move After:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = "Verk_" & rngRange.Cells(lngRow, 1)
rngTMP.Copy Range("A1")
lngVmax = .Cells(.Rows.Count, 1).End(xlUp).Row

'Blattsummen ergänzen
.Cells(lngVmax + 2, 3) = "Gesamt:"
.Cells(lngVmax + 2, 4).Resize(1, 3).FormulaR1C1 = "=SUM(R[-" & lngVmax & "]C:R[-2]C)"
.Columns("A:F").AutoFit
End With
End If
lngRow = lngRow + 1
Loop
.AutoFilterMode = False

'Gesamtsumme ergänzen
.Cells(lngMax + 2, 3) = "Gesamt:"
.Cells(lngMax + 2, 4).Resize(1, 3).FormulaR1C1 = "=SUM(R[-" & lngMax & "]C:R[-2]C)"

End With
Fin:
With Application
.Goto wksSheet.Range("A1"), True
.ScreenUpdating = True
.DisplayAlerts = True
End With
Set rngRange = Nothing
Set wksSheet = Nothing
End Sub


LG UweD
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige