Thema Datum  Von Nutzer Rating
Antwort
26.01.2016 10:39:23 Philipp
NotSolved
27.01.2016 01:58:37 Gast17858
NotSolved
27.01.2016 12:39:10 Gast22317
NotSolved
Blau Artikelbestände berechnen
27.01.2016 19:22:41 Gast72096
NotSolved
02.02.2016 07:30:07 Philipp
NotSolved
02.02.2016 07:30:07 Philipp
NotSolved
02.02.2016 08:08:47 Philipp
NotSolved
02.02.2016 10:10:32 Gast58314
NotSolved
02.02.2016 12:02:11 Gast51537
NotSolved
03.02.2016 10:00:02 Philipp
NotSolved
03.02.2016 16:56:39 Philipp
NotSolved
03.02.2016 18:24:57 Gast40628
NotSolved
04.02.2016 11:30:55 Philipp
NotSolved
04.02.2016 12:05:16 Philipp
NotSolved
04.02.2016 12:12:42 Philipp
NotSolved
04.02.2016 12:48:45 BigBen
NotSolved
04.02.2016 20:10:22 Gast37548
NotSolved
05.02.2016 06:21:11 Gast91368
NotSolved
05.02.2016 10:19:48 Gast13363
NotSolved
05.02.2016 12:39:15 Gast13112
NotSolved
08.02.2016 07:25:17 Philipp
NotSolved
08.02.2016 10:45:04 Philipp
NotSolved
08.02.2016 18:02:16 Gast47204
Solved
09.02.2016 08:02:20 Philipp
NotSolved

Ansicht des Beitrags:
Von:
Gast72096
Datum:
27.01.2016 19:22:41
Views:
1295
Rating: Antwort:
  Ja
Thema:
Artikelbestände berechnen

Hallo! Also Screenshots wären zum Abgleich, falls es falsch läuft nicht schlecht. Ansonsten hab ich hier mal einen ersten Versuch. Zumindest in meiner Testumgebung funktioniert er. Prüfe mal bitte ob das so hinhaut. Schönen Abend noch

 

Option Explicit
   
Sub vergleichen()
Dim eins As Object
Dim zwei As Object
Dim drei As Object
Dim vier As Object
Dim ende1 As Long
Dim ende2 As Long
Dim ende3 As Long
Dim ende4 As Long
Dim artikel()
Dim i As Long
Dim j As Long
Dim k As Long
Dim zusammensetzung()
  
Application.ScreenUpdating = False
   
Set eins = Worksheets(1)
Set zwei = Worksheets(2)
Set drei = Worksheets(3)
Set vier = Worksheets(4)
   
ende1 = eins.Cells(Rows.Count, 1).End(xlUp).Row 'belegte Zellen in Blatt 1

ReDim artikel(2, ende1)

For i = 1 To ende1
    If eins.Cells(i, 1) <> "" Then
        artikel(1, i) = eins.Cells(i, 1)
        artikel(2, i) = CLng(eins.Cells(i, 2))
    End If
Next i

ende2 = zwei.Cells(Rows.Count, 1).End(xlUp).Row

ReDim zusammensetzung(ende2, ende1)

For j = 0 To ende1
    For i = 1 To ende2
        If zwei.Cells(i, 1) <> "" Then
            If j = 0 Then
            zusammensetzung(i, 0) = zwei.Cells(i, 1)
            Else
                If artikel(1, j) <> "" Then zusammensetzung(i, j) = Application.WorksheetFunction.CountIf(zwei.Range(zwei.Cells(i, 2), zwei.Cells(i, 10)), artikel(1, j))
            End If
        End If
    Next i
Next j

ende3 = drei.Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To ende3
    For j = 1 To ende1
        If drei.Cells(i, 1) = artikel(1, j) Then
            artikel(2, j) = artikel(2, j) + Application.WorksheetFunction.Sum(drei.Range("B:BB").Rows(i))
        End If
    Next j
Next i

ende4 = vier.Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To ende4
    For j = 1 To ende2
        If vier.Cells(i, 1) = zusammensetzung(j, 0) Then
            For k = 1 To ende1
                artikel(2, k) = artikel(2, k) - (Application.WorksheetFunction.Sum(vier.Range("B:BB").Rows(i)) * zusammensetzung(j, k))
            Next k
        End If
    Next j
Next i

'Werte wieder eintragen
j = 1
For i = 1 To ende1
    If eins.Cells(i, 1) = artikel(1, j) Then
    
        eins.Cells(i, 2) = artikel(2, j)
        j = j + 1
    End If
Next i

Set eins = Nothing
Set zwei = Nothing
Set drei = Nothing
Set vier = Nothing

Application.ScreenUpdating = True
   
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
26.01.2016 10:39:23 Philipp
NotSolved
27.01.2016 01:58:37 Gast17858
NotSolved
27.01.2016 12:39:10 Gast22317
NotSolved
Blau Artikelbestände berechnen
27.01.2016 19:22:41 Gast72096
NotSolved
02.02.2016 07:30:07 Philipp
NotSolved
02.02.2016 07:30:07 Philipp
NotSolved
02.02.2016 08:08:47 Philipp
NotSolved
02.02.2016 10:10:32 Gast58314
NotSolved
02.02.2016 12:02:11 Gast51537
NotSolved
03.02.2016 10:00:02 Philipp
NotSolved
03.02.2016 16:56:39 Philipp
NotSolved
03.02.2016 18:24:57 Gast40628
NotSolved
04.02.2016 11:30:55 Philipp
NotSolved
04.02.2016 12:05:16 Philipp
NotSolved
04.02.2016 12:12:42 Philipp
NotSolved
04.02.2016 12:48:45 BigBen
NotSolved
04.02.2016 20:10:22 Gast37548
NotSolved
05.02.2016 06:21:11 Gast91368
NotSolved
05.02.2016 10:19:48 Gast13363
NotSolved
05.02.2016 12:39:15 Gast13112
NotSolved
08.02.2016 07:25:17 Philipp
NotSolved
08.02.2016 10:45:04 Philipp
NotSolved
08.02.2016 18:02:16 Gast47204
Solved
09.02.2016 08:02:20 Philipp
NotSolved