#1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default VBA Excel

Hello all,

I'm new to this vba excel. I was wondering if anyone can give me some
insight on how i can go about in doing this.

I have an excel workbook that contains 2 spreadsheet. Sheet1 contains
data to use for sheet2. Sheet1 will have start date, end date, name,
country. Sheet2 contains a spreadsheet fill with different colors
base on the date range that is given. Right now it's manually being
done. Trying to figure out if there was a way for me to take the
start date and end date valuse and fill sheet2 with the respective
color for that range? Any advice will be appreciated. Thanks again.

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 638
Default VBA Excel

Have you looked into Conditional Formatting?
wrote:
Hello all,

I'm new to this vba excel. I was wondering if anyone can give me some
insight on how i can go about in doing this.

I have an excel workbook that contains 2 spreadsheet. Sheet1 contains
data to use for sheet2. Sheet1 will have start date, end date, name,
country. Sheet2 contains a spreadsheet fill with different colors
base on the date range that is given. Right now it's manually being
done. Trying to figure out if there was a way for me to take the
start date and end date valuse and fill sheet2 with the respective
color for that range? Any advice will be appreciated. Thanks again.


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 16
Default VBA Excel

On Sep 7, 12:05 pm, JW wrote:
Have you looked into Conditional Formatting?



wrote:
Hello all,


I'm new to this vba excel. I was wondering if anyone can give me some
insight on how i can go about in doing this.


I have an excel workbook that contains 2 spreadsheet. Sheet1 contains
data to use for sheet2. Sheet1 will have start date, end date, name,
country. Sheet2 contains a spreadsheet fill with different colors
base on the date range that is given. Right now it's manually being
done. Trying to figure out if there was a way for me to take the
start date and end date valuse and fill sheet2 with the respective
color for that range? Any advice will be appreciated. Thanks again.- Hide quoted text -


- Show quoted text -


Yeah i have, but i'm trying to put the code in a module and run a
process. Any kind of start will help or any samples where i can
modified the code will be great. thanks for the reponse JW

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,124
Default VBA Excel

Try this from your sheet where k1 is the start and L1 is the stop

Sub colorrng()
With Sheets("sheet9").Columns(1)
lr = .Cells(Rows.Count, 1).End(xlUp).Row
fd = .Find(Range("k1"), lookat:=xlWhole).Row
ed = .Find(Range("L1")).Row
.Range(.Cells(1, 1), .Cells(lr, 5)).Interior.ColorIndex = 0
.Range(.Cells(fd, 1), .Cells(ed, 5)).Interior.ColorIndex = 6
End With
End Sub

--
Don Guillett
Microsoft MVP Excel
SalesAid Software

wrote in message
oups.com...
Hello all,

I'm new to this vba excel. I was wondering if anyone can give me some
insight on how i can go about in doing this.

I have an excel workbook that contains 2 spreadsheet. Sheet1 contains
data to use for sheet2. Sheet1 will have start date, end date, name,
country. Sheet2 contains a spreadsheet fill with different colors
base on the date range that is given. Right now it's manually being
done. Trying to figure out if there was a way for me to take the
start date and end date valuse and fill sheet2 with the respective
color for that range? Any advice will be appreciated. Thanks again.


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 16
Default VBA Excel

On Sep 7, 1:23 pm, "Don Guillett" wrote:
Try this from your sheet where k1 is the start and L1 is the stop

Sub colorrng()
With Sheets("sheet9").Columns(1)
lr = .Cells(Rows.Count, 1).End(xlUp).Row
fd = .Find(Range("k1"), lookat:=xlWhole).Row
ed = .Find(Range("L1")).Row
.Range(.Cells(1, 1), .Cells(lr, 5)).Interior.ColorIndex = 0
.Range(.Cells(fd, 1), .Cells(ed, 5)).Interior.ColorIndex = 6
End With
End Sub

--
Don Guillett
Microsoft MVP Excel
SalesAid Software
wrote in message

oups.com...



Hello all,


