ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Hide Columns (https://www.excelbanter.com/excel-programming/314409-hide-columns.html)

Momo

Hide Columns
 
Hi,

I have a hide rows macro that I got off here a few weeks back but i would
now like to change it so it can hide columns, I'm very programming illiterate
and would like soem help please, here is the hide rows macro

Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstrow = ActiveSheet.Cells(1).Row
Lastrow = ActiveSheet.Rows.Count + Firstrow - 1
With ActiveSheet
.DisplayPageBreaks = False
For Lrow = Lastrow To Firstrow Step -1

If .Cells(Lrow, "A").Value = "0" And _
.Cells(Lrow, "A").Value = "0" Then .Rows(Lrow).Hidden = False

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

if someone can change it i would be very greatfull, i have tried but can't
get it to work, many thanks,

Andy

Tom Ogilvy

Hide Columns
 
Dim Firstcol As Long
Dim Lastcol As Long
Dim Lcol As Long
Dim CalcMode As Long
Dim lRow as Long

' check in row 1
lRow = 1

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstcol = 1
Lastcol = cells(lRow,"IV").End(xltoLeft).Column
With ActiveSheet
.DisplayPageBreaks = False
For LCol = LastCol To FirstCol Step -1

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then
.Columns(LCol).Hidden = False
End If

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

End sub

this checks entries in Row 1, so if you want the hiding based on another
row, change the value of lRow from 1 to something else.

I left in the double check in the If statement in case you want to check for
two conditions.

--
Regards,
Tom Ogilvy

"Momo" wrote in message
...
Hi,

I have a hide rows macro that I got off here a few weeks back but i would
now like to change it so it can hide columns, I'm very programming

illiterate
and would like soem help please, here is the hide rows macro

Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstrow = ActiveSheet.Cells(1).Row
Lastrow = ActiveSheet.Rows.Count + Firstrow - 1
With ActiveSheet
.DisplayPageBreaks = False
For Lrow = Lastrow To Firstrow Step -1

If .Cells(Lrow, "A").Value = "0" And _
.Cells(Lrow, "A").Value = "0" Then .Rows(Lrow).Hidden =

False

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

if someone can change it i would be very greatfull, i have tried but can't
get it to work, many thanks,

Andy




Momo

Hide Columns
 
hi thanks,

I'm not sure if it works but thus far I get the following in red with a
compile error message?

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then

"Tom Ogilvy" wrote:

Dim Firstcol As Long
Dim Lastcol As Long
Dim Lcol As Long
Dim CalcMode As Long
Dim lRow as Long

' check in row 1
lRow = 1

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstcol = 1
Lastcol = cells(lRow,"IV").End(xltoLeft).Column
With ActiveSheet
.DisplayPageBreaks = False
For LCol = LastCol To FirstCol Step -1

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then
.Columns(LCol).Hidden = False
End If

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

End sub

this checks entries in Row 1, so if you want the hiding based on another
row, change the value of lRow from 1 to something else.

I left in the double check in the If statement in case you want to check for
two conditions.

--
Regards,
Tom Ogilvy

"Momo" wrote in message
...
Hi,

I have a hide rows macro that I got off here a few weeks back but i would
now like to change it so it can hide columns, I'm very programming

illiterate
and would like soem help please, here is the hide rows macro

Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstrow = ActiveSheet.Cells(1).Row
Lastrow = ActiveSheet.Rows.Count + Firstrow - 1
With ActiveSheet
.DisplayPageBreaks = False
For Lrow = Lastrow To Firstrow Step -1

If .Cells(Lrow, "A").Value = "0" And _
.Cells(Lrow, "A").Value = "0" Then .Rows(Lrow).Hidden =

False

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

if someone can change it i would be very greatfull, i have tried but can't
get it to work, many thanks,

Andy





Tom Ogilvy

Hide Columns
 
If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then

should be

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol).Value = "0" Then

Remove the extra double quote which didn't get deleted when I edited the
code.


I have tested this version and it worked for me: (I also changed .Hidden =
False to .Hidden = True)

Sub Macro1()
Dim Firstcol As Long
Dim Lastcol As Long
Dim Lcol As Long
Dim CalcMode As Long
Dim lRow As Long

' check in row 1
lRow = 1

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstcol = 1
Lastcol = Cells(lRow, "IV").End(xlToLeft).Column
With ActiveSheet
.DisplayPageBreaks = False
For Lcol = Lastcol To Firstcol Step -1

If .Cells(lRow, Lcol).Value = "0" And _
.Cells(lRow, Lcol).Value = "0" Then
Debug.Print Lcol
.Columns(Lcol).Hidden = True
End If

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

End Sub

--
Regards,
Tom Ogilvy


"Momo" wrote in message
...
hi thanks,

I'm not sure if it works but thus far I get the following in red with a
compile error message?

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then

"Tom Ogilvy" wrote:

Dim Firstcol As Long
Dim Lastcol As Long
Dim Lcol As Long
Dim CalcMode As Long
Dim lRow as Long

' check in row 1
lRow = 1

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstcol = 1
Lastcol = cells(lRow,"IV").End(xltoLeft).Column
With ActiveSheet
.DisplayPageBreaks = False
For LCol = LastCol To FirstCol Step -1

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then
.Columns(LCol).Hidden = False
End If

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

End sub

this checks entries in Row 1, so if you want the hiding based on another
row, change the value of lRow from 1 to something else.

I left in the double check in the If statement in case you want to check

for
two conditions.

--
Regards,
Tom Ogilvy

"Momo" wrote in message
...
Hi,

I have a hide rows macro that I got off here a few weeks back but i

would
now like to change it so it can hide columns, I'm very programming

illiterate
and would like soem help please, here is the hide rows macro

Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstrow = ActiveSheet.Cells(1).Row
Lastrow = ActiveSheet.Rows.Count + Firstrow - 1
With ActiveSheet
.DisplayPageBreaks = False
For Lrow = Lastrow To Firstrow Step -1

If .Cells(Lrow, "A").Value = "0" And _
.Cells(Lrow, "A").Value = "0" Then .Rows(Lrow).Hidden =

False

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

if someone can change it i would be very greatfull, i have tried but

can't
get it to work, many thanks,

Andy







Dave Peterson[_3_]

Hide Columns
 
Did you mean this?

If .Cells(lRow, Lcol).Value = "0" And _
.Cells(lRow, Lcol).Value = "0" Then

or this?

If .Cells(lRow, Lcol).Value = "0" And _
.Cells(lRow, Lcol).Value = 0 Then

They looked strikingly similar <bg.



Tom Ogilvy wrote:

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then

should be

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol).Value = "0" Then

Remove the extra double quote which didn't get deleted when I edited the
code.

I have tested this version and it worked for me: (I also changed .Hidden =
False to .Hidden = True)

Sub Macro1()
Dim Firstcol As Long
Dim Lastcol As Long
Dim Lcol As Long
Dim CalcMode As Long
Dim lRow As Long

' check in row 1
lRow = 1

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstcol = 1
Lastcol = Cells(lRow, "IV").End(xlToLeft).Column
With ActiveSheet
.DisplayPageBreaks = False
For Lcol = Lastcol To Firstcol Step -1

If .Cells(lRow, Lcol).Value = "0" And _
.Cells(lRow, Lcol).Value = "0" Then
Debug.Print Lcol
.Columns(Lcol).Hidden = True
End If

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

End Sub

--
Regards,
Tom Ogilvy

"Momo" wrote in message
...
hi thanks,

I'm not sure if it works but thus far I get the following in red with a
compile error message?

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then

"Tom Ogilvy" wrote:

Dim Firstcol As Long
Dim Lastcol As Long
Dim Lcol As Long
Dim CalcMode As Long
Dim lRow as Long

' check in row 1
lRow = 1

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstcol = 1
Lastcol = cells(lRow,"IV").End(xltoLeft).Column
With ActiveSheet
.DisplayPageBreaks = False
For LCol = LastCol To FirstCol Step -1

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then
.Columns(LCol).Hidden = False
End If

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

