Tennisguuy
Well-known Member
- Joined
- Oct 17, 2007
- Messages
- 564
- Office Version
- 2016
- Platform
- Windows
I'm not good with writing code for macros so I always use the record macro to set up a macro and in most cases that's enough. However, I have a situation where I would like to create macro to alleviate doing the same task every time.
I have a template that I use to organize data on every account I underwrite. It helps me analyze the data. In the template I have a section with the data below.
Loc. T.I.V Coverage
1.1 100,000 b
200,000 c
300,000 Stock
1.2 200,000 b
400,000 c
600,000 Income
The amount of data various based on the size of account. From this data I use excel to organize it by it by location by T.I.V by coverage
What I do is copy the data you see above over to another column and I will use excel to fill in the blank spaces for the number so I can get a total. Once I copy the data into another section I highlight the loc column press F5 click on the blank radio button then hit the equal sign then ctrl enter and excel will fill in the blank spaces. For example it would be a 1.1 next to the 200,000 and 1.1 next to the 300,000.
I created a macro to perform this task but in order to create the macro and since I have no idea how large my data set will be each time I had it copy up to 600 rows. However when it use excel to fill in the blank spaces and if I don't have exactly 600 rows of data it will take the last number and paste it all the way down to line 600. Since there is no data in the other cells it doesn't affect my calculation it just doesn't look at nice to have a location number without a value next to it.
Therefore what I wanted to know if the macro could be edited to only fill in a number in a blank spot where there is data next to it. The problem is even if it could be done I wouldn't know how to edit the code. I've copied the code from the macro recorder below.
Sub Macro4()
'
' Macro4 Macro
' Mascro to copy location numbers to column t for processing
'
' Keyboard Shortcut: Ctrl+p
'
Range("N2:N601").Select
Selection.Copy
ActiveWindow.ScrollRow = 578
ActiveWindow.ScrollRow = 576
ActiveWindow.ScrollRow = 571
ActiveWindow.ScrollRow = 565
ActiveWindow.ScrollRow = 556
ActiveWindow.ScrollRow = 546
ActiveWindow.ScrollRow = 525
ActiveWindow.ScrollRow = 512
ActiveWindow.ScrollRow = 495
ActiveWindow.ScrollRow = 478
ActiveWindow.ScrollRow = 446
ActiveWindow.ScrollRow = 429
ActiveWindow.ScrollRow = 415
ActiveWindow.ScrollRow = 382
ActiveWindow.ScrollRow = 355
ActiveWindow.ScrollRow = 334
ActiveWindow.ScrollRow = 315
ActiveWindow.ScrollRow = 309
ActiveWindow.ScrollRow = 301
ActiveWindow.ScrollRow = 294
ActiveWindow.ScrollRow = 286
ActiveWindow.ScrollRow = 276
ActiveWindow.ScrollRow = 260
ActiveWindow.ScrollRow = 254
ActiveWindow.ScrollRow = 243
ActiveWindow.ScrollRow = 234
ActiveWindow.ScrollRow = 227
ActiveWindow.ScrollRow = 214
ActiveWindow.ScrollRow = 208
ActiveWindow.ScrollRow = 201
ActiveWindow.ScrollRow = 190
ActiveWindow.ScrollRow = 181
ActiveWindow.ScrollRow = 153
ActiveWindow.ScrollRow = 140
ActiveWindow.ScrollRow = 130
ActiveWindow.ScrollRow = 106
ActiveWindow.ScrollRow = 96
ActiveWindow.ScrollRow = 78
ActiveWindow.ScrollRow = 71
ActiveWindow.ScrollRow = 65
ActiveWindow.ScrollRow = 61
ActiveWindow.ScrollRow = 58
ActiveWindow.ScrollRow = 54
ActiveWindow.ScrollRow = 49
ActiveWindow.ScrollRow = 48
ActiveWindow.ScrollRow = 47
ActiveWindow.ScrollRow = 46
ActiveWindow.ScrollRow = 45
ActiveWindow.ScrollRow = 44
ActiveWindow.ScrollRow = 42
ActiveWindow.ScrollRow = 41
ActiveWindow.ScrollRow = 39
ActiveWindow.ScrollRow = 38
ActiveWindow.ScrollRow = 36
ActiveWindow.ScrollRow = 34
ActiveWindow.ScrollRow = 33
ActiveWindow.ScrollRow = 32
ActiveWindow.ScrollRow = 29
ActiveWindow.ScrollRow = 27
ActiveWindow.ScrollRow = 24
ActiveWindow.ScrollRow = 20
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 17
ActiveWindow.ScrollRow = 13
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 2
ActiveWindow.SmallScroll ToRight:=27
Range("AK2").Select
ActiveSheet.Paste
Selection.SpecialCells(xlCellTypeBlanks).Select
Application.CutCopyMode = False
Selection.FormulaR1C1 = "=R[-1]C"
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
End Sub
I have a template that I use to organize data on every account I underwrite. It helps me analyze the data. In the template I have a section with the data below.
Loc. T.I.V Coverage
1.1 100,000 b
200,000 c
300,000 Stock
1.2 200,000 b
400,000 c
600,000 Income
The amount of data various based on the size of account. From this data I use excel to organize it by it by location by T.I.V by coverage
What I do is copy the data you see above over to another column and I will use excel to fill in the blank spaces for the number so I can get a total. Once I copy the data into another section I highlight the loc column press F5 click on the blank radio button then hit the equal sign then ctrl enter and excel will fill in the blank spaces. For example it would be a 1.1 next to the 200,000 and 1.1 next to the 300,000.
I created a macro to perform this task but in order to create the macro and since I have no idea how large my data set will be each time I had it copy up to 600 rows. However when it use excel to fill in the blank spaces and if I don't have exactly 600 rows of data it will take the last number and paste it all the way down to line 600. Since there is no data in the other cells it doesn't affect my calculation it just doesn't look at nice to have a location number without a value next to it.
Therefore what I wanted to know if the macro could be edited to only fill in a number in a blank spot where there is data next to it. The problem is even if it could be done I wouldn't know how to edit the code. I've copied the code from the macro recorder below.
Sub Macro4()
'
' Macro4 Macro
' Mascro to copy location numbers to column t for processing
'
' Keyboard Shortcut: Ctrl+p
'
Range("N2:N601").Select
Selection.Copy
ActiveWindow.ScrollRow = 578
ActiveWindow.ScrollRow = 576
ActiveWindow.ScrollRow = 571
ActiveWindow.ScrollRow = 565
ActiveWindow.ScrollRow = 556
ActiveWindow.ScrollRow = 546
ActiveWindow.ScrollRow = 525
ActiveWindow.ScrollRow = 512
ActiveWindow.ScrollRow = 495
ActiveWindow.ScrollRow = 478
ActiveWindow.ScrollRow = 446
ActiveWindow.ScrollRow = 429
ActiveWindow.ScrollRow = 415
ActiveWindow.ScrollRow = 382
ActiveWindow.ScrollRow = 355
ActiveWindow.ScrollRow = 334
ActiveWindow.ScrollRow = 315
ActiveWindow.ScrollRow = 309
ActiveWindow.ScrollRow = 301
ActiveWindow.ScrollRow = 294
ActiveWindow.ScrollRow = 286
ActiveWindow.ScrollRow = 276
ActiveWindow.ScrollRow = 260
ActiveWindow.ScrollRow = 254
ActiveWindow.ScrollRow = 243
ActiveWindow.ScrollRow = 234
ActiveWindow.ScrollRow = 227
ActiveWindow.ScrollRow = 214
ActiveWindow.ScrollRow = 208
ActiveWindow.ScrollRow = 201
ActiveWindow.ScrollRow = 190
ActiveWindow.ScrollRow = 181
ActiveWindow.ScrollRow = 153
ActiveWindow.ScrollRow = 140
ActiveWindow.ScrollRow = 130
ActiveWindow.ScrollRow = 106
ActiveWindow.ScrollRow = 96
ActiveWindow.ScrollRow = 78
ActiveWindow.ScrollRow = 71
ActiveWindow.ScrollRow = 65
ActiveWindow.ScrollRow = 61
ActiveWindow.ScrollRow = 58
ActiveWindow.ScrollRow = 54
ActiveWindow.ScrollRow = 49
ActiveWindow.ScrollRow = 48
ActiveWindow.ScrollRow = 47
ActiveWindow.ScrollRow = 46
ActiveWindow.ScrollRow = 45
ActiveWindow.ScrollRow = 44
ActiveWindow.ScrollRow = 42
ActiveWindow.ScrollRow = 41
ActiveWindow.ScrollRow = 39
ActiveWindow.ScrollRow = 38
ActiveWindow.ScrollRow = 36
ActiveWindow.ScrollRow = 34
ActiveWindow.ScrollRow = 33
ActiveWindow.ScrollRow = 32
ActiveWindow.ScrollRow = 29
ActiveWindow.ScrollRow = 27
ActiveWindow.ScrollRow = 24
ActiveWindow.ScrollRow = 20
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 17
ActiveWindow.ScrollRow = 13
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 2
ActiveWindow.SmallScroll ToRight:=27
Range("AK2").Select
ActiveSheet.Paste
Selection.SpecialCells(xlCellTypeBlanks).Select
Application.CutCopyMode = False
Selection.FormulaR1C1 = "=R[-1]C"
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
End Sub