I'm new to this vba excel. I was wondering if anyone can give me some
insight on how i can go about in doing this.


I have an excel workbook that contains 2 spreadsheet. Sheet1 contains
data to use for sheet2. Sheet1 will have start date, end date, name,
country. Sheet2 contains a spreadsheet fill with different colors
base on the date range that is given. Right now it's manually being
done. Trying to figure out if there was a way for me to take the
start date and end date valuse and fill sheet2 with the respective
color for that range? Any advice will be appreciated. Thanks again.- Hide quoted text -


- Show quoted text -


Hey don,

Do you know how i would do it for a date range from sheet 1.

i.e. sheet 1 has a date range in column 1 from 8/25/2007-09/01/2007
and in column 2 has a different data, and i want to fill sheet 2 with
a certain color if say column 2 contains color code blue and
respectively follow by date range? does that make sense thanks.



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default VBA Excel

Are you trying to create a GANTT type layout on sheet2?

Do you have sequential dates at the top of sheet2 in row 1?

How do the dates at the top relate to the date ranges - are the dates at the
top sequential days? the range 1/1/2007 to 1/7/2007 would be filled in from
cells B1 to H1 for example.

Sub BuildColors()
Dim sh As Worksheet, r As Range
Dim rng As Range, cell As Range
Dim dt1 As Date, dt2 As Date
Dim res, res1

Set sh = Worksheets("Sheet2")
sh.Cells.Interior.ColorIndex = xlNone
r = sh.Range(sh.Range("A1"), sh.Range("B1").End(xlToRight))
With Worksheets("sheet1")
Set rng = .Range(.Range("A2"), .Range("A2").End(xlDown))
For Each cell In rng
dt1 = .Cells(cell.Row, 1)
dt2 = .Cells(cell.Row, 2)
res = Application.Match(CLng(dt1), r, 0)
res1 = Application.Match(CLng(dt2), r, 0)
If Not IsError(res) And Not IsError(res1) Then
sh.Range(sh.Cells(cell.Row, res), sh.Cells(cell.Row, res1)) _
.Interior.ColorIndex = 5
sh.Cells(cell.Row, 1).Value = cell.Offset(0, 2).Value _
& " (" & cell.Offset(0, 3).Value & ")"
End If
Next cell
End With

End Sub

If your sheet is set up as I describe and this is what you are trying to do
then
Test it on a copy of your workbook.

--
Regards,
Tom Ogilvy


" wrote:

Hello all,

I'm new to this vba excel. I was wondering if anyone can give me some
insight on how i can go about in doing this.

I have an excel workbook that contains 2 spreadsheet. Sheet1 contains
data to use for sheet2. Sheet1 will have start date, end date, name,
country. Sheet2 contains a spreadsheet fill with different colors
base on the date range that is given. Right now it's manually being
done. Trying to figure out if there was a way for me to take the
start date and end date valuse and fill sheet2 with the respective
color for that range? Any advice will be appreciated. Thanks again.


  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 16
Default VBA Excel

On Sep 7, 2:24 pm, Tom Ogilvy
wrote:
Are you trying to create a GANTT type layout on sheet2?

Do you have sequential dates at the top of sheet2 in row 1?

How do the dates at the top relate to the date ranges - are the dates at the
top sequential days? the range 1/1/2007 to 1/7/2007 would be filled in from
cells B1 to H1 for example.

Sub BuildColors()
Dim sh As Worksheet, r As Range
Dim rng As Range, cell As Range
Dim dt1 As Date, dt2 As Date
Dim res, res1

Set sh = Worksheets("Sheet2")
sh.Cells.Interior.ColorIndex = xlNone
r = sh.Range(sh.Range("A1"), sh.Range("B1").End(xlToRight))
With Worksheets("sheet1")
Set rng = .Range(.Range("A2"), .Range("A2").End(xlDown))
For Each cell In rng
dt1 = .Cells(cell.Row, 1)
dt2 = .Cells(cell.Row, 2)
res = Application.Match(CLng(dt1), r, 0)
res1 = Application.Match(CLng(dt2), r, 0)
If Not IsError(res) And Not IsError(res1) Then
sh.Range(sh.Cells(cell.Row, res), sh.Cells(cell.Row, res1)) _
.Interior.ColorIndex = 5
sh.Cells(cell.Row, 1).Value = cell.Offset(0, 2).Value _
& " (" & cell.Offset(0, 3).Value & ")"
End If
Next cell
End With