End sub

this checks entries in Row 1, so if you want the hiding based on another
row, change the value of lRow from 1 to something else.

I left in the double check in the If statement in case you want to check

for
two conditions.

--
Regards,
Tom Ogilvy

"Momo" wrote in message
...
Hi,

I have a hide rows macro that I got off here a few weeks back but i

would
now like to change it so it can hide columns, I'm very programming
illiterate
and would like soem help please, here is the hide rows macro

Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstrow = ActiveSheet.Cells(1).Row
Lastrow = ActiveSheet.Rows.Count + Firstrow - 1
With ActiveSheet
.DisplayPageBreaks = False
For Lrow = Lastrow To Firstrow Step -1

If .Cells(Lrow, "A").Value = "0" And _
.Cells(Lrow, "A").Value = "0" Then .Rows(Lrow).Hidden =
False

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

if someone can change it i would be very greatfull, i have tried but

can't
get it to work, many thanks,

Andy




--

Dave Peterson


Tom Ogilvy

Hide Columns
 
I meant the first which should look strikingly identical. That is the OP's
code as far as what is being tested - and I so stated in my first post that
I left that in in case he/she had some reason to have duplicate tests.
(placeholder or whatever).

Unless you are seeing something and I am missing it. (but testing "0" or 0
with an and ?? although a true zero would pass both while a blank or "0"
would not - at least in xl97)

--
Regards,
Tom Ogilvy


"Dave Peterson" wrote in message
...
Did you mean this?

If .Cells(lRow, Lcol).Value = "0" And _
.Cells(lRow, Lcol).Value = "0" Then

or this?

If .Cells(lRow, Lcol).Value = "0" And _
.Cells(lRow, Lcol).Value = 0 Then

They looked strikingly similar <bg.



Tom Ogilvy wrote:

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then

should be

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol).Value = "0" Then

Remove the extra double quote which didn't get deleted when I edited the
code.

I have tested this version and it worked for me: (I also changed

..Hidden =
False to .Hidden = True)

Sub Macro1()
Dim Firstcol As Long
Dim Lastcol As Long
Dim Lcol As Long
Dim CalcMode As Long
Dim lRow As Long

' check in row 1
lRow = 1

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstcol = 1
Lastcol = Cells(lRow, "IV").End(xlToLeft).Column
With ActiveSheet
.DisplayPageBreaks = False
For Lcol = Lastcol To Firstcol Step -1

If .Cells(lRow, Lcol).Value = "0" And _
.Cells(lRow, Lcol).Value = "0" Then
Debug.Print Lcol
.Columns(Lcol).Hidden = True
End If

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

End Sub

--
Regards,
Tom Ogilvy

"Momo" wrote in message
...
hi thanks,

I'm not sure if it works but thus far I get the following in red with

a
compile error message?

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then

"Tom Ogilvy" wrote:

Dim Firstcol As Long
Dim Lastcol As Long
Dim Lcol As Long
Dim CalcMode As Long
Dim lRow as Long

' check in row 1
lRow = 1

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstcol = 1
Lastcol = cells(lRow,"IV").End(xltoLeft).Column
With ActiveSheet
.DisplayPageBreaks = False
For LCol = LastCol To FirstCol Step -1

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then
.Columns(LCol).Hidden = False
End If

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

End sub

this checks entries in Row 1, so if you want the hiding based on

another
row, change the value of lRow from 1 to something else.

I left in the double check in the If statement in case you want to

check
for
two conditions.

--
Regards,
Tom Ogilvy

"Momo" wrote in message
...
Hi,

I have a hide rows macro that I got off here a few weeks back but

i
would
now like to change it so it can hide columns, I'm very programming
illiterate
and would like soem help please, here is the hide rows macro

Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstrow = ActiveSheet.Cells(1).Row
Lastrow = ActiveSheet.Rows.Count + Firstrow - 1
With ActiveSheet
.DisplayPageBreaks = False
For Lrow = Lastrow To Firstrow Step -1

