Oprettet fre. d. 05. oktober 2012 kl. 12:03:38

natkatten
natkatten (27.410 point. Point ude: 0)

VBA speciel transponering

Hej VBA-eksperten

Jeg har et regneark med ca. 3.000 rækker. Dette viser parent-child relationer ud fra nogle unikke numre.

Jeg har uploadet et eksempel på hvad jeg ønsker, idet arket "As-is", viser hvordan relationerne er pt., og "To-be" viser, hvordan jeg gerne vil have output til at være.

http://gupl.dk/ (...)

Bemærk, at der altså kan være rækker uden parent-child relationer. Disse skal ikke medtages i "To-be" arket.

Skrevet fre. d. 05. oktober 2012 kl. 15:02:10| #1

finb
finb (12.787 point)
Jeg kan ikke få dit link til at virke ?
http://gupl.dk/ (...)
mvh
finb

Skrevet fre. d. 05. oktober 2012 kl. 15:55:26| #2

natkatten
natkatten (27.410 point)
Hmm, det fungerer fint for mig.

Skrevet fre. d. 05. oktober 2012 kl. 21:59:56| #3

finb
finb (12.787 point)
Baracuda antivirus stopper vist gupl,
kan du evt vise de rå tal som txt ?
finb

Skrevet lør. d. 06. oktober 2012 kl. 09:17:47| #4

natkatten
natkatten (27.410 point)
Data er struktureret som vist her (kolonnerne A-Z)

ParentA 1 2 3 4
ParentB 5 6
ParentC 7 8 9 10 11 12
ParentD
ParentE 13 14

Som vist er der parents uden værdier (child).

På et andet faneblad ønsker jeg data vist i to kolonner:

ParentA 1
ParentA 2
ParentA 3
ParentA 4
ParentB 5
ParentB 6
ParentC 7
ParentC 8
ParentC 9
ParentC 10
ParentC 11
ParentC 12
ParentE 13
ParentE 14

Som det fremgår, ønsker jeg ikke, at parents uden childs vises.

Skrevet lør. d. 06. oktober 2012 kl. 17:05:43| #5

natkatten
natkatten (27.410 point)
Har fået løsning på anden vis.

Skrevet lør. d. 06. oktober 2012 kl. 17:18:21| #6

natkatten
natkatten (27.410 point)
Til info. Løsningsforslag modtaget fra Mr. Excel forum:

**********************

Option Explicit
Sub ReorgData()
' hiker95, 10/06/2012
Dim w1 As Worksheet, wR As Worksheet
Dim i As Variant, o As Variant
Dim r As Long, lr As Long, c As Long, lc As Long, n As Long, nr As Long
Application.ScreenUpdating = False
Set w1 = Worksheets("As-is")
lr = w1.Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
lc = w1.Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
i = w1.Range(w1.Cells(1, 1), w1.Cells(lr, lc))
n = Application.CountA(w1.Range(w1.Cells(1, 2), w1.Cells(lr, lc)))
ReDim o(1 To n, 1 To 2)
nr = 0
For r = 1 To UBound(i, 1)
  For c = 2 To UBound(i, 2)
    If i(r, c) <> "" Then
      nr = nr + 1
      o(nr, 1) = i(r, 1)
      o(nr, 2) = i(r, c)
    End If
  Next c
Next r
If Not Evaluate("ISREF(To-be!A1)") Then Worksheets.Add(After:=w1).Name = "To-be"
Set wR = Worksheets("To-be")
wR.UsedRange.Clear
wR.Cells(1, 1).Resize(UBound(o, 1), UBound(o, 2)) = o
wR.Cells.EntireColumn.AutoFit
wR.Activate
Application.ScreenUpdating = True
End Sub

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

ActiveCell som parameter til makro?

Oprettet den 19. juni 2013 kl. 15.46
petersen7913 giver 30 point for svar | Giv et svar »

Aktuel celle/række som parameter til makro

Oprettet den 19. juni 2013 kl. 15.06
petersen7913 giver 30 point for svar | Giv et svar »

Udfyld tomme celler med værdi fra sidste celle, indtil ny...

Oprettet den 19. juni 2013 kl. 14.42
blolsen giver 60 point for svar | Giv et svar »







IT Kurser
Samarbejdspartnere

Udgiver · © 2013 Computerworld A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger