Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Ergebniss in die untere Zeile setzen

Betrifft: Ergebniss in die untere Zeile setzen von: Larissa
Geschrieben am: 29.06.2015 08:10:53

Hallo,

habe eine Tabelle, in der das Paket-Gewicht mit Hilfe eines Makros am Anfang des Paketes gesetzt wird:
Stück Länge Paket-Nr. Gewicht Paket-Gewicht
1_____18360____101____183______343
2_____12360____101____150______
1_____1000_____101____10_______
2_____12360____102____150______160
3_____1000_____102____10_______
15____1500_____103____225______265
2_____2000_____103____40_______

würde aber die Paket-Gewichte am Ende des Paketes gesetzt haben:
1_____18360____101____183______
2_____12360____101____150______
1_____1000_____101____10_______343
2_____12360____102____150______
3_____1000_____102____10_______160
15____1500_____103____225______
2_____2000_____103____40_______265

hier mein Makro:
________________________________________________________________________________

Public Sub Zusammen_alle()


Dim Mldg, Stil, Titel, Antwort
Mldg = "Alle Paletten zusammenfassen ?"    ' Meldung definieren.
Stil = vbYesNo + vbQuestion + vbDefaultButton2    ' Schaltflächen definieren.
Titel = "Palettierung"    ' Titel definieren.

Antwort = MsgBox(Mldg, Stil, Titel)    ' Meldung anzeigen.
If Antwort = vbYes Then

    ActiveSheet.Unprotect ("PE")
    Dim r As Integer, i As Integer
    
    r = 22
    While Cells(r, 1).Value <= 0 And r < 1000
        r = r + 1
    Wend
Do While r < 1000
    Cells(r, 7).Select
    ActiveCell.FormulaR1C1 = "=SUMIF(R20C10:R300C10,RC[-4],R20C11:R300C11)"
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -0.14996795556505
        .PatternTintAndShade = 0
    End With
     r = r + 2
    While Cells(r, 3).Value = Cells(r - 1, 3).Value
        r = r + 1
    Wend
    While Cells(r, 1).Value <= 0 And r < 1000
        r = r + 1
    Wend

Loop
    Cells(22, 1).Select
    ActiveSheet.Protect Password:="PE", DrawingObjects:=True, Contents:=True, Scenarios:=True


End If

End Sub

____________________________________________________________________________
hat jemand eine Idee, was ich ändern muss

  

Betrifft: Formellösung von: RPP63
Geschrieben am: 29.06.2015 08:46:50

Hallo!
Warum VBA?
Ist doch per Formel problemlos lösbar:

 ABCDE
1StückLängePaket-Nr.GewichtPaket-Gewicht
2118360101183 
3212360101150 
41100010110343
5212360102150 
63100010210160
7151500103225 
82200010340265

Formeln der Tabelle
ZelleFormel
E2=WENN(C2<>C3;SUMMEWENN(C:C;C2;D:D); "")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Gruß Ralf


  

Betrifft: AW: Formellösung von: Larissa
Geschrieben am: 29.06.2015 09:34:47

wollte per Knopfdruck lösen,
aber dieser Weg ist auch sehr gut
Danke für den Tipp

Gruß
Larissa


  

Betrifft: AW: Formellösung von: Larissa
Geschrieben am: 29.06.2015 10:13:53

ein Problem habe ich aber hier noch:
wenn ich eine neue Zeile hinzufüge und eine darüber liegende Zeile kopiere und in die neue einfüge, dann werden die Zeilen-Nummern falsch kopiert
z.B.:
vorhandene Zeile: =WENN(C35<>C36;SUMMEWENN(C:C;C35;E:E);"")
kopierte Zeile: =WENN(C36<>C38;SUMMEWENN(C:C;C36;E:E);"")
wert c38 sollte hier c37 sein
wieso ist das so?

Gruß Larissa


  

Betrifft: das Problem lässt sich mit INDEX() beheben ... von: der neopa C
Geschrieben am: 29.06.2015 10:42:23

Hallo Larissa,

... mit folgender Formel in E2:

=WENN(INDEX(C:C;ZEILE())<>INDEX(C:C;ZEILE()+1);SUMMEWENN(C:C;INDEX(C:C;ZEILE());D:D);"")

Diese Formel nach unten kopieren. Nun kannst Du bei Zeilen-Einschüben/Löschungen auch nachträglich z.B. nach Spalte C sortieren.

Gruß Werner
.. , - ...


 

Beiträge aus den Excel-Beispielen zum Thema "Ergebniss in die untere Zeile setzen"