End Sub

If your sheet is set up as I describe and this is what you are trying to do
then
Test it on a copy of your workbook.

--
Regards,
Tom Ogilvy



" wrote:
Hello all,


I'm new to this vba excel. I was wondering if anyone can give me some
insight on how i can go about in doing this.


I have an excel workbook that contains 2 spreadsheet. Sheet1 contains
data to use for sheet2. Sheet1 will have start date, end date, name,
country. Sheet2 contains a spreadsheet fill with different colors
base on the date range that is given. Right now it's manually being
done. Trying to figure out if there was a way for me to take the
start date and end date valuse and fill sheet2 with the respective
color for that range? Any advice will be appreciated. Thanks again.- Hide quoted text -


- Show quoted text -


Hello tom,

I just try testing the code you have and i'm getting a run time error
91.

r = sh.range(sh.range("A1"), sh.range("B1").End(xlToRight))

That's the code that i'm getting the error at. Can you explain to me
the reason for the error just so i know for future reference. Thanks.

I enter in some test data in sheet 1.

Column A - Start date 01/01/2007
Column B - End Date 01/07/2007
Column C - Test Name
Column D - Test Name2
Column E - Color Phases

Sheet 2 is already set up with certain colors that have been filled in
manually.

let me see if i can clear this up a bit more. So what sheet 2 color
should fill would be say from 01/01/2007 - 01/07/2007 and the color
phase is blue from sheet 1. I guess there should be a range fill for
the first 5 days?







  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default VBA Excel

A typo.

set sh = worksheets("Sheet2")
set r = sh.range(sh.range("A1"), sh.range("B1").End(xlToRight))
? r.address
$A$1:$F$1


and to get the colorindex (a number between 1 and 56 inclusive) from column E

Sub BuildColors()
Dim sh As Worksheet, r As Range
Dim rng As Range, cell As Range
Dim dt1 As Date, dt2 As Date
Dim res, res1

Set sh = Worksheets("Sheet2")
' this line will clear colors in sheet2 so I commented it out.
'sh.Cells.Interior.ColorIndex = xlNone
set r = sh.Range(sh.Range("A1"), sh.Range("B1").End(xlToRight))
With Worksheets("sheet1")
Set rng = .Range(.Range("A2"), .Range("A2").End(xlDown))
For Each cell In rng
dt1 = .Cells(cell.Row, 1)
dt2 = .Cells(cell.Row, 2)
res = Application.Match(CLng(dt1), r, 0)
res1 = Application.Match(CLng(dt2), r, 0)
If Not IsError(res) And Not IsError(res1) Then
sh.Range(sh.Cells(cell.Row, res), sh.Cells(cell.Row, res1)) _
.Interior.ColorIndex = cell.offset(0,4).Value
sh.Cells(cell.Row, 1).Value = cell.Offset(0, 2).Value _
& " (" & cell.Offset(0, 3).Value & ")"
End If
Next cell
End With

End Sub

Again, this is a guess at what you want.

--
Regards,
Tom Ogilvy


" wrote:

On Sep 7, 2:24 pm, Tom Ogilvy
wrote:
Are you trying to create a GANTT type layout on sheet2?

Do you have sequential dates at the top of sheet2 in row 1?

How do the dates at the top relate to the date ranges - are the dates at the
top sequential days? the range 1/1/2007 to 1/7/2007 would be filled in from
cells B1 to H1 for example.

Sub BuildColors()
Dim sh As Worksheet, r As Range
Dim rng As Range, cell As Range
Dim dt1 As Date, dt2 As Date
Dim res, res1

Set sh = Worksheets("Sheet2")
sh.Cells.Interior.ColorIndex = xlNone
r = sh.Range(sh.Range("A1"), sh.Range("B1").End(xlToRight))
With Worksheets("sheet1")
Set rng = .Range(.Range("A2"), .Range("A2").End(xlDown))
For Each cell In rng
dt1 = .Cells(cell.Row, 1)
dt2 = .Cells(cell.Row, 2)
res = Application.Match(CLng(dt1), r, 0)
res1 = Application.Match(CLng(dt2), r, 0)
If Not IsError(res) And Not IsError(res1) Then
sh.Range(sh.Cells(cell.Row, res), sh.Cells(cell.Row, res1)) _
.Interior.ColorIndex = 5
sh.Cells(cell.Row, 1).Value = cell.Offset(0, 2).Value _
& " (" & cell.Offset(0, 3).Value & ")"
End If
Next cell
End With

End Sub

If your sheet is set up as I describe and this is what you are trying to do
then
Test it on a copy of your workbook.

--
Regards,
Tom Ogilvy



" wrote:
Hello all,


I'm new to this vba excel. I was wondering if anyone can give me some
insight on how i can go about in doing this.


I have an excel workbook that contains 2 spreadsheet. Sheet1 contains
data to use for sheet2. Sheet1 will have start date, end date, name,
country. Sheet2 contains a spreadsheet fill with different colors
base on the date range that is given. Right now it's manually being
done. Trying to figure out if there was a way for me to take the
start date and end date valuse and fill sheet2 with the respective
color for that range? Any advice will be appreciated. Thanks again.- Hide quoted text -


- Show quoted text -


Hello tom,

I just try testing the code you have and i'm getting a run time error
91.

r = sh.range(sh.range("A1"), sh.range("B1").End(xlToRight))

That's the code that i'm getting the error at. Can you explain to me
the reason for the error just so i know for future reference. Thanks.

I enter in some test data in sheet 1.

Column A - Start date 01/01/2007
Column B - End Date 01/07/2007
Column C - Test Name
Column D - Test Name2
Column E - Color Phases

Sheet 2 is already set up with certain colors that have been filled in
manually.

let me see if i can clear this up a bit more. So what sheet 2 color
should fill would be say from 01/01/2007 - 01/07/2007 and the color
phase is blue from sheet 1. I guess there should be a range fill for
the first 5 days?








  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 16
Default VBA Excel

On Sep 7, 3:16 pm, Tom Ogilvy
wrote:
A typo.

set sh = worksheets("Sheet2")
set r = sh.range(sh.range("A1"), sh.range("B1").End(xlToRight))
? r.address
$A$1:$F$1

and to get the colorindex (a number between 1 and 56 inclusive) from column E

Sub BuildColors()
Dim sh As Worksheet, r As Range
Dim rng As Range, cell As Range
Dim dt1 As Date, dt2 As Date
Dim res, res1

Set sh = Worksheets("Sheet2")
' this line will clear colors in sheet2 so I commented it out.
'sh.Cells.Interior.ColorIndex = xlNone
set r = sh.Range(sh.Range("A1"), sh.Range("B1").End(xlToRight))
With Worksheets("sheet1")
Set rng = .Range(.Range("A2"), .Range("A2").End(xlDown))
For Each cell In rng
dt1 = .Cells(cell.Row, 1)
dt2 = .Cells(cell.Row, 2)
res = Application.Match(CLng(dt1), r, 0)
res1 = Application.Match(CLng(dt2), r, 0)
If Not IsError(res) And Not IsError(res1) Then
sh.Range(sh.Cells(cell.Row, res), sh.Cells(cell.Row, res1)) _
.Interior.ColorIndex = cell.offset(0,4).Value
sh.Cells(cell.Row, 1).Value = cell.Offset(0, 2).Value _
& " (" & cell.Offset(0, 3).Value & ")"
End If
Next cell
End With

End Sub

Again, this is a guess at what you want.

--
Regards,
Tom Ogilvy



