20. marts 2021 - 16:57Der er
3 kommentarer og 1 løsning
Indsætte række i flere ark, med bestemt data/formel i cellerne
Jeg markerer en vilkårlig celle i ark1 og kører min VBA med indsæt række. Den indsætter så en række i ark1, 2 og 3, men i ark2 og 3, skal den indsætte nogle formler i de første 4 kolonner. Har dette stående i fx kolonne B, række 16 i ark2 og 3: =HVIS('ark1'!B16="";"";'ark1'!B16) Når jeg indsætter en ny linje i ark1 (automatisk i ark2 og 3) skal den indsætte ovenstående formel, dog med hensyn til hvilken række der er indsat. Så tallet 16, skal skifte ift. hvilken række det er på.
Håber det gav mening.
Jeg har denne VBA til at indsætte linjerne:
Sub Indsæt_række() ' ' Indsæt_række Makro ' Indsætter række på flere ark ' Dim ws As Worksheet
ActiveWorkbook.Unprotect For Each ws In Worksheets ws.Unprotect Next
If Selection.Rows.Count = 1 Then r = Selection.Row Selection.EntireRow.Insert
Worksheets("ark2").Rows(r).EntireRow.Insert
Worksheets("ark3").Rows(r).EntireRow.Insert
Else MsgBox ("Vælg kun en linje ad gangen før indsætning") End If
ActiveWorkbook.Protect For Each ws In Worksheets ws.Protect Next
Hvis du kun indsætter linjer efter linje 16 kan dette måske bruges:
Sub Indsæt_række() Dim ws As Worksheet ' ' Indsæt_række Makro ' Indsætter række på flere ark ' Dim ws As Worksheet
ActiveWorkbook.Unprotect For Each ws In Worksheets ws.Unprotect Next If Selection.Rows.Count = 1 Then r = Selection.Row Selection.EntireRow.Insert Worksheets("ark2").Rows(r).EntireRow.Insert Worksheets("ark2").Range("B16").Copy Worksheets("ark2").Cells(r, 2).PasteSpecial xlPasteFormulas Worksheets("ark3").Rows(r).EntireRow.Insert Worksheets("ark3").Range("B16").Copy Worksheets("ark3").Cells(r, 2).PasteSpecial xlPasteFormulas Else MsgBox ("Vælg kun en linje ad gangen før indsætning") End If ActiveWorkbook.Protect For Each ws In Worksheets ws.Protect Next End Sub
Er på vej i den rigtige retning. Kan der bygges en sikkerhed ind, der gør at den kun godkender at det er markeringen i ark1 der gælder? Den kan lave noget volapyk i ark 2 og 3 og undlade at indsætte linje i ark1. Fx indsætte en linje i ark2 og 2 linjer i ark3, hvor de 2 linjer er ens, med reference til den samme linje i ark1. Tror det er noget med at den kigger efter hvad ark der er låst sidst (er et rent gæt på hvad det er der laver problemet)?
Sub Indsæt_række() ' ' Indsæt_række Makro ' Indsætter række på flere ark
If Selection.Rows.Count = 1 Then r = Selection.Row Selection.EntireRow.Insert Worksheets("ark2").Rows(r).EntireRow.Insert Worksheets("ark2").Range("A4:D4").Copy Worksheets("ark2").Cells(r, 2).PasteSpecial xlPasteFormulas
r = Selection.Row If Selection.Rows.Count = 1 And r > 4 And ActiveSheet.Name = "Ark1" Then Selection.EntireRow.Insert Worksheets("ark2").Rows(r).EntireRow.Insert Worksheets("ark2").Range("A4:D4").Copy Worksheets("ark2").Cells(r, 2).PasteSpecial xlPasteFormulas
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.