Just nu i M3-nätverket
Gå till innehåll
VSI7

Macro kopplat till flik och formel

Rekommendera Poster

Hej!

Nu skulle jag behöva lite hjälp igen.

jag vill skapa ett macro kopplat till en knapp som: öppnar en ny flik, skapar nya rader i befintlig flik, skriver in formel i dessa rader kopplade till ny flik.

detta har jag också lykats göra, MEN när jag använder min knapp gång nr2, då får jag exat samma formel som jag fick första gången och därför kopplar formeln till den första fliken som skapades. Att de blir så här kanske inte är så konstigt men hur gör jag för att macrot ska skapa en formel som kopplar till den nya fliken?

 

Tacksam för hjälp!

 

// Lisa

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

ge oss koden så ska vi se var du tänkt fel.

 

Enklast så.

Fast troligen missar du helt enkelt att använda nya arket.

När du skapat ett blad kan du vanligtvis nå det via

 

Set myWs = Worksheets(Worksheest.count)

eller

Set myWs = Activesheet

och sedan använda denna variabel, bladets namn  (myWs.Name) för att bygga upp dina formler.

 

Om detta inte räcker, ge oss din kod.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Jag är väldigt ny på de här med macron men såhär ser det ut, bifogar en word fil med koden för jag lyckas inte klistra i den här.

 

det kanske fungerar som du skrivit ovanför men jag är inte säker på att jag hänger med hela vägen.

Sub Makro5.docx

Redigerad av VSI7

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Sub Makro5()
'
' Makro5 Makro
'

'
    Dim ws as Worksheet
    Sheets.Add After:=Sheets(Sheets.Count)
    Set ws = Sheets(Sheets.Count)
    With Sheets("Sammanställning")
        
        .Unprotect
        Dim i as Integer
        For i = 1 to 3
            .Range("J4:K4").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Next i
        .Range("J4").FormulaR1C1 = "=" & ws.Name & "R8C2"
        .Rannge("J4").AutoFill Destination:=.Range("J4:J6"), Type:=xlFillDefault
    
        .Range("K4").FormulaR1C1 = _
        "=IFERROR(VLOOKUP(R[41]C5," & ws.Name & ""!C[-8]:C[6],8,FALSE),0)"
        .Range("K4").AutoFill Destination:=.Range("K4:K6"), Type:=xlFillDefault
    
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    End With
End Sub

Har skrivit om din kod så som jag tror att du menar att den ska fungera. tagit bort alla Select-satser som är en rest av att du spelat in koden.

Bytt ut alla ställen där det stod Blad1 mot en referens till det nya arket.

 

Koden går nog i sig att snygga till lite, for-satsen mitt i är exempelvis helt onödig tror jag.

 

Bifogar även koden som textfil då Eforum för tillfället har ett javascript som sabbar inklistrad kod.

kodblad.txt

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...