" wrote:
On Sep 7, 2:24 pm, Tom Ogilvy
wrote:
Are you trying to create a GANTT type layout on sheet2?


Do you have sequential dates at the top of sheet2 in row 1?


How do the dates at the top relate to the date ranges - are the dates at the
top sequential days? the range 1/1/2007 to 1/7/2007 would be filled in from
cells B1 to H1 for example.


Sub BuildColors()
Dim sh As Worksheet, r As Range
Dim rng As Range, cell As Range
Dim dt1 As Date, dt2 As Date
Dim res, res1


Set sh = Worksheets("Sheet2")
sh.Cells.Interior.ColorIndex = xlNone
r = sh.Range(sh.Range("A1"), sh.Range("B1").End(xlToRight))
With Worksheets("sheet1")
Set rng = .Range(.Range("A2"), .Range("A2").End(xlDown))
For Each cell In rng
dt1 = .Cells(cell.Row, 1)
dt2 = .Cells(cell.Row, 2)
res = Application.Match(CLng(dt1), r, 0)
res1 = Application.Match(CLng(dt2), r, 0)
If Not IsError(res) And Not IsError(res1) Then
sh.Range(sh.Cells(cell.Row, res), sh.Cells(cell.Row, res1)) _
.Interior.ColorIndex = 5
sh.Cells(cell.Row, 1).Value = cell.Offset(0, 2).Value _
& " (" & cell.Offset(0, 3).Value & ")"
End If
Next cell
End With


End Sub


If your sheet is set up as I describe and this is what you are trying to do
then
Test it on a copy of your workbook.


--
Regards,
Tom Ogilvy


" wrote:
Hello all,


I'm new to this vba excel. I was wondering if anyone can give me some
insight on how i can go about in doing this.


I have an excel workbook that contains 2 spreadsheet. Sheet1 contains
data to use for sheet2. Sheet1 will have start date, end date, name,
country. Sheet2 contains a spreadsheet fill with different colors
base on the date range that is given. Right now it's manually being
done. Trying to figure out if there was a way for me to take the
start date and end date valuse and fill sheet2 with the respective
color for that range? Any advice will be appreciated. Thanks again.- Hide quoted text -


- Show quoted text -


Hello tom,


I just try testing the code you have and i'm getting a run time error
91.


r = sh.range(sh.range("A1"), sh.range("B1").End(xlToRight))


That's the code that i'm getting the error at. Can you explain to me
the reason for the error just so i know for future reference. Thanks.


I enter in some test data in sheet 1.


Column A - Start date 01/01/2007
Column B - End Date 01/07/2007
Column C - Test Name
Column D - Test Name2
Column E - Color Phases


Sheet 2 is already set up with certain colors that have been filled in
manually.


let me see if i can clear this up a bit more. So what sheet 2 color
should fill would be say from 01/01/2007 - 01/07/2007 and the color
phase is blue from sheet 1. I guess there should be a range fill for
the first 5 days?- Hide quoted text -


- Show quoted text -


Thanks tom, here's another question if you can help me with. sorry
for the trouble. When the code DIM dt1 as date, i ran it through
debug and it only shows 12:00am instead of the date value, why does it
do that? I think that's why i'm also getting a run-time error of 5.
Invalid procedure call or argument. Is that true?

  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 16
Default VBA Excel

On Sep 7, 3:16 pm, Tom Ogilvy
wrote:
A typo.

set sh = worksheets("Sheet2")
set r = sh.range(sh.range("A1"), sh.range("B1").End(xlToRight))
? r.address
$A$1:$F$1

and to get the colorindex (a number between 1 and 56 inclusive) from column E

Sub BuildColors()
Dim sh As Worksheet, r As Range
Dim rng As Range, cell As Range
Dim dt1 As Date, dt2 As Date
Dim res, res1

