Avatar billede alen32 Nybegynder
14. januar 2008 - 22:44 Der er 9 kommentarer og
1 løsning

Tilpase makro

Er der nogen der kan ændre nedenstående makro så den kopier "Ranges" istedet for rækker.

Private Sub CommandButton1_Click()
    Dim mpRow As Long
    Dim i As Long
   
    With Me.ListBox1
        For i = 0 To .ListCount - 1
            If .Selected(i) Then
                Select  Case .List(i)
                   
                Case "Delta": mpRow = 4
                   
                Case "Alfa": mpRow = 8
                   
                Case "Eta": mpRow = 12
                Case "Gamma": mpRow = 16
                   
                Case "Omega": mpRow = 20
                End Select
               
                Worksheets("vj").Rows(mpRow).Copy
               
                With Worksheets("Sheet1")
                    With .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)
                       
                        .PasteSpecial xlPasteValues
                        .PasteSpecial xlPasteComments
                    End With
                End With
            End If
        Next i
    End With
   
End Sub
Avatar billede kabbak Professor
14. januar 2008 - 23:38 #1
Private Sub CommandButton1_Click()
    Dim mpRow As String
    Dim i As Long
 
    With Me.ListBox1
        For i = 0 To .ListCount - 1
            If .Selected(i) Then
                Select  Case .List(i)
                 
                Case "Delta": mpRow = "A4:Z4"
                 
                Case "Alfa": mpRow = "A8:Z8"
                 
                Case "Eta": mpRow = "A12:Z12"
                Case "Gamma": mpRow = "A16:Z16"
                 
                Case "Omega": mpRow = "A20:Z20"
                End Select
             
                Worksheets("vj").range(mpRow).Copy
             
                With Worksheets("Sheet1")
                    With .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)
                     
                        .PasteSpecial xlPasteValues
                        .PasteSpecial xlPasteComments
                    End With
                End With
            End If
        Next i
    End With
 
End Sub
Avatar billede alen32 Nybegynder
15. januar 2008 - 00:06 #2
Tak for hjælpen!
Jeg vil gerne kopiere sådan at når de indsættes så står de ved siden af hinanden og ikke under hinanden.
Avatar billede kabbak Professor
15. januar 2008 - 00:16 #3
i hvilken række ??
Avatar billede alen32 Nybegynder
15. januar 2008 - 00:24 #4
Den skal starte i celle c30 og så fortsætte til højre.
Avatar billede kabbak Professor
15. januar 2008 - 00:28 #5
erstat

With .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0)

med
With .Range("IV30").End(xlToLeft).offset(0,1)

Du skal have noget i C30, for at det virker
Avatar billede kabbak Professor
15. januar 2008 - 00:29 #6
rettelse
Du skal have noget i B30, for at det virker
Avatar billede alen32 Nybegynder
15. januar 2008 - 00:35 #7
Hvad betyder "IV30"
Avatar billede kabbak Professor
15. januar 2008 - 00:38 #8
"IV30" betyder at den starter i yderste højre celle i række 30, "End(xlToLeft)" går så til venstre indtil den møder noget i cellen,".offset(0,1)" så vælges cellen til højre for den
Avatar billede alen32 Nybegynder
15. januar 2008 - 00:47 #9
Det virker!
Men der er et problem. Det jeg skal indsætte indeholder både text og bogstaver og derfor bliver talene helt til højre i cellen , mens text bliver helt til venstre. Hvordan kan jeg centere dem via kode?
Avatar billede kabbak Professor
15. januar 2008 - 21:11 #10
Private Sub CommandButton1_Click()
    Dim mpRow As String
    Dim i As Long

    With Me.ListBox1
        For i = 0 To .ListCount - 1
            If .Selected(i) Then
                Select  Case .List(i)
               
                Case "Delta": mpRow = "A4:Z4"
               
                Case "Alfa": mpRow = "A8:Z8"
               
                Case "Eta": mpRow = "A12:Z12"
                Case "Gamma": mpRow = "A16:Z16"
               
                Case "Omega": mpRow = "A20:Z20"
                End Select
           
                Worksheets("vj").range(mpRow).Copy
           
                With Worksheets("Sheet1")
                    With .Range("IV30").End(xlToLeft).offset(0,1)
                        .PasteSpecial xlPasteValues
                        .PasteSpecial xlPasteComments
                        Selection.HorizontalAlignment = xlCenter
                    End With
                End With
            End If
        Next i
    End With

End Sub
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