Jeg sidder PT. med en lang prisliste på godt 5000 produkter.
Denne prisliste skal jeg have omdannet til et priskatalog hvor man kan slå priser op. Jeg forestiller mig at der skal være 2 kolonner på hver side.
Den eneste måde jeg ved hvordan den slags kan gøres på er ved manuelt at rykke rundt på dataene, men det tager evigheder.
Er der nogen kvikke hoveder der ved om jeg kan markere alt indholdet og trykke på en "arrangér kolonner"-agtig knap somewhere, så den automatisk stiller det op i 2 kolonner, i en orden der logisk kan vises således:
1|2 - side 1 3|4 - side 2 5|6 - side 3 7|8 - side 4
..og IKKE således:
1|5 - side 1 2|6 - side 2 3|7 - side 3 4|8 - side 4
Giver det mening?
Jeg ved den funktion eksisterer i MS Word, men er ikke stødt på den i Excel.
Det ville afhjælpe mig for flere dages kedelig flytten data rundt i regnearket, så jeg gi'r maksimum point for et svar der fører til en løsning jeg kan bruge. ;)
Skal det være manuelt opslag eller automatisk - hvis sidstnævnte kan der skrives en søgefunktion via VBA eller også burde det overvejes om Access-løsning ikke var at foretrække.
Planen er, at selve excel-filen, når den er lavet om til et "priskatalog" bliver sendt til en trykker, der printer kataloget ud i papirform i A5 format.
Spørgsmålet går mest ud på om der findes en funktion der kan "re-arrangere" mine nuværende data så de kommer til at stå i 2 kolonner ved siden af hinanden, istedet for én lang.
Jeg har lidt problemer med at få dine koder til at fungere hensigtsmæssigt, Sjap. Den skriver #REFERENCE! i feltet, som jeg formoder er Excels standard meddelelse ved fejlbehæftede referencer.
Den burde ellers virke ligetil, da A2 feltet i "prislisten" er et 10-cifret varenummer der hverken skal omregnes eller noget.
Bortset fra det er de 4 koder de skriver temmelig langhårede. Hvad gør de, helt præcist?
@Supertekst
Oprindeligt er prislisten 3 kolonner bred. Artikel-nummer, varenavn og pris. Slutresultatet skal være 6 kolonner bred og kun halvt så lang.
INDIREKTE er en funktion, der laver en tekststreng om til en reference. Dvs. i stedet for at opfatte f.eks. "Prisliste!A2" som en tekst, så opfattes det som en reference til celle A2 på fanebladet Prisliste.
"Prisliste!A" er så navnet på det ark hvor du har den originale prisliste, og A er den første kolonne.
(RÆKKE(A2)-1)*2) Er en beregning af hvilken række data skal hentes fra. Det kræver en beregning, da det jo kun er hver anden, der vises.
Kopier denne VBA-kode ind i ActiveWorkbook og start programmet - så er det klaret på 2 sek. Har prøvet med 1500 varenr.
Dim antalVnr Sub workbook_activate() Dim printV As Object, række1 As Integer, række2 As Integer, venstreFlag As Boolean Dim vareNr, vareNavn, varePris Rem henter fra p.t.-prisliste fra ark1 og opbygger print-venlige i ark2 Rem Overskrifter forventes i række 1
ActiveWorkbook.Sheets("ark1").Activate antalVnr = ActiveCell.SpecialCells(xlLastCell).Row 'henter sidste celle m/indhold venstreFlag = True
Set printV = CreateObject("Excel.Application") Set printV = ActiveWorkbook.Sheets("ark2") række2 = 2
For række1 = 2 To antalVnr vareNr = Cells(række1, 1) vareNavn = Cells(række1, 2) varePris = Cells(række1, 3)
With printV If venstreFlag = True Then Offset = 0 venstreFlag = False Else Offset = 4 venstreFlag = True End If .Cells(række2, 1 + Offset) = vareNr .Cells(række2, 2 + Offset) = vareNavn .Cells(række2, 3 + Offset) = varePris
If venstreFlag = True Then række2 = række2 + 1 End If End With Next række1
Rem Kolonnebredden tilpasses printV.Columns("A:G").AutoFit
MsgBox ("Opbygningen af prisliste er afsluttet") End Sub
Jeg har et preliminært spørgsmål, dog. VBA og ThisWorkBook - er det programmer man skal installere ved siden af, eller følger de med i Excel/Office-pakken?
Nej - normalt er disse inkluderet. Når du ser på dit regneark - så tast ALT+F11 så åbner VBA-projektet. Mappen med navnet ThisWorkBook heri skal have ovenstående VBA-kode - VBA = Visual Basic for Applications - programmeringssprog til Office-pakken.
Hvis det kan være en hjælp - så send en mail til pb@skivehs.dk - så sender jeg min excel-fil m/VBA-koden.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.