Solved

Copy and Paste without the empty Cells Part 2

Posted on 2012-04-05
8
247 Views
Last Modified: 2012-04-05
I asked a question yesterday about copying non-blank cells from a single row which I manually highlight prior to running the macro. Kyle responded with the below macro:

Sub SelectNonBlanks()
Dim rngNoBlank As Range
Set rngNoBlank = Union(Selection.SpecialCells(xlCellTypeConstants), _
                        Selection.SpecialCells(xlCellTypeFormulas))
rngNoBlank.Select
End Sub

         
After reading last night, I modified it because I don't need the formulas


Sub SelectNonBlanks()
Dim rngNoBlank As Range
Set rngNoBlank = Selection.SpecialCells(xlCellTypeConstants)
rngNoBlank.Copy
End Sub

After trial and error I figured out works perfect in excel, but when I paste into the master calendar I am still having issues. So my thought process (which I am still very new at coding), is instead directly pasting into the master calendar, that I take my copied selection and paste it into a hidden worksheet. Now that it is pasted correctly, the marco would copy that selection and I could manually paste into the master calendar.
 Example
Sub SelectNonBlanks()
Dim rngNoBlank As Range
Set rngNoBlank = Selection.SpecialCells(xlCellTypeConstants)
rngNoBlank.Copy
' paste into a hidden worksheet which would include finding the last row, paste underneath it.
'The hidden worksheet could simply just "grow" and I won't need to worry about deleting previous copied rows.
'Then, copy the new selection.
End Sub

Then I could paste manually into the master calendar. I realize this might be a little sloppy, but it is what I could come up with limited knowledge. I would manually highlight the initial selection and it would always be just one row. There is only one person using this, so it does not have to be 100% bullet proof. If there is an error, it can easily be addressed.

Thanks
Brentexpert-exchange-copy-and-paste--.xls
0
Comment
Question by:bvanscoy678
  • 4
  • 4
8 Comments
 
LVL 12

Accepted Solution

by:
kgerb earned 500 total points
Comment Utility
Try this.  I think it will do what you want.

Kyle
Sub SelectNonBlanks()
Dim rngNoBlank As Range, sht As Worksheet, rCopyTo As Range
Set sht = Sheets("Hidden")
Set rngNoBlank = Selection.SpecialCells(xlCellTypeConstants)
Set rCopyTo = sht.Cells(Rows.Count, 1).End(xlUp).Offset(1)
rngNoBlank.Copy rCopyTo
sht.Range(rCopyTo, rCopyTo.End(xlToRight)).Copy
End Sub

Open in new window

Q-27663808-RevA.xls
0
 

Author Closing Comment

by:bvanscoy678
Comment Utility
Yes, that worked perfect. I'll go over it and break it down step by step to understand it, but it looks straightforward enough that I'll get it.

Thank you!
0
 
LVL 12

Expert Comment

by:kgerb
Comment Utility
You're welcome.  Glad to help.  If you need additional explanation let me know.
Kyle
0
 

Author Comment

by:bvanscoy678
Comment Utility
Last question, promise!

I wanted to autofit the columns. I tried this, but got an error.

Sub SelectNonBlanks()
Dim rngNoBlank As Range, sht As Worksheet, rCopyTo As Range
Set sht = Sheets("Hidden")
Set rngNoBlank = Selection.SpecialCells(xlCellTypeConstants)
Set rCopyTo = sht.Cells(Rows.Count, 1).End(xlUp).Offset(1)
rngNoBlank.Copy rCopyTo
ws.Columns.AutoFit
sht.Range(rCopyTo, rCopyTo.End(xlToRight)).Copy
End Sub
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 12

Expert Comment

by:kgerb
Comment Utility
Which sheet contains the columns you are trying to Autofit?  You are getting an error b/c you have not defined the variable ws to be a specific worksheet.  If you want to autofit the columns in the hidden worksheet then do...

sht.Columns.AutoFit

If you are trying to autofit the columns of the worksheet from which you are copying then do...

Activesheet.Columns.AutoFit

If you only want to autofit a few columns and not every column in the worksheet then do...

Activesheet.Columns("A:C").AutoFit

Make sense?

Kyle
0
 

Author Comment

by:bvanscoy678
Comment Utility
yes, the hidden worksheet. I get what you are saying.

Sub SelectNonBlanks()
Dim rngNoBlank As Range, sht As Worksheet, rCopyTo As Range
Set sht = Sheets("Hidden")
Set rngNoBlank = Selection.SpecialCells(xlCellTypeConstants)
Set rCopyTo = sht.Cells(Rows.Count, 1).End(xlUp).Offset(1)
rngNoBlank.Copy rCopyTo
ActiveSheet.Columns.AutoFit
sht.Range(rCopyTo, rCopyTo.End(xlToRight)).Copy
End Sub

let me try it.

thanks
0
 

Author Comment

by:bvanscoy678
Comment Utility
Okay. Got it. I want the hidden sheet, so
sht.Columns.AutoFit

Funny, I was trying the ActiveSheet.columns.AutoFit and thinking, I can't get it to work. It took me a minute to reread it and think, oh yeah, the hidden sheet is not active!

Thanks for you help and patience.
0
 
LVL 12

Expert Comment

by:kgerb
Comment Utility
You're welcome.  I'm glad you understand.  You can do many things to ranges not on the active worksheet.  In my classes I spend quite a bit of time explaining this concept.  It's hard for to people to understand sometimes, especially if they are familiar with code recorded by the macro recorder.  Since the recorder is just recording what you do, the code generated always selects an object and then performs an action on the selection.  In reality you can skip the middle man and perform the action directly on the object without ever selecting it.  It's much more efficient to to do it this way.

Kyle
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
SUM every other column 10 36
Slight Modification to Macro 2 14
TT Copy Formula 3 16
TT Status Chang 3 29
Introduction This Article briefly covers methods of calculating the NPV and IRR variants in Excel as well as the limitations in calculating and interpreting IRR results. Paraphrasing Richard Shockley, author of my favourite finance reference tex…
Convert between Excel file formats (.XLS, .XLSX, .XLSM) with/without macro option David Miller (dlmille) Intro Over this past Fall, I've had the opportunity to see several similar requests and have developed a couple related solutions associate…
The viewer will learn how to create two correlated normally distributed random variables in Excel, use a normal distribution to simulate the return on different levels of investment in each of the two funds over a period of ten years, and, create a …
This Micro Tutorial will demonstrate in Microsoft Excel how to add style and sexy appeal to horizontal bar charts.

771 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now