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

Makro: paste special kolumn


Sibir
 Share

Rekommendera Poster

Hej,

jag är ny på just VBA och försöker hanka mig fram och göra det jag vill men har fastnat helt och hoppas på lite hjälp.

Ofta har jag följande scenario:

column oktobers cellvärden : Copy -> Paste special:Formulas till column November

column Oktober cellvärden Copy -> paste special: Values

Det vill säga Oktober skall få döda värden och November formler.

 

Jag försöker skapa ett makro som för varje klick gör detta för ytterligare en kolumn i taget. Tänker att om jag har rätt funktion borde den väl rimligtvis innehålla +1 för att göra just detta.

Mitt makro skall:

Ändra färg på månadscellen

Copy special:formulas till nästa kolumn

copy special:values i aktuell kolumn

 

klar.

 

Kan inte bidra med någon kod av värde,

Färg har jag lyckats med samt en variant där makrot uppdaterade samtliga återstod av kolumner i tabellen med formler vilket blir fel då den skriver över prognos.

 

tacksam för input/tips :)

Länk till kommentar
Dela på andra webbplatser

Hej, 
Jag hade kommit såhär långt idag innan jag såg att du skrivit, la till ett försök att välja kolumn som du föreslog, men problemet borde bli att kolumn blir markerad så förstår vad du menar. Det ska helt enkelt vara möjligt att göra vad man nu vill mellan knapptrycken och sedan uppdatera så att nästa månadskolumn ersätter tidigare prognosvärden med formeln. ;

Här är koden, dock så får jag runtime error "13" type mismatch.

 

Sub Macro7()
'
' Macro update column
'
    With worksheets(sheet6)
    .Range("AD6:AD7").offset(0,1).copy
    .Range("AE6:AE7").offset(0,1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    .Range("AD6").offset(0,1).copy
    .Range("AE6").offset(0,1).Paste
    .Range("AD12:AD31").offset(0,1).Copy
    .Range("AE12").offset(0,1).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    .Range("AD12[1]").offset(0,1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    .Range("AE12:AE31").offset(0,1).select
    end with
End Sub

Länk till kommentar
Dela på andra webbplatser

Tack för förtydligandet.

Det ser snyggt ut och funkar nu, bra med en kontroll, dock kvarstår problemet att uppdatera nästa kolumn. Men tror jag kommit fram till att den inte måste veta att den ska hantera nästa kolumn utan jag kör en IF-sats på tabellens range och när den stöter på kolumn med formel exekverar den. Logiskt egentligen eftersom jag bara alltid har en kolumn med formler. 

 

Tack för att du tog dig tid att hjälpa mig vidare ?

Redigerad av Sibir
Uppdatering
Länk till kommentar
Dela på andra webbplatser

 Share

×
×
  • Skapa nytt...