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

Kolom en rij waarde retouneren bij waarde in matrix

Status
Niet open voor verdere reacties.

GVforce

Nieuwe gebruiker
Lid geworden
11 mei 2015
Berichten
2
Hey,

Ik heb een matrix met op zowel horizontaal als verticaal machinenummers. Een cel XX.. bevat het aantal keren dat een onderdeel van machine .. naar machine XX gaat. Waarbij machine .. in de rijen staat (dus kolom A) en machine XX in de kolommen (dus rij 1). Bekijk bijlage Voorbeeld.xlsx

Nu wil ik een lijst met alle combinaties die plaatsvinden en daarachter het aantal keren dat deze combinatie plaatsvind (dus de waarde in cel XX..).
bijvoorbeeld
machine 23 - machine 29 10 keer
machine 56 - machine 20 2 keer

Dit zou kunnen met een simpele functie, echter zijn er dan wel 2500 van die simpele functies nodig (gezien er ongeveer 50 machines zijn). Dat lijkt me niet handig en overbodig veel werk.
Ik ben niet bekend met macro's maar mij lijkt dat hier wel de oplossing in ligt (ook gezien andere topics).

Bij voorbaat dank

GVforce
ps in de bijlage een voorbeeld van de matrix. Celwaarden worden berekend uit een andere tabblad, in dit voorbeeld staan ze echter gewoon vast
 
Gerard,
welkom op Helpmij.nl.

Prima dat je een voorbeeld post, maar m.i. zijn de in d e vraag gegeven voorbeelden niet in de bijlage te vinden.
Bovendien vraag ik me af waar de waarde in E2 voor staat: van 10 naar 10 of voor iets anders?
 
Voeg een nieuw tabblad in met de naam 'Sheet1' en kopieer onderstaande routine in een module:
Code:
Option Explicit

Sub tsh()
    Dim Br, BrUit
    Dim i As Long, j As Long, k As Long
        
    ReDim BrUit(1 To Application.Count(Sheets("Blad1").Cells(1).CurrentRegion.Offset(1, 2)), 1 To 3)
    Br = Sheets("Blad1").Cells(1).CurrentRegion
    k = 0
    For i = 2 To UBound(Br)
        For j = 3 To UBound(Br, 2)
            If Val(Br(i, j)) > 0 Then
                k = k + 1
                BrUit(k, 1) = Br(i, 1)
                BrUit(k, 2) = Br(1, j)
                BrUit(k, 3) = Br(i, j)
            End If
        Next
    Next
    Sheets("Sheet1").Cells(2, 1).Resize(UBound(BrUit), 3) = BrUit
End Sub
 
Laatst bewerkt:
Dank

Hey,

@Haije, excuses voor de verwarring, ik had inderdaad even snel 2 dingen bedacht ipv opgezocht uit het voorbeeld. E2 staat echter bij mij voor houtvoorraad naar 10. voor 10 10 zou er iets in e4 moeten staan. wat echter niet logisch zou zijn, omdat een onderdeel dan twee keer door dezelfde machine gaat. ;)

@Timshel, hartelijk dank. Het werkt perfect.

Mocht ik in de toekomst open vragen zien staan hier, zal ik mij er niet van weerhouden om een antwoord te formuleren.

Hartelijke groeten
GvForce
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan