Jump to content

Recommended Posts

Posted

Hej! Första inlägget här på forumet - har tidigare suttit på eforum IDG. Hoppas att det finns några bekanta ansikten här framöver ^_^

Jag har ett makro som jag har spelat in på jobbet, som jag skulle behöva lite hjälp med. Makrot är inspelat så att det är kopplat till C2:C31. Jag undrar hur jag skriver om koden så att makrot istället kopierar till sista tomma raden. Det kommer inte alltid vara C:31 som är sista raden. Någon som kan hjälpa mig? Makrot är egentligen ganska enkelt, jag vill bara infoga en ny rad höger om priset (som kommer i kolumn b) och avrunda alla tal i kolumn B:B till 0 decimaler. Sedan kopiera alla priser med 0 decimaler som värden. Ett steg i en process för att kunna ladda upp en prisfil i affärssystemet. 

Makrot: 

Sub Avrunda_0_Decimaler()
'
' Avrunda_0_Decimaler Makro
'

'
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "=ROUND(RC[-1],0)"
    Range("C2").Select
    Selection.AutoFill Destination:=Range("C2:C31"), Type:=xlFillDefault
    Range("C2:C31").Select
    Range("C2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Range("B2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A1").Select
End Sub

 

  • Solution
Posted

du kan använda samma kod som du kör när du hämtar formlerna 

Range(Selection, Selection.End(xlDown)).Select

Fast i B kolumnen. Dvs samma sak som att stå i B2 och trycka Ctrl+shift+nedpil : 

Sub Avrunda_0_Decimaler()
    Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Offset(rowOffset:=0, columnOffset:=1).Select
    Selection.FormulaR1C1 = "=ROUND(RC[-1],0)"
    Selection.Copy
    Range("B2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A1").Select
End Sub

Och om Monshi skulle få syn på det här så gör vi en variant utan en massa Select och Copy

Offset är bara ett sätt att flytta hela området (i vårt fall +1=en  kolumn till höger, dvs kolumn C)

 

Sub Avrunda_0_Decimaler()
Dim mittOmråde As Range

' bestämm urspungsområde
	Set mittOmråde = Range("B2", Range("B2").End(xlDown))

'Skriv in formel i C kolumnen (Mittområde offsetat 1 kolumn)
	mittOmråde.Offset(rowOffset:=0, columnOffset:=1).FormulaR1C1 = "=ROUND(RC[-1],0)"
'Och ange att B kolumnen skall vara lika med värdena i C 
    mittOmråde.Value = mittOmråde.Offset(0, 1).Value
' Ta bort data från C, om du vill
'    mittOmråde.Offset(0, 1).ClearContents
    Range("A1").Select
End Sub

 

  • Thanks 1
  • 2 weeks later...
Posted
On 2022-07-26 at 20:24, MH_ sade:

du kan använda samma kod som du kör när du hämtar formlerna 

Range(Selection, Selection.End(xlDown)).Select

Fast i B kolumnen. Dvs samma sak som att stå i B2 och trycka Ctrl+shift+nedpil : 

Sub Avrunda_0_Decimaler()
    Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Offset(rowOffset:=0, columnOffset:=1).Select
    Selection.FormulaR1C1 = "=ROUND(RC[-1],0)"
    Selection.Copy
    Range("B2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A1").Select
End Sub

Och om Monshi skulle få syn på det här så gör vi en variant utan en massa Select och Copy

Offset är bara ett sätt att flytta hela området (i vårt fall +1=en  kolumn till höger, dvs kolumn C)

 

Sub Avrunda_0_Decimaler()
Dim mittOmråde As Range

' bestämm urspungsområde
	Set mittOmråde = Range("B2", Range("B2").End(xlDown))

'Skriv in formel i C kolumnen (Mittområde offsetat 1 kolumn)
	mittOmråde.Offset(rowOffset:=0, columnOffset:=1).FormulaR1C1 = "=ROUND(RC[-1],0)"
'Och ange att B kolumnen skall vara lika med värdena i C 
    mittOmråde.Value = mittOmråde.Offset(0, 1).Value
' Ta bort data från C, om du vill
'    mittOmråde.Offset(0, 1).ClearContents
    Range("A1").Select
End Sub

 

 

Stort tack för ett återigen exemplariskt svar! Funkade perfekt :) 

Haha ja, tack för räddningen. Alltid bra att ha en reservplan om monshi hittar hit! (Kul med lite humor ibland också ;))

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...