Avatar billede bjarnefilm Juniormester
20. november 2011 - 15:04 Der er 16 kommentarer og
1 løsning

Indsæt rækker i excel

Jeg har et excel regneark med 389 rækker.
Nu vil jeg gerne indsætte to rækker mellem hver række.
Den første række skal være tekst, og den anden række skal være blank.
Hvordan gør man det?

Eksempel:

Før
1
2
3

Efter
1
a

2
a

3
a

MVH
Bjarne
Avatar billede oyejo Nybegynder
20. november 2011 - 16:08 #1
Merk en rekke, høyreklikk og velg sett inn ( engelsk insert)
Nå har du satt inn en rekke, men hvis du har 389 rekker bør du benytte en macro.
Avatar billede Ialocin Novice
21. november 2011 - 09:53 #2
Hej Bjarne

Løber rækkerne fra række 1 til og med række 389 ??

Medvenlig hilsen, Nicolai
Avatar billede Ialocin Novice
21. november 2011 - 09:54 #3
Hej Igen

Glemte lige .... de rækker du ønsker at sætte ind, er det blot tomme rækker eller findes rækkerne andetsteds i regnearket ??

Med venlig hilsen, Nicolai
Avatar billede oyejo Nybegynder
21. november 2011 - 10:28 #4
'Kan du bruke en makro? Denne vil sette inn 2 tomme linjer
'For hver rad, angi første og siste rad, har satt til 5 og 389


Sub SettInnRader()

    lFirstRow = 5  ' Erstatt tallet 5 med første rad med tekst
    lLastRow = 389  ' Her setter du inn siste rad med tekst
   
    For r = lLastRow To lFirstRow - 1 Step -1
   
        Rows(r & ":" & r).Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Next
 
End Sub
Avatar billede Ialocin Novice
21. november 2011 - 11:23 #5
Hej Bjarne

Eller denne her procedure ...

Sub Indsæt2Rækker()
Dim lRække As Long
Dim r As Integer
Dim l As Integer


Application.ScreenUpdating = False
               
    'Indsæt rækker i området fra række og med 389 til og med række 1
    For lRække = 390 To 1 Step -1
       
        'bliv ved indtil række 1
        If lRække > 1 Then
               
            'vælg rækken over den aktuelle række
            Rows(lRække).Offset(-1, 0).Select

                'indsæt 2 rækker
                Rows(lRække).Insert
                Rows(lRække).Insert
                   
        End If
                     
    Next lRække
 
       
Application.ScreenUpdating = True
   
   
End Sub


Med venlig hilsen, Nicolai
Avatar billede bjarnefilm Juniormester
22. november 2011 - 15:06 #6
Hej Ialocin

Jeg har brugt din makro og den virker.
Så har jeg prøvet at ændre i den, men det kan jeg ikke finde ud af.
Der skal indsættes nogle bindestreger, her har jeg valgt 5 stk.
Hvordan gør man det?

Eksempel:

Før
1
2
3

Efter
1
-----

2
-----

3
-----

MVH
Bjarne
Avatar billede bjarnefilm Juniormester
22. november 2011 - 15:15 #7
Rækkerne starter fra og med nummer 7, til og med nummer 389.
Det er "nye rækker". De findes ikke andre steder i regnearket.
Avatar billede bjarnefilm Juniormester
22. november 2011 - 15:17 #8
Til oyejo. Tak for dit indlæg. Jeg har valgt det andet, fordi jeg synes det er nemmere at læse.
Avatar billede oyejo Nybegynder
22. november 2011 - 15:52 #9
Sub InsertRows()

    lFirstRow = 7
    lLastRow = 389
   
    For r = lLastRow To lFirstRow + 1 Step -1
        Rows(r & ":" & r).Select
        Rows(r).Insert
        Rows(r).Insert
        Range("A" & r).Value = "-----"
    Next
   
End Sub
Avatar billede oyejo Nybegynder
22. november 2011 - 16:19 #10
Sub InsertRows()

    lFirstRow = 7
    lLastRow = 389
   
    For r = lLastRow + 1 To lFirstRow + 1 Step -1
        Rows(r & ":" & r).Select
        Rows(r).Insert
        Rows(r).Insert
        Range("A" & r).Value = "-----"
    Next
   
End Sub


Rettelse, her tror jeg du får med "-----" i rad 390 også, har ikke testet, da jeg sitter på en iPad
Avatar billede bjarnefilm Juniormester
22. november 2011 - 16:20 #11
Jeg kigger på det.
Avatar billede Ialocin Novice
22. november 2011 - 16:42 #12
Hej Bjarne

Hermed en lettere omskrevet procedure, som indsætter værdier i den første nye indsatte række.
Ønsker du det istedet gjort i den anden nye indsatte række ??, så flyt linierne:


'indsæt værdier i kolonne A i den første "nye" række
Range("A" & lRække).Value = "Indsæt her de værdier du ønsker"


op mellem linierne:  Rows(lRække).Insert


Proceduren ......




Sub Indsæt2Rækker()
Dim lRække As Long
Dim r As Integer
Dim l As Integer


Application.ScreenUpdating = False
               
    'Indsæt rækker i området fra og med række 20 til og med række 1
    For lRække = 21 To 1 Step -1
       
        'bliv ved indtil række 1
        If lRække > 1 Then
               
            'vælg rækken over den aktuelle række
            Rows(lRække).Offset(-1, 0).Select

                'indsæt 2 rækker
                Rows(lRække).Insert
                Rows(lRække).Insert
               
                'indsæt værdier i kolonne A i den første "nye" række
                Range("A" & lRække).Value = "Indsæt her de værdier du ønsker"
             

                   
        End If
                     
    Next lRække
 
       
Application.ScreenUpdating = True
   
   
End Sub


Med venlig hilsen, Nicolai
Avatar billede Ialocin Novice
22. november 2011 - 16:55 #13
Hej Bjarne

Ups, jeg glemte at det skal gælde rækkerne fra og med 7 til og med 389 :o)

Hermed den nye procedure ...

Sub Indsæt2Rækker()
Dim lRække As Long
Dim r As Integer
Dim l As Integer


Application.ScreenUpdating = False
               
    'Indsæt rækker i området fra og med række 389 til og med række 7
    For lRække = 390 To 8 Step -1
       
               
        'vælg rækken over den aktuelle række
        Rows(lRække).Offset(-1, 0).Select
       
        'indsæt 2 rækker
        Rows(lRække).Insert
        Rows(lRække).Insert
       
        'indsæt værdier i kolonne A i den første "nye" række
        Range("A" & lRække).Value = "Indsæt her de værdier du ønsker"
                                   
                                   
    Next lRække
 
       
       
Application.ScreenUpdating = True
   
   
End Sub


Med venlig hilsen, Nicolai
Avatar billede oyejo Nybegynder
23. november 2011 - 09:25 #14
Denne er testet og fungerer. Just Copy Past, så er det bare å trykke på knappen :-)


Sub InsertRows()

    lFirstRow = 7
    lLastRow = 389
    
    For r = lLastRow + 1 To lFirstRow + 1 Step -1
        Rows(r & ":" & r +1).Insert
        Range("A" & r).Value = "-----"
    Next
    
End Sub
Avatar billede bjarnefilm Juniormester
23. november 2011 - 18:15 #15
Tak til alle, der har brugt tid på mit spørgsmål. Jeg brugte Ialocins kode. Så vil gerne dele pointene, så smid et svar begge to.

Jeg har talt tastatur-trykkene. For at lave en insert, skal jeg trykke på 6 taster. Med koden har jeg sparet 389*6 ca lig 2400 tryk.
Avatar billede oyejo Nybegynder
23. november 2011 - 18:37 #16
Hei Bjarne, la gjerne Ialocins  få alle pointene.

Det er ikke på grunn av pointene jeg bruker tid på dette.
Ønsker mer å se om jeg greier å løse oppgaven...

Her har du min siste versjon, den gjør det samme men er lettere å forstå. Legger den her, for da kan jeg finne igjen koden hvis jeg trenger den senere :-)


Sub InsertRows()

    lFirstRow = 7
    lLastRow = 389
   
    For r = lLastRow To lFirstRow Step -1
        Rows(r + 1 & ":" & r + 2).Insert
        Range("A" & r + 1).Value = "-----"
    Next
   
End Sub



Vennlig Hilsen Oye
Avatar billede Ialocin Novice
23. november 2011 - 21:34 #17
Hej Bjarne

Godt at høre, at du har fået løst dit "problem" :o)
Hermed mit svar.

Med venlig hilsen, Nicolai
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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