Avatar billede banazmi Nybegynder
09. oktober 2002 - 13:16 Der er 23 kommentarer og
2 løsninger

tranponere flere rækker til en kolon

a  b  c  d    e
3  5  6  5    3
8  9  6  3    5
10  5  6  2    6
              5
              8
              9
              6
              3
              10
              5
              6
              2
Hvis jeg har som ovennævt flere rækker og konloner. og værdierne skal kopiers i en kolon i den rækkefølge som det er vist. dvs. 1. række fra venstre til højre og næste række osv.
mvh
banazmi
09. oktober 2002 - 13:31 #1
Du skal transponere en række af gangen. Marker de 5 celler i 1. række og transponer dem til en kolonne. Marker herefter de næste fem celler og transponer dem til samme kolonne, osv.
mvh
Erik Juul
Avatar billede banazmi Nybegynder
09. oktober 2002 - 13:35 #2
tak.
Det er det jeg gør i øjeblikket. men det drejer sig om mange rækker og koloner. Og så tænkt jeg at man kunne gøre noget smartere med et eller andet formle.
banazmi
09. oktober 2002 - 13:43 #3
Nej det er sådan transponer fungerer. Hvorfor skal tallene placeres i en kolonne? Er det af hensyn til design eller beregninger?
Avatar billede banazmi Nybegynder
09. oktober 2002 - 13:50 #4
Det med hensyn til beregning. I rækker er det timevis priser fra kl 01 til kl. 24 og i koloner er det datoer op til 3 månder. Jeg skal bruge værdierne i en kolon til bregningen.
mvh
banazmi
09. oktober 2002 - 13:57 #5
Det var det jeg tænkte.
Der er ikke noget i vejen for at lave beregninger selv om tallene står som de gør. SUM(A1:E3)lægger tallene sammen i dit eksempel ovenfor
Avatar billede banazmi Nybegynder
09. oktober 2002 - 15:11 #6
Kolon hæmger sammen med en større regnskab, som har forskellige bergninger i koloner. Så talene skal være i en kolon. Kan man ikke brug et eller andet SQL-sætning til dette.
mvh
banamzi
Avatar billede bak Forsker
09. oktober 2002 - 15:30 #7
Du kan prøve at køre denne makro:

Option Base 1

Sub list()
Dim rnga As Range
Dim rngb As Range
Dim rngc As Range
Dim c As Range
Dim listen()
Dim y As Long, x As Long

y = 0
Set rnga = Application.InputBox(prompt:="hvilket område skal listes?", Type:=8)
Set rngb = rnga.Offset(1, 1).Resize(rnga.Rows.Count - 1, rnga.Columns.Count - 1)
x = Application.WorksheetFunction.CountA(rngb)
ReDim listen(x, 1)
For Each c In rngb
  y = y + 1
  listen(y, 1) = c.Value
Next
Set rngc = Application.InputBox(prompt:="Hvortil ?", Type:=8)
rngc.Resize(x, 1) = listen
End Sub
09. oktober 2002 - 19:11 #8
bak>> du ved godt, at jeg får fnider over din kode :-)
Ovenstående har nok det problem at rnga bliver Resized til rngb og dermed mister øverste række. Det er fjernet i denne her.

Sub RangeToList()
    ' This make one or more ranges into a list in one column
    Dim rFrom As Range
    Dim rTo As Range
    Dim rCell As Range
    Dim vntValues() As Variant
    Dim sAnswer As String
    Dim lCells As Long
    Dim lCount As Long

    Set rFrom = Application.InputBox(Prompt:="Hvilket område skal listes?", Type:=8)
   
    lCells = rFrom.Cells.Count
    ReDim vntValues(lCells, 1)
   
    lCount = 0
    For Each rCell In rFrom
        lCount = lCount + 1
        vntValues(lCount, 1) = rCell.Value
    Next
   
    Set rTo = Application.InputBox(Prompt:="Øverste celle for listen?", Type:=8)
    rTo.Resize(lCells, 1) = vntValues
   
    ' Clean up
    Erase vntValues
    Set rFrom = Nothing
    Set rTo = Nothing
    Set rCell = Nothing
