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

Cellen splitsen op aantal lengtes

Status
Niet open voor verdere reacties.

Johande

Gebruiker
Lid geworden
23 nov 2015
Berichten
88
Beste,

Ik heb een aantal lengtes en bv 60 totaal van 1563 en 40 van 1880.
Nu heb ik een optimalisatie lijst waar ik enkel de lengtes in kan voeren per stuk.
Hou krijg ik alle lengte onder elkaar zoals in voorbeeld is aan gegeven op blad totaal?
Is daar iets makkelijks te creëren voor?

Alvast bedankt.
 

Bijlagen

Het kan zijn dat je het net andersom bedoelt maar:
Voor office 365

Code:
=FILTERXML("<x><y>"&SUBSTITUTE(TRIM(TEXTJOIN(" ";;REPT(E2:E24&" ";H2:H24)));" ";"</y><y>")&"</y></x>";"//y")

of voor insider versies

Code:
=TRANSPOSE(TEXTSPLIT(TRIM(TEXTJOIN(" ";;REPT(E2:E24&" ";H2:H24)));" "))
 
Laatst bewerkt:
Hallo JEC,

Bedankt voor het snelle reageren.

Ik bedoel eigenlijk dat de lengtes naar de aantallen onder elkaar komen te staan.
60 lamellen op Totaal blad betekend dan 60 x 1563 in gevuld onder elkaar op blad PER STUK.


Gr, Johande
 
Dat zou die formule moeten doen. De output moet dus zijn zoals op tabblad 2?
 
Beste JEC,

Waar ga ik deze formule plaatsen dan?

Beste AHulpje,

Als ik hem uitvoer verplaatst hij de 2 kolommen maar ik wil eigenlijk dat alle lengtes onder elkaar komen te staan op blad Per STUK.
Zoals ik nu heb staan deze zijn gekopieerd maar da zou ik graag automatisch willen.
 
Voeg de rode regel toe:
Code:
    r = 2
[COLOR=#ff0000]    Sheets("Totaal").Activate[/COLOR]
    For Each d In dict

De formules in kolom E en H worden dan wel overschreven.
Wel een beetje rare formules trouwens:
Code:
=ALS(B2="";"";SOM(D2-20))
=ALS(B2="";"";SOM(B2*F2))
Zou ik van maken
Code:
=ALS(B2="";"";D2-20)
=ALS(B2="";"";B2*F2)
Maar ach, ze gaan toch vervallen?
Als kolom E een getal in plaats van een formule wordt zou je daar kolom D uit kunnen afleiden:
[D2]=E2-20
 
Zoek eens op 'zaaglijst' in dit forum.
 
Voor het idee, de output begint hier in M2

Code:
Sub jec()
 Dim cl
 With CreateObject("scripting.dictionary")
   For Each cl In Sheets(2).Range("A1", Sheets(2).Range("A" & Rows.Count).End(xlUp))
     .Item(cl.Value) = .Item(cl.Value) + 1
   Next
   Sheets(1).Range("M2").Resize(.Count, 2) = Application.Transpose(Array(.keys, .items))
 End With
End Sub

En deze doet dan hetzelfde

Code:
=LET(x;UNIEK('PER STUK'!A1:A100);KIEZEN({1\2};x;BYROW(x;LAMBDA(r;AANTAL.ALS('PER STUK'!A1:A100;r)))))
 
Laatst bewerkt:
Of:

Code:
=LET(x;'PER STUK'!A1:A100;y;UNIEK(x);z;AANTAL.ALS(x;y);KIEZEN({1\2};y;z))
Of:
Code:
=LET(x;'PER STUK'!A1:A100;y;UNIEK(x);KIEZEN({1\2};y;AANTAL.ALS(x;y)))
 
Laatst bewerkt:
Je formule in #2 zou toch de juiste oplossing zijn dunkt me.

Alternatief.
Code:
Eng: =LET(x;FILTERXML("<x><y>"&SUBSTITUTE(CONCAT(REPT(Totaal!E2:E24&"-";Totaal!H2:H24));"-";"</y><y>")&"</y></x>";"//y");FILTER(x;ISNUMBER(x)))
Ned: =LET(x;XML.FILTEREN("<x><y>"&SUBSTITUEREN(TEKST.SAMENV(HERHALING(Totaal!E2:E24&"-";Totaal!H2:H24));"-";"</y><y>")&"</y></x>";"//y");FILTER(x;ISGETAL(x)))

Alternatief voor Beta-gebruikers.
Code:
Eng: =--TEXTSPLIT(TRIM(CONCAT(REPT(Totaal!E2:E24&" ",Totaal!H2:H24))),," ")
Ned: =--TEKST.SPLITSEN(SPATIES.WISSEN(TEKST.SAMENV(HERHALING(Totaal!E2:E24&" ";Totaal!H2:H24)));;" ")
 
Beste Allemaal,

De gegevens die ik heb staan op blad Totaal en deze moeten in de kolom a op blad PER STUk uit gesplits worden onder elkaar.
Ik wil de zaaglijst toepassen die op de forum staat.
Maar moet daar alle lengtes apart invoeren die ik nu als een totaal heb staan bv de 60 in kolom H lengte 1563 in kolom E.
Deze zullen dan 60 x onder elkaar 1563 moeten komen staan.
Ik hoop dat het nu duidelijk is want het werkt net anders om.


Met vriendelijk groet,

Joha
 
Of:

1: Je hebt geen Office 365.
2: Je hebt niets getest.

Alternatieven voor oudere versies.
Code:
=ALS(SOM(Totaal!H$2:H$24)<RIJ(P1);"";ZOEKEN(RIJEN(Totaal!H$2:H2);SUBTOTAAL(9;VERSCHUIVING(Totaal!H$1;;;RIJ($1:$23)))+1;Totaal!E$2:E$24))

Code:
=ALS(SOM(Totaal!H$2:H$24)<RIJ(A1);"";INDEX(Totaal!E$2:E$24;1000-SOMPRODUCT(N(RIJ(B1)<=SUBTOTAAL(9;VERSCHUIVING(Totaal!H$2;;;RIJ($1:$1000)))))+1))
 
Laatst bewerkt:
Goedeavond HSV,

Wel uitgeprobeert maar werkte niet.
Nu wel maar heb elke keer problemen met de macro die wordt uitgeschakeld.

dank Joha
 
Hiermee zou het moeten lukken:
Code:
Option Explicit

Sub Splits()
    Dim rijTotaal As Long
    Dim aantal As Long
    rijTotaal = 2
    aantal = 1
    Sheets("PER STUK").Range("A1") = "Lengte lamel"
    Sheets("Totaal").Activate
    Do While Cells(rijTotaal, 8) <> vbNullString
        Sheets("PER STUK").Range("A" & aantal).Offset(1, 0).Resize(Cells(rijTotaal, 8), 1) = Cells(rijTotaal, 5)
        aantal = aantal + Cells(rijTotaal, 8)
        rijTotaal = rijTotaal + 1
    Loop
    Sheets("PER STUK").Activate
End Sub
 
Welke oplossing voor je werkt staat er niet bij in je laatste schrijven.
Hier ook een alternatieve macro.

Code:
Sub hsv()
Dim sv, sv1, i As Long, s0 As String
sv = Sheets("totaal").Cells(1).CurrentRegion.Columns(1).SpecialCells(2).Resize(, 8)
    For i = 2 To UBound(sv)
      s0 = s0 & Replace(String(sv(i, 8), " "), " ", " " & i)
    Next
  sv1 = Application.Transpose(Split(Trim(s0)))
 Sheets("per stuk").Cells(1, 2).Resize(UBound(sv1)) = Application.Index(sv, sv1, 5)
End Sub
 
Beste Ahulpje en Harry,

Beide codes werken.
Harry die van jou in 2de kolom maar daar kom ik wel uit.
de laatste formule die Harry mij toestuurde werkte bij mij.

Dank jullie.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan