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

excel lijst format aanpassen

  • Onderwerp starter Onderwerp starter ianb
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

ianb

Gebruiker
Lid geworden
30 dec 2003
Berichten
45
Hallo,

Ik krijg de bijgevoegde excel file van de klant aangeleverd. Omdat de klant overheid is en dit via openbare aanbestedingen gaat kan de lijst aan de klant zijn kan niet worden aangepast.

Het gaat meestal om een lijst met zo'n 1000-2000 items. Ik moet hieruit de items halen die wij kunnen aanbieden. Dit wil ik graag doen via een pivot table doen, maar om een bruikbare pivot te maken moet ik de format van de lijst aanpassen.

Ik heb een voorbeeld toegevoegd.

Is er een manier om dit snel te doen, ipv 2000 items handmatig te veranderen?

Alvast bedankt voor jullie hulp.

Groet,

ianb
 

Bijlagen

Als je een xls bestand plaatst lijkt me dat zo gepiept.
 
Hallo,

Hierbij het xls bestandje. Het bovenste stukje van de lijst is zoals ik het krijg, en daaronder is zoals het zou moeten zijn voor een bruikbare pivot.

Ik zou graag wat structureels willen hebben, iets wat ik bij toekomende lijsten ook kan gebruiken. Misschien, kun je me het uitleggen hoe te doen?

Bedankt.
 

Bijlagen

Met deze macro
Code:
Sub tst()
    sn = Sheets(1).Cells(3, 1).CurrentRegion.Resize(, 8)
    For j = 1 To UBound(sn)
        If sn(j, 2) <> "" Then
            sp = Split(sn(j, 1) & "|||" & Format(sn(j, 2)) & "|" & sn(j, 3) & "|" & sn(j, 4) & "|" & sn(j, 5), "|")
            
            For jj = 7 To 5 Step -1
                sn(j, jj) = sn(j, jj - 2)
                sn(j, jj - 2) = ""
            Next
            sn(j, 2) = ""
        Else
            sp(1) = Left(sn(j, 1), 5)
            sp(2) = Mid(sn(j, 1), 7)
            For jj = 1 To 7
                sn(j, jj) = sp(jj - 1)
            Next
        End If
    Next
    sn(1, 8) = "Price"
    Sheets(2).Cells(1, 1).Resize(19, 8) = sn
End Sub

NB. ik ben van jouw bestand uitgegaan met de ontvangen tabel in cel A3 (cells(3,1) ). Pas dit zonodig aan.
 
Laatst bewerkt:
Beste snb,

Hartelijk dank voor je macro. Helaas krijg ik hem niet werkend op de volledige lijst.

Kun je zien wat ik verkeerd doe?

Ik heb de volledige lijst bijgevoegd.

Bedankt.
 

Bijlagen

Ik denk dat er iets mis is gegaan met de zip.
Nog een keer.
 

Bijlagen

Wat heb je zelf al gedaan om de VBA-code aan te passen ?
 
ianb,

Hier is je file met de macro van snb en werkend.

Edit:
De macro zet NSN STOCK NUMBER niet bovenaan de kolom waarom weet ik niet.
Als je dit (rode gedeelte) in de macro er bij zet komt het er wel.
Code:
  Next
    [COLOR="Red"]sn(1, 4) = "NSN STOCK NUMBER"[/COLOR]
    sn(1, 8) = "Price"
    Sheets(2).Cells(1, 1).Resize(UBound(sn), 8) = sn
End Sub
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan