Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 25
Default Restricted value sequences in rows

I need to create a warning when specific values sequences are input from a
drop down menu. My example:

I have 31 columns (days in month) and have 25 rows (peoples names) from the
drop down box I have the following values-These are shift designations
(V1,V2,V3,V4, SV1,SV2,SV3,SV4, A1,A2,A3,A4,N,R1,R2,R3,DB,C).

If the selections in cell between B1:AF25 are either SV 1-4 or A 1-4 I want
a warning to appear IF a value of V 1-4, R 1-3, DB or C are attempted to be
put in the immediately following cell.

Example: Cell B3 has A-4 and in cel C3 they attempt to put N, then it
should give a warning "This is not a recommended shift sequence".

Your assistance would be greatly appreciated.
  #2   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 751
Default Restricted value sequences in rows

Hi,

Paste the following code in the sheet's VBA code sheet.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lft As Range
If Not Intersect(Range("B1:AF25"), Target) Is Nothing Then
Set lft = Target.Offset(0, -1)
toWatch = Left(lft.Value, 1) = "A" Or Left(lft.Value, 2) = "SV"
If toWatch Then
toComplain = Left(Target.Value, 1) = "V" Or Left(Target.Value, 1) = "R"
Or Target.Value = "C" Or Target.Value = "DB"
If toComplain Then
MsgBox "This is not a recommended shift sequence"
End If
End If
End If
End Sub

To do this, right-click the sheet-tab and choose View Code. This will
take you to the VBA IDE. Paste the code.

HTH
Kostis Vezerides

  #3   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 25
Default Restricted value sequences in rows

Thanks for this, I copied the code and when I go into the worksheet I get an
error code as follows:

Compile Error:
Ambiguous Name detected; Worksheet_Change.

The following is the sequence of code already there the second one has the
same first line, could this be the issue. I have copied it below to show you
what is already in the "View Code"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lZoom As Long
Dim lZoomDV As Long
Dim lDVType As Long
lZoom = 100
lZoomDV = 120
lDVType = 0

Application.EnableEvents = False
On Error Resume Next
lDVType = Target.Validation.Type

On Error GoTo errHandler
If lDVType < 3 Then
With ActiveWindow
If .Zoom < lZoom Then
.Zoom = lZoom
End If
End With
Else
With ActiveWindow
If .Zoom < lZoomDV Then
.Zoom = lZoomDV
End If
End With
End If

exitHandler:
Application.EnableEvents = True
Exit Sub
errHandler:
GoTo exitHandler
End Sub
---------------------------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
'Adjust next constant to your own needs
Const myColumn As String = "B:AF"
Dim rng As Range
Dim Found As Range

Set rng = UsedRange.Columns(myColumn)
If Intersect(Target, rng) Is Nothing _
Or Target.Value = "" _
Then Exit Sub
Set Found = rng.Find(Target.Value)
If Found.Address < Target.Address Then
Target.Select
MsgBox ("Duplicate code")
End If
End Sub

"vezerid" wrote:

Hi,

Paste the following code in the sheet's VBA code sheet.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lft As Range
If Not Intersect(Range("B1:AF25"), Target) Is Nothing Then
Set lft = Target.Offset(0, -1)
toWatch = Left(lft.Value, 1) = "A" Or Left(lft.Value, 2) = "SV"
If toWatch Then
toComplain = Left(Target.Value, 1) = "V" Or Left(Target.Value, 1) = "R"
Or Target.Value = "C" Or Target.Value = "DB"
If toComplain Then
MsgBox "This is not a recommended shift sequence"
End If
End If
End If
End Sub

To do this, right-click the sheet-tab and choose View Code. This will
take you to the VBA IDE. Paste the code.

HTH
Kostis Vezerides


  #4   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 751
Default Restricted value sequences in rows

Phil,
yes, the reason is exactly b/c you already have a Worksheet_Change
macro in the sheet. You will need to incorporate both functionalities
under the same name. I.e., you will have to insert just the BODY of my
macro (i.e. w/o the first and last line End Sub), in the existing
macro.

For this to be done properly you need to specify all the checks that
you need to perform. Which ones should disallow any further action,
which ones should just produce a warning and in what order you want to
make the various checks. Write back and we will somehow combine the two
(is there any more?)

Kostis

  #5   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 25
Default Restricted value sequences in rows

The sequence as I see it is not an issue, I just need to get the "Warning"
messages to advise of the 'potential' issues, they should still be able to
make the choice of proceeding as in some cases it is required.

I do have another issue but I haven't yet been able to compile a clear and
concise explanation of what I am trying to resolve. Once I get it on paper
would you be good enough to look at it for me?

"vezerid" wrote:

Phil,
yes, the reason is exactly b/c you already have a Worksheet_Change
macro in the sheet. You will need to incorporate both functionalities
under the same name. I.e., you will have to insert just the BODY of my
macro (i.e. w/o the first and last line End Sub), in the existing
macro.

For this to be done properly you need to specify all the checks that
you need to perform. Which ones should disallow any further action,
which ones should just produce a warning and in what order you want to
make the various checks. Write back and we will somehow combine the two
(is there any more?)

Kostis




  #6   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 751
Default Restricted value sequences in rows

Phil,
judging from the other thread, I believe that you should replace the
Worksheet_Change with the following code:

Private Sub Worksheet_Change(ByVal Target As Range)
'Adjust next constant to your own needs
Const myColumn As String = "B:AF"
Dim rng As Range
Dim Found As Range
Dim lft As Range

Set rng = Target.cells(1,1).EntireColumn
If Intersect(Target, rng) Is Nothing _
Or Target.Value = "" _
Then Exit Sub
Set Found = rng.Find(Target.Value)
If Found.Address < Target.Address Then
Target.Select
MsgBox ("Duplicate code")
End If

If Not Intersect(Range("B1:AF25"), Target) Is Nothing Then
Set lft = Target.Offset(0, -1)
toWatch = Left(lft.Value, 1) = "A" Or Left(lft.Value, 2) = "SV"
If toWatch Then
toComplain = Left(Target.Value, 1) = "V" Or Left(Target.Value, 1) =
"R" Or Target.Value = "C" Or Target.Value = "DB"
If toComplain Then
MsgBox "This is not a recommended shift sequence"
End If
End If
End If

End Sub

I think this should do it.

Regards,
Kostis

  #7   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 25
Default Restricted value sequences in rows

I copied and pasted that code and I got a "Compile Error" Syntax Error and it
came up with the line highlighted below;

toComplain = Left(Target.Value, 1) = "V" Or Left(Target.Value, 1) =

I am gathering since it went this far through the code the code prior to the
highlighted line above is working and the problem is at this line, is that a
correct assumption.



"vezerid" wrote:

Phil,
judging from the other thread, I believe that you should replace the
Worksheet_Change with the following code:

Private Sub Worksheet_Change(ByVal Target As Range)
'Adjust next constant to your own needs
Const myColumn As String = "B:AF"
Dim rng As Range
Dim Found As Range
Dim lft As Range

Set rng = Target.cells(1,1).EntireColumn
If Intersect(Target, rng) Is Nothing _
Or Target.Value = "" _
Then Exit Sub
Set Found = rng.Find(Target.Value)
If Found.Address < Target.Address Then
Target.Select
MsgBox ("Duplicate code")
End If

If Not Intersect(Range("B1:AF25"), Target) Is Nothing Then
Set lft = Target.Offset(0, -1)
toWatch = Left(lft.Value, 1) = "A" Or Left(lft.Value, 2) = "SV"
If toWatch Then
toComplain = Left(Target.Value, 1) = "V" Or Left(Target.Value, 1) =
"R" Or Target.Value = "C" Or Target.Value = "DB"
If toComplain Then
MsgBox "This is not a recommended shift sequence"
End If
End If
End If

End Sub

I think this should do it.

Regards,
Kostis


  #8   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 751
Default Restricted value sequences in rows

Phil,
just join the highlighted line with the next one. Both should be one
line but the web mailer broke them into to. I.e. place the cursor after
the = and press Delete until the next line comes after the =. You
should have a single line with three Or.

HTH
Kostis

  #9   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 22,906
Default Restricted value sequences in rows

That line and the one foillowing are all one line.

Enter a line-continuation character

toComplain = Left(Target.Value, 1) = "V" Or Left(Target.Value, 1) = _
"R" Or Target.Value = "C" Or Target.Value = "DB"

Note the space after the = sign and before the _ char.


Gord Dibben MS Excel MVP


On Tue, 18 Jul 2006 11:04:02 -0700, yukon_phil
wrote:

I copied and pasted that code and I got a "Compile Error" Syntax Error and it
came up with the line highlighted below;

toComplain = Left(Target.Value, 1) = "V" Or Left(Target.Value, 1) =

I am gathering since it went this far through the code the code prior to the
highlighted line above is working and the problem is at this line, is that a
correct assumption.



"vezerid" wrote:

Phil,
judging from the other thread, I believe that you should replace the
Worksheet_Change with the following code:

Private Sub Worksheet_Change(ByVal Target As Range)
'Adjust next constant to your own needs
Const myColumn As String = "B:AF"
Dim rng As Range
Dim Found As Range
Dim lft As Range

Set rng = Target.cells(1,1).EntireColumn
If Intersect(Target, rng) Is Nothing _
Or Target.Value = "" _
Then Exit Sub
Set Found = rng.Find(Target.Value)
If Found.Address < Target.Address Then
Target.Select
MsgBox ("Duplicate code")
End If

If Not Intersect(Range("B1:AF25"), Target) Is Nothing Then
Set lft = Target.Offset(0, -1)
toWatch = Left(lft.Value, 1) = "A" Or Left(lft.Value, 2) = "SV"
If toWatch Then
toComplain = Left(Target.Value, 1) = "V" Or Left(Target.Value, 1) =
"R" Or Target.Value = "C" Or Target.Value = "DB"
If toComplain Then
MsgBox "This is not a recommended shift sequence"
End If
End If
End If

End Sub

I think this should do it.

Regards,
Kostis



  #10   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 25
Default Restricted value sequences in rows

That did it, thank you very much.

This has been a big learning adventure for me, I think I have actually
picked up a few things now.

Would you mind if I send a few more questions to you directly OR should I
just post them as usual, these are specific to my work sheets.

"vezerid" wrote:

Phil,
just join the highlighted line with the next one. Both should be one
line but the web mailer broke them into to. I.e. place the cursor after
the = and press Delete until the next line comes after the =. You
should have a single line with three Or.

HTH
Kostis




  #11   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 25
Default Restricted value sequences in rows

Thank you Gord for your input, Kostis explained to me the 'broken' line which
I corrected and it works fine now.

"Gord Dibben" wrote:

That line and the one foillowing are all one line.

Enter a line-continuation character

toComplain = Left(Target.Value, 1) = "V" Or Left(Target.Value, 1) = _
"R" Or Target.Value = "C" Or Target.Value = "DB"

Note the space after the = sign and before the _ char.


Gord Dibben MS Excel MVP


On Tue, 18 Jul 2006 11:04:02 -0700, yukon_phil
wrote:

I copied and pasted that code and I got a "Compile Error" Syntax Error and it
came up with the line highlighted below;

toComplain = Left(Target.Value, 1) = "V" Or Left(Target.Value, 1) =

I am gathering since it went this far through the code the code prior to the
highlighted line above is working and the problem is at this line, is that a
correct assumption.



"vezerid" wrote:

Phil,
judging from the other thread, I believe that you should replace the
Worksheet_Change with the following code:

Private Sub Worksheet_Change(ByVal Target As Range)
'Adjust next constant to your own needs
Const myColumn As String = "B:AF"
Dim rng As Range
Dim Found As Range
Dim lft As Range

Set rng = Target.cells(1,1).EntireColumn
If Intersect(Target, rng) Is Nothing _
Or Target.Value = "" _
Then Exit Sub
Set Found = rng.Find(Target.Value)
If Found.Address < Target.Address Then
Target.Select
MsgBox ("Duplicate code")
End If

If Not Intersect(Range("B1:AF25"), Target) Is Nothing Then
Set lft = Target.Offset(0, -1)
toWatch = Left(lft.Value, 1) = "A" Or Left(lft.Value, 2) = "SV"
If toWatch Then
toComplain = Left(Target.Value, 1) = "V" Or Left(Target.Value, 1) =
"R" Or Target.Value = "C" Or Target.Value = "DB"
If toComplain Then
MsgBox "This is not a recommended shift sequence"
End If
End If
End If

End Sub

I think this should do it.

Regards,
Kostis




  #12   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 751
Default Restricted value sequences in rows

Phil,

you are welcome to email directly. I think posting to the forum is the
preferred method for all since more people can benefit, plus you don't
have to rely on a specific individual. Thanks for the feedback too.

Regards,
Kostis

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
Rows & Columns in Excel seadragon69 Excel Worksheet Functions 2 December 7th 05 05:54 PM
Automatically inserting rows ausdiver99 Excel Worksheet Functions 1 June 2nd 05 02:15 PM
Hiding Rows if the linked rows are blank KG Excel Discussion (Misc queries) 9 May 18th 05 02:32 AM
Insert rows Mr. G. Excel Worksheet Functions 3 March 31st 05 03:49 AM
flexible paste rows function that inserts the right number of rows marika1981 Excel Discussion (Misc queries) 1 February 18th 05 02:40 AM


All times are GMT +1. The time now is 11:11 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"