If .Cells(Lrow, "A").Value = "0" And _
.Cells(Lrow, "A").Value = "0" Then

..Rows(Lrow).Hidden =
False

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

if someone can change it i would be very greatfull, i have tried

but
can't
get it to work, many thanks,

Andy




--

Dave Peterson




Dave Peterson[_3_]

Hide Columns
 
Oops. I didn't read the entire thread--or even the portion quoted in your test.


Tom Ogilvy wrote:

I meant the first which should look strikingly identical. That is the OP's
code as far as what is being tested - and I so stated in my first post that
I left that in in case he/she had some reason to have duplicate tests.
(placeholder or whatever).

Unless you are seeing something and I am missing it. (but testing "0" or 0
with an and ?? although a true zero would pass both while a blank or "0"
would not - at least in xl97)

--
Regards,
Tom Ogilvy

"Dave Peterson" wrote in message
...
Did you mean this?

If .Cells(lRow, Lcol).Value = "0" And _
.Cells(lRow, Lcol).Value = "0" Then

or this?

If .Cells(lRow, Lcol).Value = "0" And _
.Cells(lRow, Lcol).Value = 0 Then

They looked strikingly similar <bg.



Tom Ogilvy wrote:

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then

should be

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol).Value = "0" Then

Remove the extra double quote which didn't get deleted when I edited the
code.

I have tested this version and it worked for me: (I also changed

.Hidden =
False to .Hidden = True)

Sub Macro1()
Dim Firstcol As Long
Dim Lastcol As Long
Dim Lcol As Long
Dim CalcMode As Long
Dim lRow As Long

' check in row 1
lRow = 1

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstcol = 1
Lastcol = Cells(lRow, "IV").End(xlToLeft).Column
With ActiveSheet
.DisplayPageBreaks = False
For Lcol = Lastcol To Firstcol Step -1

If .Cells(lRow, Lcol).Value = "0" And _
.Cells(lRow, Lcol).Value = "0" Then
Debug.Print Lcol
.Columns(Lcol).Hidden = True
End If

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

End Sub

--
Regards,
Tom Ogilvy

"Momo" wrote in message
...
hi thanks,

I'm not sure if it works but thus far I get the following in red with

a
compile error message?

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then

"Tom Ogilvy" wrote:

Dim Firstcol As Long
Dim Lastcol As Long
Dim Lcol As Long
Dim CalcMode As Long
Dim lRow as Long

' check in row 1
lRow = 1

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstcol = 1
Lastcol = cells(lRow,"IV").End(xltoLeft).Column
With ActiveSheet
.DisplayPageBreaks = False
For LCol = LastCol To FirstCol Step -1

If .Cells(lRow,LCol).Value = "0" And _
.Cells(lRow,LCol").Value = "0" Then
.Columns(LCol).Hidden = False
End If

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

End sub

this checks entries in Row 1, so if you want the hiding based on

another
row, change the value of lRow from 1 to something else.

I left in the double check in the If statement in case you want to

check
for
two conditions.

--
Regards,
Tom Ogilvy

"Momo" wrote in message
...
Hi,

I have a hide rows macro that I got off here a few weeks back but

i
would
now like to change it so it can hide columns, I'm very programming
illiterate
and would like soem help please, here is the hide rows macro

Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long

With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

Firstrow = ActiveSheet.Cells(1).Row
Lastrow = ActiveSheet.Rows.Count + Firstrow - 1
With ActiveSheet
.DisplayPageBreaks = False
For Lrow = Lastrow To Firstrow Step -1

If .Cells(Lrow, "A").Value = "0" And _
.Cells(Lrow, "A").Value = "0" Then

.Rows(Lrow).Hidden =
False

Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With

if someone can change it i would be very greatfull, i have tried

but
can't
get it to work, many thanks,

Andy




--

Dave Peterson


--

Dave Peterson



All times are GMT +1. The time now is 07:43 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com