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

Få med formler i VBA


Rekommendera Poster

Hejsan! har gjort detta och skulle vilja att när jag trycker på nytt spel så ska det skapas en ny rad, men hur får man med formlerna från raden ovanför i VBA koden? hoppas någon kan hjälpa mig med detta.

L123.thumb.png.00614f8f61c289ce7e37bd6a9beb182b.png

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

Hej. Om du  expanderar tabellen en rad så hänger formlerna från föregående rad med (dvs om du drar ner "trekantspluppen" längst ner till höger i din tabell, eller ställer dig i sista raden och väljer "Infoga rad".).

 

Spela in ett makro när du gör det så ser du ungefär vilken kod du behöver.

Eller kolla på dokumentationen för "Resize"

Range.Resize property (Excel) | Microsoft Docs

 

 

Sub Makro1()

Dim rOmråde As Range
Dim MinTabell As ListObject

'Ange vilken tabell du vill jobba med:
Set MinTabell = Sheets("blad1").ListObjects("Tabell1")

'Skapa ett nytt område som = tabellen
Set rOmråde = MinTabell.Range

'Expandera det området en rad med hjälp av "vanliga" Resize
Set rOmråde = rOmråde.Resize(rOmråde.Rows.Count + 1, rOmråde.Columns.Count)

'Och ange sedan att tabellenskall expanderas till det nya området
MinTabell.Resize rOmråde

End Sub

 

Det kan verka onödigt krångligt att skapa rOmråde. Men det blir så svårt att hålla koll på vilken Resize man jobbar med annars

  • Gilla 1
Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Hej igen! får det delvis att fungera men rubrikerna med X över tas ej formlerna med, rubrikerna med O över SKA inte ha några formler allskod.png.cbf825c997f2611321fce7242b132e49.png

L123_14.thumb.png.3b1fb899c6d7e85b533314e473f66c72.png

Redigerad av miksor65
Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Hej. När du expanderaderar en tabell så är det bara formlerna som tas med (om det är (någorlunda) samma formel i hela kolumnen).

Så, om du har skrivit in Oddset som

2

så kopieras den inte. Men om du har skrivit in som

=2

så kommer den att kopieras.

 

 

Variant:

Kopiera sista raden, gå ner en rad (offset) och kör:

Arkiv->Klistra in special: Formler

 

Sub Makro1()
Dim MinTabell As ListObject
Set MinTabell = Sheets("blad1").ListObjects("Tabell1")

MinTabell.ListRows(MinTabell.DataBodyRange.Rows.Count).Range.Copy
MinTabell.ListRows(MinTabell.DataBodyRange.Rows.Count).Range.Offset(1, 0).PasteSpecial Paste:=xlPasteFormulas
End Sub

 

 

 

***ED***

Bästa(? extremt bra i alla fall) översikten gällande VBA och Tabeller:

https://exceloffthegrid.com/vba-excel-tables-code/

***/ED****

Redigerad av MH_
  • Gilla 1
Länk till inlägg
Dela på andra webbplatser

Den här formeln =OM(K9="";"";OM(K9="R";1;OM(K9="F";C9+1))) ligger i C10 och följer med med ner till C11 när jag trycker på nytt spel.

Den här formeln =OM(C10="";"";OM(K9="F";M9;OM(K9="R";$E$5))) ligger i D10 och följer INTE med ner till D11 när jag trycker nytt spel, likadant med L och N kolumnen.

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

Det blir exakt likadant om jag drar i nedre hörnet, formlerna följer bara med i C, H, I, J och M kolumnerna, formlerna med ett X ovanför rubrikerna följer inte med

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

Och varianten med:

Arkiv->Klistra in special: Formler

Blir det också fel? Då kan man ju fråga sig om det verkligen står formler i sista raden.

  • Gilla 1
Länk till inlägg
Dela på andra webbplatser

Använder jag Arkiv->Klistra in special: Formler då följer alla formlerna med, så vad kan vara fel tro?

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

Då har du förmodligen lite olika formler på olika rader i kolumnerna. Ställ dig i en "strulkolumn" och radera allt utom rubrik och rad1.

Gå in och redigera formen på rad1 (du behöver inte ändra något, men du måste "stå i" formeln och trycka [Enter]. Då skall formeln fyllas nedåt. Kör makrot och se om den kolumnen blir rätt.

Alternativt, kör "Klistra in special" makrot.

  • Tack 1
Länk till inlägg
Dela på andra webbplatser

Jaha, då förstår jag, rad 2 i tabellen är beroende av utfall i rad 1 så formlerna skiljer sig lite åt, får fundera lite på hur jag ska lösa det.

 

Du ska ha jättetack för alla svar jag fått.

 

/Micke

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...