사용중인 매크로들 170809

반복적인 작업은 매크로를 세팅해놓으면 도움이 된다. 전체자동화보다는 각각 사용할수 있게 모듈로 나누어놓는게 나은듯

절대참조, 상대참조를 이해하고 간단하게 기록한 다음 불필요한 구문을 삭제,수정하면 된다.

(code를 포스팅 할경우 ``` 는   의 형식을 갖게 되고, <pre> </pre>는 제일 하단 서식의 형식을 갖게된다. 

입찰대비표 data

1. 양식변환

<br />Sub 입찰대비표()
'
' 입찰대비표 매크로
'

'
    Columns("H:I").Select
    Range("I1").Activate
    Selection.EntireColumn.Hidden = True
    Rows("4:5").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 49407
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Range("A6").Select
    ActiveWindow.DisplayZeros = False
End Sub

2. 비율등 입력

<br />Sub 합계1위3칸아래에서실행()
'
' 합계1위3칸아래에서실행 매크로
'

'
    ActiveCell.FormulaR1C1 = "=R[-3]C/R[-3]C[-10]"
    ActiveCell.Offset(2, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=R[-5]C[-10]-R[-5]C"
    ActiveCell.Offset(-2, 8).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=R[-3]C/R[-3]C[-18]"
    ActiveCell.Offset(2, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=R[-5]C[-18]-R[-5]C"
    ActiveCell.Offset(-2, 8).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=R[-3]C/R[-3]C[-26]"
    ActiveCell.Offset(2, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=R[-5]C[-26]-R[-5]C"
    ActiveCell.Offset(-2, 8).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=R[-3]C/R[-3]C[-34]"
    ActiveCell.Offset(2, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=R[-5]C[-34]-R[-5]C"
    ActiveCell.Offset(-2, 8).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=R[-3]C/R[-3]C[-42]"
    ActiveCell.Offset(2, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=R[-5]C[-42]-R[-5]C"
    ActiveCell.Offset(-2, 0).Rows("1:1").EntireRow.Select
    Selection.Style = "Percent"
    Selection.NumberFormatLocal = "0.0%"
    ActiveCell.Select
    Range("F6").Select
    ActiveWindow.FreezePanes = True
End Sub

분석 및 서식 추가 필요

자주쓰는 것들

날짜의 경우는 data 함수를 사용해서 yy, mm, dd 를 지정해주는 방법이 더 나았다.

<br />Sub zero()
'
' zero 매크로
'

'
    ActiveWindow.DisplayZeros = False
End Sub

Sub 사업자번호양식10자리()
'
' 사업자번호양식10자리 매크로
'

'
    ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],3)&-MID(RC[-1],4,2)&-RIGHT(RC[-1],5)"

End Sub


Sub 날짜8자리변환()
'
' 날짜8자리변환 매크로
'

'
    ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],4)&-MID(RC[-1],5,2)&-RIGHT(RC[-1],2)"

End Sub

출력

출력시 하단에 파일명, 탭명, 페이지 입력

<br />'
' PRINT_A3 매크로
'

'
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = ""
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftFooter = "&F"
        .CenterFooter = "&A"
        .RightFooter = "&P / &N"
        .Orientation = xlLandscape
        .PaperSize = xlPaperA3
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = False
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
    End With
    Application.PrintCommunication = True
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = "$4:$5"
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = ""
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = "&F"
        .CenterFooter = "&A"
        .RightFooter = "&P / &N"
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA3
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = False
    End With
    Application.PrintCommunication = True
    Range("A2").Select
End Sub

출력 두번째

Sub setting_printer()
'
' setting_printer 매크로
'

'
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = "$4:$5"
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    ActiveSheet.PageSetup.PrintArea = ""
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = "&F"
        .CenterFooter = "&A"
        .RightFooter = "&P / &N"
        .LeftMargin = Application.InchesToPoints(0.708661417322835)
        .RightMargin = Application.InchesToPoints(0.708661417322835)
        .TopMargin = Application.InchesToPoints(0.748031496062992)
        .BottomMargin = Application.InchesToPoints(0.748031496062992)
        .HeaderMargin = Application.InchesToPoints(0.31496062992126)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA3
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = False
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
End Sub

같은 값 위아래 셀 합치기

매크로 (출처: seekseek 블로그)


Sub mergecell()
'
' AutoMerge Macro
'
' 바로 가기 키: Ctrl+k
'
On Error Resume Next
'ActiveCell.Select
rowcnt = ActiveCell.Row
colcnt = ActiveCell.Column
a = Cells(rowcnt, colcnt).Value
rowcnt2 = rowcnt + 1

'빈칸이면 끝
While Cells(rowcnt2, colcnt).Value  ""
    While a = Cells(rowcnt2, colcnt).Value '같은 값이면 계속증가
       Cells(rowcnt2, colcnt).Value = "" '같으니까 값을 지워주자 ㅎㅎㅎ
       '그래야 값이 둘인데 하나는 없어진다는 메시지 창이 뜨지 않는다.
       rowcnt2 = rowcnt2 + 1
    Wend
       '이제 같은 값구역을 병합
       Range(Cells(rowcnt, colcnt), Cells(rowcnt2 - 1, colcnt)).Select

       With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            .WrapText = False
            .Orientation = 0
            .AddIndent = False
            .IndentLevel = 0
            .ShrinkToFit = False
            .ReadingOrder = xlContext
            .MergeCells = False
        End With
        Selection.Merge (False)
        
        '초기화

        rowcnt = rowcnt2
        a = Cells(rowcnt, colcnt).Value
        rowcnt2 = rowcnt + 1
Wend
'
End Sub

조금만 더

아침에 문득

적당히 먹으면 생활에 에너지원이 된다고 하지만, 조금만 더 먹게 되는 것들이 살을 찌우게 된다.

아침에 눈을 뜨자마자 생각난 문구. 왜 그랬을까. 어제 자기전에 먹었던 ‘조금만 더’가 과했기 때문인것 같았다.

어떤 역치를 벗어나게 되는 ‘조금만 더’가 있어야 변화도 생기고 – 조금만 덜 이면 빠지겠지 – 일의 매무새도 수준있게 지을수 있어서 그 전체적인 수준을 높일 수도 있겠지.

Scene 1 : Grab on yourself

어떨땐말이야 이런 일 왜 하고 있나 싶을때가 있어. 가치를 알아보는 사람도 없고 같이 이야기 할 사람도 없고.

네가 하려는 일은 어느 지점에 갈때까지 계속 해야되는 일 아니었냐. 네 자신을 다잡고 꾸준히 해야하는 일

img_5041

Scene 2 : 하기

이젠 제 일에만 집중해서 하려구요. 전체적인 일에 신경쓰느라 정작 제 일이 밀리니 제 일은 부족함이 되고, 된 일들은 당연시 되구요.

해 줄 수 있는 일이라면 그냥 해주래이. 결국 다 돌아온데이. 하느님이 주신 달란트 하나님이 결정하신데이.

Scene 3 : 업

자업자득이라고 하죠. 자업. 좋은 업을 쌓아야죠. 하지만 바램이 있는 행동은 업이 아니에요. 그냥 할 뿐이죠.

img_1512

Life 사진전

100여장의 사진으로 표현된 근현대사. 각자의 스토리가 있고, 행동이 있고, 재능,열정,신념이 있었기에 각각 한장 한장의 사진이 빛을 발하는 것이리라.

img_5076

어떤 사진을 남길것인가.
어떤 행동을 실천할 것인가.

결국, 조금만 더 해보기로.

DATA기반 업무관리 변곡점

온라인캘린더를 월간뷰로 놓고 7번만 클릭하면 올해가 지나갑니다. 7번이라 짧네요. 구글포토를 보면서 사진들을 스크롤 해봐도 한해를 스쳐지나가는 한편의 영상이 뇌에서 만들어지죠.

담벼락에는 변곡점들이나 농담점들을 남기는편인데 돌아보니 회사일에 있어서의 변곡점을 남기지는 못했더라구요. 이해의 접점이 적거나 내용의 공개가 안되는 일들인데요. 오히려 중요하고 함께 이야기 하고 싶은 부분은 그쪽 일들인데 말이죠.

데이타를 기반으로 업무를 체계잡고, 데이터를 기반으로 건설업과 구매에 통용될 알고리즘을 만들수 있겠다 하고 있어요. 몇가지는 손에 잡힐듯하고, 몇가지는 좀더 시간이 지나봐야겠어요.

그중 하나를 이번주에 완료했네요. 회사별 데이터를 정리해서 지도상에서 각 위치를 보여주고, 조건별로 해당되는 회사를 필터링하고 찾아내는것. 생각했던 일중 하나가 구현된 날을 남깁니다.

People are Awesome

사람의 몸이라는게 어떻게 단련하느냐에 따라 이렇게도 되는구나 싶은 영상들

물론 이렇게 되기까지 많은 실패가 있었으며 그렇게 대박 실패하는 영상도 있으니 함부로 따라하지 말것.

그래도 공중에서 느끼는 무중력상태들은 참 즐겁겠다싶다.

그리고 같은 영상이라도 페이스북이 전파력이 크긴 크다

유투브는 1백만인데 페이스북은 91백만

공식사이트

https://www.peopleareawesome.com

한국에서 펀딩받아 사업한다는 것

조언들. 듣기 힘든 경험 글로 보아서 담아놓다. 에피소드중에서는 15번이 가장 인상적이었고, 1번을 계속 되돌아보게 된다. 15번이 인상적이어서 이렇게 정리하게 되었다.


1

2

etc

3

4

5

6

7

8 그리고 번외

9

10

11

12

13

14

15

16

Posted in mm

해야 할일 하기

연휴에 만나게된 글과 강연중 몇가지 정리. 필드림 블로그에 노출된 글이 1개에서 2개가 되었다. 그 두번째글이 ‘지금 필요하지 않아서‘ 하지 않는 문제에 대한 글이었다. 그 해법으로는 “Forward looking 즉 미래를 보시기 바랍니다”가 제시되었는데 각자의 수준에 따라 미래를 보게 된다는 한계가 있겠지만 계속 생각해볼만한 문제다.

‘할일을 미루는 사람의 심리’에서 처럼 미래를 보긴하지만 원숭이에 휩쓸려서 결국 마감기한에 닥쳐 일을 하게 되지만 그게 꼭 나쁜것만은 아니라는 것. 패닉괴물이 도와주는데 정작 패배감에 휩쓸려 사는 많은 사람들은 마감기한이 없는 – 하지만 해야 하는 – 일들에 무너지고 있다는 현실. 그런 일들에 원숭이가 조타수를 잡지 않게 하고, 필요한 일들은 마감기한을 스스로 부여할 필요가 있겠다.

미루는 것이 창의적인 ‘오리지널스’에게 도움이 된다는 아담그랜트의 이야기. 하지만 우선 빨리 실행해서 묵히는 시간을 오래 갖는것이 중요하다는 것. 많은 실패를 해야한다는 것. 많이 시도하는 사람이 많은 실패도 가능하다는 것.

6개월동안 어떤 언어도 배울 수 있는 방법 – 크리스 론스데일Chris Lonsdale

https://www.facebook.com/lecturegrowme/ 크리스 론스 데일 (Chris Lonsdale)은 크리스 론스 데일 앤 어소시에이츠 (Chris Lonsdale & Associates)의 전무 이사로, 개인 및 선임 팀을위한 획기적인 성능을 촉진하기 위해 설립되었습니다.

  1. 최대한 많이 노출 되도록
  2. 필요해야 배우게 된다
  3. 언어 그 자체로 배워야 – 의미가 그 단어와 연결되게
  4. 부모처럼 피드백해줄 사람이 있어야 한다

할일을 미루는 사람의 심리

Tim Urban knows that procrastination doesn’t make sense, but he’s never been able to shake his habit of waiting until the last minute to get things done. In this hilarious and insightful talk, Urban takes us on a journey through YouTube binges, Wikipedia rabbit holes and bouts of staring out the window — and encourages us to think harder about what we’re really procrastinating on, before we run out of time.

독창적인 사색가의 놀라운 습관들

TED Talk Subtitles and Transcript: 창의적인 사람들은 어떻게 훌륭한 아이디어를 생각해낼까요? 조직 심리학자 아담 그랜트는 “오리지널스(Originals)”에 대해 연구합니다: 오리지널스는 새로운 아이디어를 꿈꾸고 실제로 실현하고자 행동하는 사람들을 의미합니다. 이 강연에서는 오리지널스들이 실패를 받아들이는 방법을 포함해서 세 가지의 예상 밖의 습관에 대해 알려줍니다. 그랜트는 이렇게 말합니다. “가장 위대한 오리지널스는 가장 많이 실패해 본 사람입니다. 왜냐하면, 가장 많이 시도해 본 사람이기 때문입니다. 단 몇 개의 좋은 아이디어를 얻기 위해서는 수많은 나쁜 아이디어가 필요합니다.”


메모

서울 요리seoulcooking
석사 벙찌게 만드는 수능만점자

석사출신의 미국인이 이해하지 못하는 글을 만점으로 익히는 한국영어의 현실

Memo News 170430

몇가지 뉴스 메모

  • 살이 건설이고 뼈가 하이텍인건가. 그리고 14년 12월말에 기업회생 신청
  • 더 바빠지겠군
  • 기업구조조정분야

[그때그공시] 동부그룹 구조조정, 살을 내주고 뼈를 취하다. ‘17.4.30

… 동부그룹은 2013년 11월 3조 원대 자구책을 내놓았다. … 2014년 6월 산업은행이 동부발전당진과 동부제철 인천공장을 패키지로 묶어 포스코에 매각하려 했으나 포스코가 거부해 무산됐다. … 2014년 10월 동부발전당진은 SK가스가 2010억 원에 지분 60%를 인수하며 그룹의 품을 떠나게 됐다.


동부건설, 회사채 824억원 전액 상환… 수주활동 박차 ‘17.4.30

[헤럴드경제=김성훈 기자] 동부건설은 키스톤에코프라인㈜에 발행한 사모사채 824억원을 전액 상환했다고 밝혔다. 동부건설은 28일 해당 사모사채 824억원 가운데 남아있던 600억원을 추가 상환했다.


키스톤PE, 현대자산운용 품는다 ‘17.4.28

토종 사모펀드(PEF) 운용사인 키스톤프라이빗에쿼티(PE)가 KB증권 계열 현대자산운용을 인수한다. 키스톤PE는 최근 활발한 투자 활동으로 펼치고 있는 중견 사모투자펀드(PEF) 운용사다. 특히 기업구조조정 분야에서 두각을 나타내고 있다. 지난해 9월 동부건설 인수를 마무리 지었으며 동양물산과 손잡고 동국제강 계열이었던 국제종합기계를 인수하기도 했다. 최근에는 선박기자재 업체 융진과 함께 대우조선해양의 설계부문 자회사 디섹 인수를 마무리 짓기도 했다.