Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default comparing vertical list on one sheet to horizontal on another

Hi there,

I'm currently working on a macro that takes a list of values from one sheet
as a 'Columns to delete' list. I want to take this list, select a set of
headings on another sheet, and if the heading matches my 'columns to delete'
list, delete the column.

I know how to select the 'columns to delete' range, and the headings to
check range on the other sheet. I'm also aware that as I'll be deleting
columns as I go I'll need to parse them in reverse, starting on the right and
going left. What I can't quite figure out is how to put all that together
into code.

In looking things up I believe I can do something like a 'For i =
varTitles.Columns.Count to 1 Step -1' to go in reverse, I'm just not sure how
to compare the contents of both lists. Any ideas? Much appreciated!!

-Mike
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 414
Default comparing vertical list on one sheet to horizontal on another

Assuming your Columns to delete list is on Sheet1 in column A starting
at row 2 and the headings of the columns you want to delete are on
Sheet2 B1:M1 then try something like:

Sub DelCols()
Dim eRow As Long
Dim i As Long
Dim hdr As String
Dim header As Range
With Sheets("Sheet1")
eRow = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To eRow
hdr = .Cells(i, 1).Value
With Sheets("Sheet2").Range("B1:M1")
Set header = .Find(hdr)
End With
If Not header Is Nothing Then
header.EntireColumn.Delete
End If
Next i
End With
End Sub

Hope this helps
Rowan

Mike Mick wrote:
Hi there,

I'm currently working on a macro that takes a list of values from one sheet
as a 'Columns to delete' list. I want to take this list, select a set of
headings on another sheet, and if the heading matches my 'columns to delete'
list, delete the column.

I know how to select the 'columns to delete' range, and the headings to
check range on the other sheet. I'm also aware that as I'll be deleting
columns as I go I'll need to parse them in reverse, starting on the right and
going left. What I can't quite figure out is how to put all that together
into code.

In looking things up I believe I can do something like a 'For i =
varTitles.Columns.Count to 1 Step -1' to go in reverse, I'm just not sure how
to compare the contents of both lists. Any ideas? Much appreciated!!

-Mike

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3
Default comparing vertical list on one sheet to horizontal on another

Rowan,

First off, thanks for the quick response. I believe I understand your code
except for the first part in setting eRow and then looping 2 to eRow. Can
you explain what these lines are doing:

With Sheets("Sheet1")
eRow = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 to eRow
....

I think I get the rest... Thanks!
-Mike

"Rowan Drummond" wrote:

Assuming your Columns to delete list is on Sheet1 in column A starting
at row 2 and the headings of the columns you want to delete are on
Sheet2 B1:M1 then try something like:

Sub DelCols()
Dim eRow As Long
Dim i As Long
Dim hdr As String
Dim header As Range
With Sheets("Sheet1")
eRow = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To eRow
hdr = .Cells(i, 1).Value
With Sheets("Sheet2").Range("B1:M1")
Set header = .Find(hdr)
End With
If Not header Is Nothing Then
header.EntireColumn.Delete
End If
Next i
End With
End Sub

Hope this helps
Rowan

Mike Mick wrote:
Hi there,

I'm currently working on a macro that takes a list of values from one sheet
as a 'Columns to delete' list. I want to take this list, select a set of
headings on another sheet, and if the heading matches my 'columns to delete'
list, delete the column.

I know how to select the 'columns to delete' range, and the headings to
check range on the other sheet. I'm also aware that as I'll be deleting
columns as I go I'll need to parse them in reverse, starting on the right and
going left. What I can't quite figure out is how to put all that together
into code.

In looking things up I believe I can do something like a 'For i =
varTitles.Columns.Count to 1 Step -1' to go in reverse, I'm just not sure how
to compare the contents of both lists. Any ideas? Much appreciated!!

-Mike


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 414
Default comparing vertical list on one sheet to horizontal on another

Mike

eRow = .Cells(Rows.Count, 1).End(xlUp).Row
Sets the variable eRow by starting at the last cell in column A
(cells(rows.count,1) and then moving up until it finds a non empty cell.
Therefore eRow is set to the rownumber of the last used cell in Column
A. Another way of describing it is that eRow is set to the rownumber of
the cell that would be selected if you clicked in cell A65536 and then
hit Ctrl+UpArrow

For i = 2 to eRow
then loops through each row in column A starting in row 2 as I have
assumed headings in row 1.

Hope this makes sense
Rowan

Mike Mick wrote:
Rowan,

First off, thanks for the quick response. I believe I understand your code
except for the first part in setting eRow and then looping 2 to eRow. Can
you explain what these lines are doing:

With Sheets("Sheet1")
eRow = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 to eRow
...

I think I get the rest... Thanks!
-Mike

"Rowan Drummond" wrote:


Assuming your Columns to delete list is on Sheet1 in column A starting
at row 2 and the headings of the columns you want to delete are on
Sheet2 B1:M1 then try something like:

Sub DelCols()
Dim eRow As Long
Dim i As Long
Dim hdr As String
Dim header As Range
With Sheets("Sheet1")
eRow = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To eRow
hdr = .Cells(i, 1).Value
With Sheets("Sheet2").Range("B1:M1")
Set header = .Find(hdr)
End With
If Not header Is Nothing Then
header.EntireColumn.Delete
End If
Next i
End With
End Sub

Hope this helps
Rowan

Mike Mick wrote:

Hi there,

I'm currently working on a macro that takes a list of values from one sheet
as a 'Columns to delete' list. I want to take this list, select a set of
headings on another sheet, and if the heading matches my 'columns to delete'
list, delete the column.

I know how to select the 'columns to delete' range, and the headings to
check range on the other sheet. I'm also aware that as I'll be deleting
columns as I go I'll need to parse them in reverse, starting on the right and
going left. What I can't quite figure out is how to put all that together
into code.

In looking things up I believe I can do something like a 'For i =
varTitles.Columns.Count to 1 Step -1' to go in reverse, I'm just not sure how
to compare the contents of both lists. Any ideas? Much appreciated!!

-Mike


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3
Default comparing vertical list on one sheet to horizontal on another



"Rowan Drummond" wrote:

Mike

eRow = .Cells(Rows.Count, 1).End(xlUp).Row
Sets the variable eRow by starting at the last cell in column A
(cells(rows.count,1) and then moving up until it finds a non empty cell.
Therefore eRow is set to the rownumber of the last used cell in Column
A. Another way of describing it is that eRow is set to the rownumber of
the cell that would be selected if you clicked in cell A65536 and then
hit Ctrl+UpArrow

For i = 2 to eRow
then loops through each row in column A starting in row 2 as I have
assumed headings in row 1.

Hope this makes sense
Rowan

Mike Mick wrote:
Rowan,

First off, thanks for the quick response. I believe I understand your code
except for the first part in setting eRow and then looping 2 to eRow. Can
you explain what these lines are doing:

With Sheets("Sheet1")
eRow = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 to eRow
...

I think I get the rest... Thanks!
-Mike

"Rowan Drummond" wrote:


Assuming your Columns to delete list is on Sheet1 in column A starting
at row 2 and the headings of the columns you want to delete are on
Sheet2 B1:M1 then try something like:

Sub DelCols()
Dim eRow As Long
Dim i As Long
Dim hdr As String
Dim header As Range
With Sheets("Sheet1")
eRow = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To eRow
hdr = .Cells(i, 1).Value
With Sheets("Sheet2").Range("B1:M1")
Set header = .Find(hdr)
End With
If Not header Is Nothing Then
header.EntireColumn.Delete
End If
Next i
End With
End Sub

Hope this helps
Rowan

Mike Mick wrote:

Hi there,

I'm currently working on a macro that takes a list of values from one sheet
as a 'Columns to delete' list. I want to take this list, select a set of
headings on another sheet, and if the heading matches my 'columns to delete'
list, delete the column.

I know how to select the 'columns to delete' range, and the headings to
check range on the other sheet. I'm also aware that as I'll be deleting
columns as I go I'll need to parse them in reverse, starting on the right and
going left. What I can't quite figure out is how to put all that together
into code.

In looking things up I believe I can do something like a 'For i =
varTitles.Columns.Count to 1 Step -1' to go in reverse, I'm just not sure how
to compare the contents of both lists. Any ideas? Much appreciated!!

-Mike




Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to convert vertical blocked list to horizontal list? G Lykos Excel Worksheet Functions 8 May 17th 23 07:45 PM
copying formula for horizontal data to vertical in different sheet twototango Excel Worksheet Functions 11 August 30th 08 01:19 AM
change a vertical list of numbers to horizontal list from 1 cell caz Excel Discussion (Misc queries) 3 September 27th 06 12:11 PM
Display Excel list from vertical to horizontal Yan New Users to Excel 1 May 4th 06 09:47 PM
Converting a large vertical mailing list into a horizontal format Kevin VanHalen New Users to Excel 1 April 30th 05 12:23 PM


All times are GMT +1. The time now is 02:54 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"