End Sub
Avatar billede bak Forsker
09. oktober 2002 - 20:04 #9
Tak for Flemming :-), men den er bare hurtig ikke....
grunden til resize er at jeg har brugt koden til noget andet og ikke lige havde lyst til at fjerne det. Det eliminerer overskrifter og sideskrifter.
Den oprindelige kode var beregnet til at lave en matrix om til liste !
09. oktober 2002 - 22:00 #10
Ja, den kører dejlig hurtig - er lige ved at lege med et lille add-in, som kan køre både på den ene og anden led :-)
Avatar billede banazmi Nybegynder
09. oktober 2002 - 22:23 #11
tak til bak og flemming.
på bak's løsning mister jeg både øveste række og de første kolon til venstre. altså de bliver ikke taget med.
Ve Flemming´s løsning sker der ingen ting, jeg får blank kolon.
09. oktober 2002 - 22:32 #12
På min mangler du nok første linie fra baks  Option Base 1

ellers skal den ændres til dette her:

Sub RangeToList()
    ' This make one or more ranges into a list in one column
    Dim rFrom As Range
    Dim rTo As Range
    Dim rCell As Range
    Dim vntValues() As Variant
    Dim sAnswer As String
    Dim lCells As Long
    Dim lCount As Long

    Set rFrom = Application.InputBox(Prompt:="Hvilket område skal listes?", Type:=8)

    lCells = rFrom.Cells.Count
    ReDim vntValues(1 To lCells, 1 To 1)

    lCount = 0
    For Each rCell In rFrom
        lCount = lCount + 1
        vntValues(lCount, 1) = rCell.Value
    Next

    Set rTo = Application.InputBox(Prompt:="Øverste celle for listen?", Type:=8)
    rTo.Resize(lCells, 1) = vntValues

    ' Clean up
    Erase vntValues
    Set rFrom = Nothing
    Set rTo = Nothing
    Set rCell = Nothing
End Sub
09. oktober 2002 - 22:33 #13
altså den første jeg sendte skal have Option Base 1 - det skal den anden IKKE - det er pga. denne linie ""ReDim vntValues(1 To lCells, 1 To 1)"" er ændret i nummer 2.
Avatar billede banazmi Nybegynder
09. oktober 2002 - 22:38 #14
Det gik findt igennem. mange tak. jeg skal lige find ud af hvordan spørgsmålet lukkes og uddeling af point.
mvh
Banazmi
09. oktober 2002 - 22:41 #15
Du skal acceptere et svar - altså når du har fået et - ligesom dette her.
Points bør vel gives til bak for løsningen eller deles imellem bak og mig, så vent lige på et svar fra bak. Du kan nok lukke det i morgen.
Avatar billede banazmi Nybegynder
09. oktober 2002 - 22:44 #16
ok. men tak for hjælpen og god nat.
Avatar billede banazmi Nybegynder
10. oktober 2002 - 10:05 #17
Hvordan gemmer jeg makroen, så jeg kan brug den når jeg har behov for det.
Avatar billede bak Forsker
10. oktober 2002 - 17:52 #18
Min makro er faktisk beregnet til at du markere overskrifter og kolonnen til venstre også inden du starter. Derved får du alle med.
14. oktober 2002 - 08:33 #19
banazmi>> når du gemmer din excel fil, så gemmes din makro med - ellers kan kodemodulet eksporteres indefra vba.
Avatar billede bak Forsker
16. oktober 2002 - 22:17 #20
banazmi -> virker det eller skal du ha' mere hjælp ??
21. oktober 2002 - 15:26 #21
...eller skal vi ha lukket spørgsmålet ??
Avatar billede banazmi Nybegynder
28. oktober 2002 - 09:49 #22
Undskyld til Bak og Flemmingdhal. Jeg har ikke haft muglighed for kunne svare før nu. Jeg ønsker at lukke spørgsmålet og fordele point ligeligt til jer begge to. Hvad skal jeg gør ?
Avatar billede banazmi Nybegynder
28. oktober 2002 - 09:50 #23
begge løsninger virker.
28. oktober 2002 - 09:52 #24
Jeg tror der er noget der hedder Avanceret nede ved accept af svar, hvor du kan skrive points ud for hver person, som skal have nogle.
Avatar billede banazmi Nybegynder
28. oktober 2002 - 11:08 #25
Tak til flemming og bak. Så er der 30 points til hver.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester