Avatar billede denero Juniormester
10. juli 2015 - 09:48 Der er 3 kommentarer og
1 løsning

Fra kolonne til celle - Excel 2013

Har 20 kolonner (G3-G11, H3-H11, osv.). Ved hjælp af nedenstående makro flytter jeg indholdet fra kol. G til celle D3. Det er så meningen at indholdet fra kol. H skal flyttes til celle D4, osv. Hvorledes gøres dette uden at jeg skal lave 20 makroer?

Sub DataTilEnCelle()

Dim outputText As String
Const tegn = ". "

On Error Resume Next



Sheets("Ark1").Select
Range("G3:G11").Select

For Each Cell In Selection
If Not IsEmpty(Cell) Then
outputText = outputText & Cell.Value & tegn
End If

Next Cell

Application.Goto Reference:="Bemærk1"


With Selection
.Clear
.Value = outputText
.Value = Left(.Value, Len(.Value) - 1)
.WrapText = True
End With

End Sub
Avatar billede kabbak Professor
10. juli 2015 - 13:10 #1
Public Sub Test()
Dim Data As Variant, UdData As Variant, X As Integer, I As Integer
Const tegn = ". "
    Data = Sheets("Ark1").Range("G3:Z11")
    UdData = Sheets("Ark1").Range("D3:D23")
    For X = 1 To UBound(Data, 1)
        For I = 1 To UBound(Data, 2)
            If Not IsEmpty(Data(X, I)) Then
                UdData(I, 1) = UdData(I, 1) & Data(X, I) & tegn
            End If
        Next
    Next
Sheets("Ark1").Range("D3:D23") = UdData
End Sub
Avatar billede denero Juniormester
10. juli 2015 - 13:20 #2
Super, virker perfekt. Kan du evt. sætte lidt forklaring på, da jeg ikke helt er med - og selvfølgelig lægge et svar.
Tak for hjhælpen og god weekend.
Avatar billede kabbak Professor
10. juli 2015 - 13:40 #3
Public Sub Test()
Dim Data As Variant, UdData As Variant, X As Integer, I As Integer
Const tegn = ". "
    Data = Sheets("Ark1").Range("G3:Z11") ' Læser området med data ind i variablen Data
    Sheets("Ark1").Range("D3:D23").Clear ' tømmer området inden skrivning
    UdData = Sheets("Ark1").Range("D3:D23") ' Vælger området til variablen UdData
    For X = 1 To UBound(Data, 1) ' Læser lodret, række efter række
        For I = 1 To UBound(Data, 2) ' skifter kolonne efter kolonne
            If Not IsEmpty(Data(X, I)) Then ' hvis tom, hopper så over
                UdData(I, 1) = UdData(I, 1) & Data(X, I) & tegn ' putter kolonnen i en celle på uddata
            End If
        Next ' næste række
    Next ' næste kolonne
Sheets("Ark1").Range("D3:D23") = UdData ' skriver data i arket
End Sub
Avatar billede denero Juniormester
10. juli 2015 - 16:42 #4
Takker.
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