Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1764to1768
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

Rucksack einfüllen

Rucksack einfüllen
23.06.2020 09:00:13
Ramon
Hallo zusammen,
gerne frage ich Euch ob mir jemand weiterhelfen kann:
In meinem Excel habe ich 3 Laschen ("Gross", "Mittel", "Klein") und eine Lasche "Rucksack". In den Laschen Gross, Mittel, Klein wird nun unterschieden nach Form und Farbe der Gegenstände, wobei jeder Gegenstand eine separate ID hat (zB "XCPO") und eine Gewichtung (zB. 1.5%). Das Ziel ist es nun den "Rucksack" zu befüllen mit den Daten in den anderen 3 Laschen, d.h. zu schauen ob ein Gegenstand ein Gewicht ungleich Null hat und wenn ja, die ID und das Gewicht in der richtigen Zeile des Rucksacks einzufüllen (ich habe die zu befüllenden Zeilen orange markiert). Dabei soll, falls es nicht genug Zeilen hat um alle Gegenstände zu zeigen im Rucksack, jeweils eine zusätzliche Zeile eingefügt werden.
(ich versuche gerade noch die Arbeitsmappe hochzuladen)
Wäre absolut genial falls jemand wüsste wie ich dies mit VBA dies bewerkstelligen könnte!
Herzlichen Dank,
Ramon

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nachfrage..
23.06.2020 12:31:33
UweD
Hallo
Kannst du in den einzelnen Blätter die Einträge in den Spalten B bis C
in jeder Zeile ergänzen? und ggf. unsichtbar (weiß auf weiß) darstellen

Gross
 BCDEFG
6Gross0,365
7GrossRund0,14
8GrossRundRot0,07
9GrossRundRotXCPOGegenstand0,02
10GrossRundRotTHGGGegenstand 
11GrossRundRotJDKFGegenstand0,03
12GrossRundRotBVJGGegenstand0,02
13      
14      
15GrossRundGrün0,04
16GrossRundGrünPOKHDGegenstand 
17GrossRundGrünTHGGegenstand0,02
18GrossRundGrünJUCJGegenstand0,02
19      
20      
21GrossRundGelb0,03
22GrossRundGelbKDHCGegenstand0,015
23GrossRundGelbCMNJDGegenstand0,003
24GrossRundGelbOJDHHGegenstand 
25GrossRundGelbOKDGegenstand0,002
26GrossRundGelbPOSGegenstand0,01
27      
28GrossEckig0,13
29GrossEckigRot0,015
30GrossEckigRotDAFFGegenstand0,015
31      
32      
33GrossEckigGrün0,07
34GrossEckigGrünPSDFFGegenstand0,01
35GrossEckigGrünBJCDGegenstand 
36GrossEckigGrünMMWGegenstand0,06
37      



Das würde die Sache wesentlich erleichtern
LG
Anzeige
AW: Nachfrage..
23.06.2020 15:01:08
Ramon
Hallo Uwe, danke Dir! Ich habe die Kriterien jeweils in einer Zelle verknüpft. Hilft das so weiter?
https://www.herber.de/bbs/user/138503.xlsm
Herzlichen Dank!
Ramon
AW: Nachfrage..
24.06.2020 16:45:47
UweD
Hallo
habe mal was gebastelt..
In den Einzelblättern waren überflüssige Zeilen drin, die habe ich rausgeworfen.

Option Explicit
Sub Rucksack()
Dim TB As Worksheet, TBx As Worksheet, Groesse As String
Dim I As Integer
Dim LR As Integer, LRx As Integer, Zeile1 As Integer, Zeilen As Integer
Dim Anz As Integer, TMP
Set TB = Sheets("Rucksack")
Application.ScreenUpdating = False
With TB
LR = .Cells(.Rows.Count, 1).End(xlUp).Row 'letzte Zeile der Spalte
For I = LR To 3 Step -1
Anz = Len(.Cells(I, 1)) - Len(Replace(.Cells(I, 1), "_", "")) 'Anzahl Merkmale
If Anz = 2 And .Cells(I, 1)  2 And .Cells(I, 3) = "" Then
TMP = Split(.Cells(I, 1), "_")
Groesse = TMP(0) 'Blattname
Set TBx = Sheets(Groesse)
If TBx.AutoFilterMode Then TBx.AutoFilterMode = False ' Autofilter ausschalten
LRx = TBx.Cells(TBx.Rows.Count, 1).End(xlUp).Row
'Temporäre Bezeichnung für Filter
TBx.Cells(5, 1) = "Tmp"
'Filtern
With TBx.Cells(5, 1).Resize(LRx - 4, 3)
.AutoFilter Field:=1, Criteria1:=TB.Cells(I, 1).Value
.AutoFilter Field:=3, Criteria1:=""
End With
'Anzahl gefilterte Zeilen 'Headline abziehen
Zeilen = WorksheetFunction.CountIf(TBx.Columns(1), TB.Cells(I, 1)) - 1
Select Case Zeilen
Case -1, 0
'Kein Eintrag, oder nur Headline
'tue nichts
Case 1, 2
Zeile1 = WorksheetFunction.Match(TB.Cells(I, 1), TBx.Columns(1), 0) + 1
.Cells(I - 1, 1).Resize(Zeilen, 7).Value = TBx.Cells(Zeile1, 1).Resize( _
Zeilen, 7).Value
Case Is > 2
'Zusätzliche Einfügezeilen erzeugen
Zeile1 = WorksheetFunction.Match(TB.Cells(I, 1), TBx.Columns(1), 0) + 1
.Rows(I).Resize(Zeilen - 2).Insert xlDown
.Cells(I - 1, 1).Resize(Zeilen, 7).Value = TBx.Cells(Zeile1, 1).Resize( _
Zeilen, 7).Value
End Select
I = I - 1
TBx.AutoFilterMode = False
TBx.Cells(5, 1).ClearContents ' Temp wieder leeren
End If
Next
End With
Application.ScreenUpdating = True
End Sub
https://www.herber.de/bbs/user/138538.xlsm
LG UweD
Anzeige
AW: Nachfrage..
24.06.2020 17:14:13
UweD
Noch eine Änderung
(nur der Schönheit wegen)

aus
If Anz = 2 And .Cells(I, 1)  2 And .Cells(I, 3) = "" Then
wird
If Anz = 2 And .Cells(I, 3) = "" Then

AW: Nachfrage..
24.06.2020 18:18:43
Ramon
Grandios!! Vielen herzlichen Dank UweD - das funktioniert absolut genial!
Ich versuche mal den Code nachzuvollziehen. Gäbe es evtl eine Möglichkeit, dass diejenigen Zeilen, welche kein Gewicht haben, gar nicht zu zeigen im Rucksack - also gar nicht reinzukopieren?
Lieben Dank und Gruss,
Ramon
AW: Rucksack einfüllen
23.06.2020 17:34:39
onur
Wenn ich lese: "In meinem Excel habe ich 3 Laschen" und sehe, dass der Autor diese Textes sich mit "Excel-gut" bewertet, weiss ich nicht, ob ich lachen oder weinen soll.
Das heisst nicht "Mein Excel" sondern "Meine Excel-Datei" und das sind keine "Laschen" sondern Blätter.
Die "Laschen" ("Tabs", "Reiter") sind nur Navigationshilfen, damit man schnell vom einem Blatt zum Anderen umschalten kann.
Anzeige
AW: Rucksack einfüllen
23.06.2020 17:52:29
Ramon
Danke für den Hinweis.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige