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

Etiketten printen vanuit matrix.

Status
Niet open voor verdere reacties.

Ercole

Gebruiker
Lid geworden
23 mei 2003
Berichten
6
Hallo,

Ik zit met het volgende probleem. Ik wil een komma gescheiden datatbase aanmaken welke gegeneerd wordt vanuit een excelsheet. De sheet ziet er als volgt uit:

B1 zwart C1 blauw D1 rood
A2 product 1
A3 product 2
A4 product 3

De cellen B2 t/m D4 zijn gevuld met getallen, in dit voorbeeld met het getal 2.

Nu is het mijn bedoeling om hiervan een komma gescheiden bestand van aan te maken wat er als volgt uit moet zien:

Product 1, zwart
Product 1, zwart
Product 1, blauw
Product1, blauw
Product1, rood
Product 1, rood
Product 2, zwart
Product 2, zwart
Etc, etc.

In totaal moeten er in dit voorbeeld dus 18 regels aangemaakt worden.
Heeft iemand een idee hoe ik dit voor mekaar krijg?

Alvast bedankt.
 
Dag Ercole

Voor het wegschrijven van gegevens naar een text file ga ik vaak naar deze pagina van Chip Pearson:

http://www.cpearson.com/excel/imptext.aspx

De lus zal je dan wel moeten aanpassen omdat jij niet een bereik wil exporteren, maar zelf de tekst wil genereren voor de text file.

Wigi
 
Ercole, Je zegt dat er nu overal '2' in je matrix staat. Dit zal de reden zijn dat er dus overal 2 labels in je voorbeeldje staan. Maar is dit...
Code:
   A               B        C       D    
1                 zwart blauw rood 
2  product1    2     3        5    
3  product2    6     2        1    
4  product3    1     1        4    

Sheet1

[Table-It] version 07 by Erik Van Geit
...óók mogelijk? Dus de getallen in je matrix geven eigenlijk aan hoeveel labels je van elke combinatie wilt hebben? Of is het één standaard aantal labels dat geldt voor alle producten?

Groet, Leo
 
Laatst bewerkt:
Het getal in de matrix kan elk getal zijn, je voorbeeld is dus ook mogelijk.
 
Wigi bedankt voor je reactie. Ik vind hem eerlijk gezegd niet de makkelijkste oplossing, maar wellicht is er ook geen gemakkelijke.

Ginger, heb jij nog een idee? Kan ik de matrix exporteren naar Access bijv. om daar komma gescheiden regels te genereren?

Nou ik hoor het graag.
 
Ercole zei:
Wigi bedankt voor je reactie. Ik vind hem eerlijk gezegd niet de makkelijkste oplossing, maar wellicht is er ook geen gemakkelijke
De makkelijkste oplossing is natuurlijk dat een ander het voor je doet...:rolleyes:

Ercole zei:
Ginger, heb jij nog een idee?
Ja hoor... Plak dit blokje in een standaard module van je VBE. De gewenste regels verschijnen naast je matrix (met 1 kolom ruimte ertussen). Het 'aparte komma gescheiden bestand' moet je dan zelf nog maar ff aanmaken.

Code:
Sub StringUitMatrix()
Dim iLaatsteKolom As Integer, i As Integer, iAantalLabels As Integer, z As Integer
Dim x As Long, y As Long
Dim sKleur As String, sProdukt As String

    x = 1 'regelteller resultaat
    y = 2 'regelteller matrix
    iLaatsteKolom = Range("B1").End(xlToRight).Column
    
    Application.ScreenUpdating = False

    For i = 2 To iLaatsteKolom
        sKleur = Cells(1, i).Value
        Do Until Cells(y, i).Value = ""
            sProdukt = Cells(y, 1).Value
            iAantalLabels = Cells(y, i).Value
            For z = 1 To iAantalLabels
                Cells(x, iLaatsteKolom + 2).Value = sProdukt & ", " & sKleur
                x = x + 1
            Next z
            y = y + 1
        Loop
        y = 2
    Next i

    Application.ScreenUpdating = True

End Sub

Het kan natuurlijk allemaal nog een stuk mooier en sneller met Array's e.d., maar dit vond ik voor dit moment ff voldoende...
Groet, Leo
 
Laatst bewerkt:
Beste Ginger,

Hier dan mijn heel late reactie. BEDANKT voor je oplossing, in eerste instantie begreep ik niet wat je met VBE bedoelde maar na wat gegoogle heb ik het draaien. Ik heb nl helemaal geen kaas gegeten van VBE. Wat je geschreven hebt heeft nu als resultaat dat kolom voor kolom wordt aangemaakt. Is het ook mogelijk rij na rij? Zo heb ik alle maten bij 1 kleur. Dus eerst kleur1 met de maten en vervolgens kleur 2 met alle maten etc.

Alvast enorm bedankt en sorry voor mijn enorm late reactie.

Ercole



De makkelijkste oplossing is natuurlijk dat een ander het voor je doet...:rolleyes:

Ja hoor... Plak dit blokje in een standaard module van je VBE. De gewenste regels verschijnen naast je matrix (met 1 kolom ruimte ertussen). Het 'aparte komma gescheiden bestand' moet je dan zelf nog maar ff aanmaken.

Code:
Sub StringUitMatrix()
Dim iLaatsteKolom As Integer, i As Integer, iAantalLabels As Integer, z As Integer
Dim x As Long, y As Long
Dim sKleur As String, sProdukt As String

    x = 1 'regelteller resultaat
    y = 2 'regelteller matrix
    iLaatsteKolom = Range("B1").End(xlToRight).Column
    
    Application.ScreenUpdating = False

    For i = 2 To iLaatsteKolom
        sKleur = Cells(1, i).Value
        Do Until Cells(y, i).Value = ""
            sProdukt = Cells(y, 1).Value
            iAantalLabels = Cells(y, i).Value
            For z = 1 To iAantalLabels
                Cells(x, iLaatsteKolom + 2).Value = sProdukt & ", " & sKleur
                x = x + 1
            Next z
            y = y + 1
        Loop
        y = 2
    Next i

    Application.ScreenUpdating = True

End Sub

Het kan natuurlijk allemaal nog een stuk mooier en sneller met Array's e.d., maar dit vond ik voor dit moment ff voldoende...
Groet, Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan