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



  • Liknande Innehåll

    • Av Lotta Norell
      Hej,
      Jag jobbar i ett STORT exceldokument eller det har blivit väldigt stort. En stor anledning är att jag har både min IN data och mina analyser i samma dokument. Detta för att jag lagt upp formlerna så.
      Men det borde ju gå att ha all INPUT data i en fil och sen all min analys i en separat. Hur gör jag detta smidigast? 
    • Av MvS
      Jag har en medlemsmatrikel på ett Excel-ark där jag behöver en funktion (ett Makro) som kan exportera medlemmars namn tillsammans med respektive epost-adress till en text-fil. 
      Har kollat runt men inga exempel jag stött på verkar fungera så jag undrar nu om det finns någon vänlig själ som kan hjälpa mig?
      Jag vill kunna exportera innehållet i kolumn "A" (Namn) och kolumn "J" (E-postadress) men bara från de rader där medlemmen har en epostadress. Utdata på textfilen bör vara tabbavgränsat men det  är inget absolut måste...
      Pls help...
       
    • Av AnnaK
      Hej,
      Jag har laddat ner en dynamisk kalender här; https://www.excelbrevet.se/wp-content/uploads/2015/03/DynamiskKalender-Excelbrevet1.xlsx
      Filen fungerar fint och jag har kunnat kopiera in fler flikar och ändrat ordinarie kalender 2015 till andra år. Men det är något fel med formlerna när det gäller veckonummer.  Formel för vecka 1: ="v."&VECKONR(A3;21) resp formel för vecka 2: =OM(B7=2;"v."&VECKONR(A7;21);"") med fortsättning vecka 3-52 på samma sätt som vecka två fast med annan cellhänvisning på kolumn B.
       
      Hur ska jag ändra så att formlerna fungerar för veckonummer?
       
      Tack på förhand!
    • Av berikolssson
      Någon som har koll, jag har ett dokument som när jag öppnar det får en gul rand längst upp med texten Säkerhetsvarning Makron har inaktiverats. Bredvid detta meddelande finns en knapp med texten Aktivera innehåll. Jag kan dock inte se att det finns något makro i dokumentet. Finns det någon som har koll på vad som kan trigga detta meddelande och finns det något enkelt sätt identifiera den specifika källan? Är det riskfritt att aktivera innehåll?
       
      Jag har skannat filen med antivirus utan att något hittades.
      Wordversionen är Word 2010

    • Av VSI7
      Hej!
       
      Jag har skrivit ett makro som tar data från ett "uträkningsdata blad" flyttar och tar bort värdena i en kolumn där och lägger dem i ett "beräknings blad" och skulle vilja att de upprepades tills kolumnen i bladet "uträkningsdata" är tom på data. då vill jag att upprepningen avslutas.
       
      sen undrar jag även om de går att städa något i makrot. jag är självlärd på detta och vill gärna lära mig mer!
      Sub område13() ' ' område13 Makro ' ' Range("C1").Select Sheets("13").Select Columns("E:E").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Range("E1").Select ActiveCell.FormulaR1C1 = "=Formler!R[1]C[-3]" Range("E89").Select ActiveCell.FormulaR1C1 = "=Formler!R[-87]C[13]" Range("E90").Select ActiveCell.FormulaR1C1 = "=Formler!R[-87]C[13]" Range("E94").Select ActiveCell.FormulaR1C1 = "=Formler!R[-83]C[6]" Range("E96").Select ActiveCell.FormulaR1C1 = "=Formler!R[-85]C[8]" Range("E98").Select ActiveCell.FormulaR1C1 = "=Formler!R[-87]C[10]" Range("E101").Select ActiveCell.FormulaR1C1 = "=Formler!R[-78]C[3]" Range("E110").Select ActiveCell.FormulaR1C1 = "=Formler!R[-86]C[3]" Range("E111").Select ActiveCell.FormulaR1C1 = "=Formler!R[-86]C[3]" Range("E112").Select ActiveCell.FormulaR1C1 = "=Formler!R[-92]C[3]" Range("E115").Select ActiveCell.FormulaR1C1 = "=Formler!R[-91]C[6]" Range("E116").Select ActiveCell.FormulaR1C1 = "=Formler!R[-91]C[6]" Range("E117").Select ActiveCell.FormulaR1C1 = "=Formler!R[-91]C[6]" Range("E120").Select ActiveCell.FormulaR1C1 = "=Formler!R[-110]C[10]" Range("E127").Select ActiveCell.FormulaR1C1 = "=Formler!R[-119]C[3]" Range("E129").Select ActiveCell.FormulaR1C1 = "=Formler!R[-117]C[6]" Range("E131").Select ActiveCell.FormulaR1C1 = "=Formler!R[-123]C[8]" Range("E134").Select ActiveCell.FormulaR1C1 = "=Formler!R[-126]C[10]" Range("E138").Select ActiveCell.FormulaR1C1 = "=Formler!R[-125]C[3]" Range("E141").Select ActiveCell.FormulaR1C1 = "=Formler!R[-128]C[6]" Range("E145").Select ActiveCell.FormulaR1C1 = "=Formler!R[-132]C[8]" Range("E148").Select ActiveCell.FormulaR1C1 = "=Formler!R[-135]C[10]" Range("E151").Select ActiveCell.FormulaR1C1 = "=Formler!R[-137]C[3]" Range("E152").Select ActiveCell.FormulaR1C1 = "=Formler!R[-137]C[3]" Range("E155").Select ActiveCell.FormulaR1C1 = "=Formler!R[-141]C[6]" Range("E163").Select ActiveCell.FormulaR1C1 = "=Formler!R[-136]C[3]" Range("E167").Select ActiveCell.FormulaR1C1 = "=Formler!R[-151]C[3]" Range("E170").Select ActiveCell.FormulaR1C1 = "=Formler!R[-153]C[3]" Range("E172").Select ActiveCell.FormulaR1C1 = "=Formler!R[-144]C[3]" Range("E175").Select ActiveCell.FormulaR1C1 = "=Formler!R[-144]C[3]" Range("E176").Select ActiveCell.FormulaR1C1 = "=Formler!R[-144]C[3]" Range("E189").Select ActiveCell.FormulaR1C1 = "=Formler!R[-156]C[3]" Range("E190").Select ActiveCell.FormulaR1C1 = "=Formler!R[-156]C[3]" Range("E191").Select ActiveCell.FormulaR1C1 = "=Formler!R[-156]C[3]" Range("E192").Select ActiveCell.FormulaR1C1 = "=Formler!R[-156]C[3]" Range("E193").Select ActiveCell.FormulaR1C1 = "=Formler!R[-156]C[3]" Range("E194").Select ActiveCell.FormulaR1C1 = "=Formler!R[-156]C[3]" Range("E195").Select ActiveCell.FormulaR1C1 = "=Formler!R[-156]C[3]" Range("E196").Select ActiveCell.FormulaR1C1 = "=Formler!R[-156]C[3]" Range("E199").Select ActiveCell.FormulaR1C1 = "=Formler!R[-158]C[3]" Range("E200").Select ActiveCell.FormulaR1C1 = "=Formler!R[-158]C[3]" Range("E201").Select ActiveCell.FormulaR1C1 = "=Formler!R[-158]C[3]" Range("E203").Select ActiveCell.FormulaR1C1 = "=Formler!R[-175]C[6]" Range("E206").Select ActiveCell.FormulaR1C1 = "=Formler!R[-187]C[8]" Range("E227").Select ActiveCell.FormulaR1C1 = "=Formler!R[-182]C[3]" Range("E229").Select ActiveCell.FormulaR1C1 = "=Formler!R[-183]C[3]" Range("E235").Select ActiveCell.FormulaR1C1 = "=Formler!R[-186]C[3]" Range("E236").Select ActiveCell.FormulaR1C1 = "=Formler!R[-186]C[3]" Range("E237").Select ActiveCell.FormulaR1C1 = "=Formler!R[-186]C[3]" Range("E238").Select ActiveCell.FormulaR1C1 = "=Formler!R[-186]C[3]" Range("E239").Select ActiveCell.FormulaR1C1 = "=Formler!R[-186]C[3]" Range("E241").Select ActiveCell.FormulaR1C1 = "=Formler!R[-188]C[3]" Range("E249").Select ActiveCell.FormulaR1C1 = "=Formler!R[-232]C[10]" Range("E252").Select ActiveCell.FormulaR1C1 = "=Formler!R[-234]C[10]" Range("E255").Select ActiveCell.FormulaR1C1 = "=Formler!R[-236]C[10]" Range("E256").Select ActiveCell.FormulaR1C1 = "=Formler!R[-236]C[10]" Range("E257").Select ActiveCell.FormulaR1C1 = "=Formler!R[-236]C[10]" Range("E258").Select ActiveCell.FormulaR1C1 = "=Formler!R[-236]C[10]" Range("E264").Select ActiveCell.FormulaR1C1 = "=Formler!R[-247]C[10]" Columns("e:e").Select Selection.Copy Columns("f:f").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Columns("e:e").Select Application.CutCopyMode = False Selection.ClearContents Columns("C:C").Select Selection.Copy Columns("E:E").Select Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False Range("C88").Select ActiveCell.FormulaR1C1 = "=SUM(RC[3]:RC[620])" Range("C88").Select Selection.AutoFill Destination:=Range("C88:C177"), Type:=xlFillDefault Range("C88:C177").Select Range("C187").Select ActiveCell.FormulaR1C1 = "=SUM(RC[3]:RC[620])" Range("C187").Select Selection.AutoFill Destination:=Range("C187:C299"), Type:=xlFillDefault Range("C187:C299").Select Range("C1").Select Sheets("Beräkning").Select Range("C1").Select Sheets("Uträkningsdata").Select Range("D1:D49").Select Selection.Copy Sheets("Beräkning").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Uträkningsdata").Select Columns("C:C").Select Application.CutCopyMode = False Selection.Delete Shift:=xlToLeft Sheets("Beräkning").Select Range("C1").Select End Sub
  • Senaste som Tittar

    Inga registrerade medlemmar är inne på denna sida.

  • Obesvarade ämnen

  • Nya ämnen

  • Aktuella jobb

    Alla lediga jobb
×
×
  • Skapa nytt...