Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Autofill in Excel with VBA repeatedly in same column

Posted on 2011-03-14
4
Medium Priority
?
644 Views
Last Modified: 2013-11-10
I have some Excel files with a few million records between them, and they are grouped by source filename. I would like to write a VBA macro that places the source filename of each record in the first column so they will be easy to trace when I combine them into a database.

I am assuming the best way to do this is to use autofill coding on some sort of loop but I'm having trouble with the autofill part. The files are laid out exactly like in the exampleData tab in the attached file and I would like it to look like the solution tab. Thanks!
exampleData.xlsx
0
Comment
Question by:dzielinski
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
4 Comments
 
LVL 39

Expert Comment

by:nutsch
ID: 35133803
Try this code:

Sub quickcleanup()
Dim rg As Range
Set rg = Range(Cells(3, 2), Cells(ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row - 1, 2))

Application.ScreenUpdating = False

With rg

    .AutoFilter field:=1, Criteria1:="=C:\*"
    .Offset(, -1).SpecialCells(xlCellTypeVisible).FormulaR1C1 = "=RC[1]"
    .AutoFilter

    .Offset(, -1).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    .Offset(, -1).Value = .Offset(, -1).Value


    .AutoFilter field:=1, Criteria1:="=C:\*"
    .SpecialCells(xlCellTypeVisible).Offset(, -1).ClearContents

End With

Set rg = Range(Cells(3, 2), Cells(ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row - 1, 2))

With rg
    .AutoFilter field:=1, Criteria1:="=~***"
    .SpecialCells(xlCellTypeVisible).Offset(, -1).ClearContents
    
    .AutoFilter
End With

Application.ScreenUpdating = True

End Sub

Open in new window


Thomas
0
 
LVL 39

Accepted Solution

by:
nutsch earned 1000 total points
ID: 35133812
Little cleaner update

Sub quickcleanup()
Dim rg As Range
Set rg = Range(Cells(3, 2), Cells(ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row - 1, 2))

Application.ScreenUpdating = False

With rg

    .AutoFilter field:=1, Criteria1:="=C:\*"
    .Offset(, -1).SpecialCells(xlCellTypeVisible).FormulaR1C1 = "=RC[1]"
    .AutoFilter

    .Offset(, -1).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    .Offset(, -1).Value = .Offset(, -1).Value

    .AutoFilter field:=1, Criteria1:="=C:\*"
    .SpecialCells(xlCellTypeVisible).Offset(, -1).ClearContents

    .AutoFilter field:=1, Criteria1:="=~***"
    .SpecialCells(xlCellTypeVisible).Offset(, -1).ClearContents
    
    .AutoFilter field:=1, Criteria1:="="
    .SpecialCells(xlCellTypeVisible).Offset(, -1).ClearContents
    
    .AutoFilter
End With

Application.ScreenUpdating = True

End Sub

Open in new window

0
 

Author Closing Comment

by:dzielinski
ID: 35134088
Clean and quick. You are awesome, nutsch. Thanks!
0
 
LVL 39

Expert Comment

by:nutsch
ID: 35134115
Glad to help. Thanks for your appreciation.

Thomas
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes how you can use Custom Document Properties to store settings and other information in your workbook so that they will be available the next time you open the workbook.
Q&A with Course Creator, Mark Lassoff, on the importance of HTML5 in the career of a modern-day developer.
This Micro Tutorial will demonstrate in Google Sheets how to use the HYPERLINK function to create live links inside your spreadsheet.
This Micro Tutorial will demonstrate in Microsoft Excel how to add style and sexy appeal to horizontal bar charts.

604 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question