Set sh = Worksheets("Sheet2")
' this line will clear colors in sheet2 so I commented it out.
'sh.Cells.Interior.ColorIndex = xlNone
set r = sh.Range(sh.Range("A1"), sh.Range("B1").End(xlToRight))
With Worksheets("sheet1")
Set rng = .Range(.Range("A2"), .Range("A2").End(xlDown))
For Each cell In rng
dt1 = .Cells(cell.Row, 1)
dt2 = .Cells(cell.Row, 2)
res = Application.Match(CLng(dt1), r, 0)
res1 = Application.Match(CLng(dt2), r, 0)
If Not IsError(res) And Not IsError(res1) Then
sh.Range(sh.Cells(cell.Row, res), sh.Cells(cell.Row, res1)) _
.Interior.ColorIndex = cell.offset(0,4).Value
sh.Cells(cell.Row, 1).Value = cell.Offset(0, 2).Value _
& " (" & cell.Offset(0, 3).Value & ")"
End If
Next cell
End With

End Sub

Again, this is a guess at what you want.

--
Regards,
Tom Ogilvy



" wrote:
On Sep 7, 2:24 pm, Tom Ogilvy
wrote:
Are you trying to create a GANTT type layout on sheet2?


Do you have sequential dates at the top of sheet2 in row 1?


How do the dates at the top relate to the date ranges - are the dates at the
top sequential days? the range 1/1/2007 to 1/7/2007 would be filled in from
cells B1 to H1 for example.


Sub BuildColors()
Dim sh As Worksheet, r As Range
Dim rng As Range, cell As Range
Dim dt1 As Date, dt2 As Date
Dim res, res1


Set sh = Worksheets("Sheet2")
sh.Cells.Interior.ColorIndex = xlNone
r = sh.Range(sh.Range("A1"), sh.Range("B1").End(xlToRight))
With Worksheets("sheet1")
Set rng = .Range(.Range("A2"), .Range("A2").End(xlDown))
For Each cell In rng
dt1 = .Cells(cell.Row, 1)
dt2 = .Cells(cell.Row, 2)
res = Application.Match(CLng(dt1), r, 0)
res1 = Application.Match(CLng(dt2), r, 0)
If Not IsError(res) And Not IsError(res1) Then
sh.Range(sh.Cells(cell.Row, res), sh.Cells(cell.Row, res1)) _
.Interior.ColorIndex = 5
sh.Cells(cell.Row, 1).Value = cell.Offset(0, 2).Value _
& " (" & cell.Offset(0, 3).Value & ")"
End If
Next cell
End With


End Sub


If your sheet is set up as I describe and this is what you are trying to do
then
Test it on a copy of your workbook.


--
Regards,
Tom Ogilvy


" wrote:
Hello all,


I'm new to this vba excel. I was wondering if anyone can give me some
insight on how i can go about in doing this.


I have an excel workbook that contains 2 spreadsheet. Sheet1 contains
data to use for sheet2. Sheet1 will have start date, end date, name,
country. Sheet2 contains a spreadsheet fill with different colors
base on the date range that is given. Right now it's manually being
done. Trying to figure out if there was a way for me to take the
start date and end date valuse and fill sheet2 with the respective
color for that range? Any advice will be appreciated. Thanks again.- Hide quoted text -


- Show quoted text -


Hello tom,


I just try testing the code you have and i'm getting a run time error
91.


r = sh.range(sh.range("A1"), sh.range("B1").End(xlToRight))


That's the code that i'm getting the error at. Can you explain to me
the reason for the error just so i know for future reference. Thanks.


I enter in some test data in sheet 1.


Column A - Start date 01/01/2007
Column B - End Date 01/07/2007
Column C - Test Name
Column D - Test Name2
Column E - Color Phases


Sheet 2 is already set up with certain colors that have been filled in
manually.


let me see if i can clear this up a bit more. So what sheet 2 color
should fill would be say from 01/01/2007 - 01/07/2007 and the color
phase is blue from sheet 1. I guess there should be a range fill for
the first 5 days?- Hide quoted text -


- Show quoted text -


Anyone can help? thanks.

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



All times are GMT +1. The time now is 09:20 AM.

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"