• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

bestellingen

Status
Niet open voor verdere reacties.

patje8

Gebruiker
Lid geworden
31 jul 2005
Berichten
436
Via een macro krijg ik de gegevens van kolom j tot kolom o binnen in excel.
Als er nu een bestelling binnenkomt worden de kolommen A tot g worden ingevuld.

Mijn probleem is nu echter dat in kolom 8 het aantal stuks van de bestelling moet komen maar deze moet eerst nagekeken worden of deze overeenkomt.
Dus:
kolom b = kolom k
kolom c = kolom j
kolom d = kolom m
kolom e = kolom n
kolom f = kolom o
Daarna kan het totaal het aantal stuks van kolom G in kolom P gezet worden bij het juiste produkt.


Hoe doe ik dit?
 

Bijlagen

Ik begrijp er niets van.

De uitleg komt helemaal niet overeen met het bestand: vermoedelijk omdat je 2 kolommen gedeleted hebt (een berekende gok van mij).

Wigi
 
Het artikelnummer is uniek in de lijst voor elk product?
 
Voilà

Code:
Sub artikelsoptellen()
    
    Dim c As Range, d As Range, blnDuplic As Boolean, lLastRow As Long
    
    For Each c In Range("C2", Range("C" & Rows.Count).End(xlUp))
        
        blnDuplic = True
        
        For Each d In Range("J2", Range("J" & Rows.Count).End(xlUp))
            
            If c = d And UCase(c.Offset(, -1)) = UCase(d.Offset(, 1)) And c.Offset(, 1) = d.Offset(, 3) And c.Offset(, 2) = d.Offset(, 4) _
                And c.Offset(, 3) = d.Offset(, 5) Then
                    
                    d.Offset(, 6) = d.Offset(, 6) + c.Offset(, 4)
                    blnDuplic = False
                    Exit For
            End If
        Next d
        
        If blnDuplic Then
            lLastRow = Range("J" & Rows.Count).End(xlUp).Row
            
            With Range("J" & lLastRow + 1)
                .Offset(, 0) = c
                
                .Offset(, 1) = c.Offset(, -1)
                
                .Offset(, 2) = c.Offset(, 4)
                
                .Offset(, 3) = c.Offset(, 1)
                
                .Offset(, 4) = c.Offset(, 2)
                
                .Offset(, 5) = c.Offset(, 3)
                
                .Offset(, 6) = c.Offset(, 4)
            End With
        End If
    Next c

MsgBox "Klaar!"

End Sub

Als het produkt niet voorkomt in de lijst wordt onderaan een nieuwe regel bijgevoegd.

Wigi
 
Das niet echt wat is zoek.

Het aantal stuks van kolom G moet bij het juiste produkt met de juiste nummer (kolom D,E,F en kolom M,N,O) in kolom Q verschijnen.
 
Zo dan?

Code:
Sub artikelsoptellen()
    
    Dim c As Range, d As Range, blnDuplic As Boolean, lLastRow As Long
    
    For Each c In Range("C2", Range("C" & Rows.Count).End(xlUp))
        
        blnDuplic = True
        
        For Each d In Range("J2", Range("J" & Rows.Count).End(xlUp))
            
            If c = d And UCase(c.Offset(, -1)) = UCase(d.Offset(, 1)) And c.Offset(, 1) = d.Offset(, 3) And c.Offset(, 2) = d.Offset(, 4) _
                And c.Offset(, 3) = d.Offset(, 5) Then
                    
                    d.Offset(, 7) = c.Offset(, 4)
                    blnDuplic = False
                    Exit For
            End If
        Next d
        
        If blnDuplic Then
            lLastRow = Range("J" & Rows.Count).End(xlUp).Row
            
            With Range("J" & lLastRow + 1)
                .Offset(, 0) = c
                
                .Offset(, 1) = c.Offset(, -1)
                
                .Offset(, 2) = c.Offset(, 4)
                
                .Offset(, 3) = c.Offset(, 1)
                
                .Offset(, 4) = c.Offset(, 2)
                
                .Offset(, 5) = c.Offset(, 3)
                
                .Offset(, 6) = c.Offset(, 4)
            End With
        End If
    Next c

MsgBox "Klaar!"

End Sub

Wigi
 
ja, da ist!! :D :D :D


:confused: :confused: Alleen als er hetzelfde product met dezelfde nummer wordt ingevuld zou dit totaal moeten opgesteld worden in kolom Q

Zie bijlage: dus in Cel Q4 zou 7 moeten staan ipv 5.
 

Bijlagen

Allé hier dan:

Code:
Sub artikelsoptellen()
    
    Dim c As Range, d As Range, blnDuplic As Boolean, lLastRow As Long
    
    For Each c In Range("C2", Range("C" & Rows.Count).End(xlUp))
        
        blnDuplic = True
        
        For Each d In Range("J2", Range("J" & Rows.Count).End(xlUp))
            
            If c = d And UCase(c.Offset(, -1)) = UCase(d.Offset(, 1)) And c.Offset(, 1) = d.Offset(, 3) And c.Offset(, 2) = d.Offset(, 4) _
                And c.Offset(, 3) = d.Offset(, 5) Then
                    
                    d.Offset(, 7) = d.Offset(, 7) + c.Offset(, 4)
                    blnDuplic = False
                    Exit For
            End If
        Next d
        
        If blnDuplic Then
            lLastRow = Range("J" & Rows.Count).End(xlUp).Row
            
            With Range("J" & lLastRow + 1)
                .Offset(, 0) = c
                
                .Offset(, 1) = c.Offset(, -1)
                
                .Offset(, 2) = c.Offset(, 4)
                
                .Offset(, 3) = c.Offset(, 1)
                
                .Offset(, 4) = c.Offset(, 2)
                
                .Offset(, 5) = c.Offset(, 3)
                
                .Offset(, 6) = c.Offset(, 4)
            End With
        End If
    Next c

MsgBox "Klaar!"

End Sub

Wigi
 
kan je dat soms ook via een formule in excel en niet via VBA?
 
kan je dat soms ook via een formule in excel en niet via VBA?

Waarom zeg je dat dan niet in het begin van je vraag :confused:

Het dichtste dat ik kan komen, is verwerkt in bijlage.

2 opmerkingen:

- er is een kolom van plaats verwisseld omdat die niet nodig is.
- rijen in tabel 1 die niet voorkomen in tabel 2 zullen er niet bijgezet worden. Er wordt enkel geteld voor reeds bestaande rijen in tabel 2.

Wigi
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan