• 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.

Bij een gesplitste cel de gegevens die nodig zijn optellen

Status
Niet open voor verdere reacties.

Johande

Gebruiker
Lid geworden
23 nov 2015
Berichten
88
Beste,

Ik heb een lengte waar een aantal onderdelen toegevoegd moeten worden als de lengte een bepaalde maat heeft.
Maar nu kom ik ook gesplitste cellen tegen waar 2 gegevens in staan.
Hoe kan ik deze met een VBA code bij elkaar optellen in 1 cel?



voorbeeld in de bijlage.

Groet Johan
 

Bijlagen

Waarom zou je het met VBA doen

Code:
=SUMPRODUCT(H2:H17;LEN(E2:E17)-LEN(SUBSTITUTE(E2:E17;";";""))+1)
 
Begin bij de struktuur: geen cellen met meervoudige inhoud.
Formules zijn er niet om struktuurfouten te 'herstellen'.
 
ik weet niet zeker of je dit bedoeld: (zonder vba)
Code:
=som(filter($h$2:$h$17;niet(isfout( vind.spec(m5;$e$2:$e$17)))))
ps het geeft wel een ander antwoord dan de oplossing van JV
ps2 ik begrijp niet waarom 1200 niet in je eindlijst voorkomt.
 
Laatst bewerkt:
Hallo Allemaal dank jullie voor de reactie

Hallo Jveer, Waarom in VBA omdat er veel meer aanhangt wat hiermee te maken heeft ook met verschillende producten.

Hallo snb Deze structuur is reeds een tijd in mijn programma en aanpassen naar losse cellen extreem veel tijd.

Hallo sylvester-ponte Liefst toch met een VBA code omdat er nog veel meer aanhangt wat uit gegevens moet komen.
 
Johan, stuur eens een bestand met de juiste antwoorden.
wat bedoel je bvb met 1200;3000 en daar naast 4
betekend dat 1200 van 4 en 3000 van 4
of 1200*4 =4800 en 3000 * 4 =12000
een duidelijk bestandje met de juiste antwoorden doet wonderen.

geef ook aan welke excel je gebruikt
 
Laatst bewerkt:
Run deze eens

Code:
Sub jec()
 Dim ar As Variant, it As Variant, k As Variant, i As Long
 ar = Range("E2:H17")
 
 With CreateObject("scripting.dictionary")
   For i = 1 To UBound(ar)
     For Each it In Split(ar(i, 1), ";")
         If it > 2700 Then k = "Groter dan 2700" Else k = it
        .Item(k) = .Item(k) + ar(i, 4)
     Next
  Next
  
   Range("M12").Resize(.Count, 2) = Application.Transpose(Array(.keys, .items))
  Range("M12").Sort Range("M12"), 1
 End With
End Sub
 
Laatst bewerkt:
Hallo JV,

Ik heb een nieuw voorbeeldje.
Ik heb gerund maar dat zijn juist de gegevens waar de aantallen mee berekend moeten worden.

Kolom G is nu handmatig in gevuld maar zou eigenlijk met VBA in kolom I moeten komen staan
 

Bijlagen

Hallo Sylvester-ponte,

Nee maar dit een een voorbeeld.
Het is zeg maar een holle koker waar een aantal verschillende artikelen in geschoven worden.
Mij gaat het meer om de voor de gesplitste cellen de totaal aantallen te kunnen bepalen die in de enen lat en in de andere lat toegepast kunnen worden.
Er zijn ook cellen in het programma met 3 gegevens.

Oja, er werd ook gevraagd welk Excel pakket ik gebruik
2019 en 365
 
Johan, zorg eens dat er de juiste antwoorden in je voorbeeld staan.
anders moet ik gokken wat je precies wil bereiken.
je schrijft: Er zijn ook cellen in het programma met 3 gegevens.
zet die er ook in met de juiste antwoorden.
 
Laatst bewerkt:
Sylfester-ponte,


tot 1000 3 stuks nodig
van 1000 tot 1250 4 stuks
van 1250 tot 2500 5 stuks
van 2500 tot 2700 6 stuks
groter als 2700 8 stuks


zoals in kolom E staat komen deze aantallen eruit.
1200;1250 = 4 +5
1200;3000=4 +8
1200;1500;3000= 4+5+8


Ik ga er vanuit dat dit zo duidelijk is?

gr, Johan
 
Laatst bewerkt:
Of met een sub

Code:
Sub jec()
 ar = Range("E2:H17")
 sq = Range("N6:O9")
 
 For i = 1 To UBound(ar)
    For Each it In Split(ar(i, 1), ";")
       For j = 1 To UBound(sq)
          If sq(j, 1) > Val(it) Then ar(i, 4) = ar(i, 4) + sq(j, 2): Exit For
       Next
    Next
 Next
     
 Range("E2:H17") = ar
End Sub
 
Hallo Dank jullie voor de oplossing voor mij.
Alle 2 zouden bruikbaar zijn.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan