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

I have written the following code however i get the error "Type
Mismatch" and the code "C1"
Has anybody got any suggestions as to how i can resolve this problem?

Private Sub Worksheet_Change(ByVal Target As Range)

Call inputs("C1")
Call inputs("C2")
Call inputs("C3")
Call inputs("C4")
Call inputs("C5")
Call inputs("C6")
Call inputs("C7")
Call inputs("C8")
Call inputs("C9")
Call inputs("C10")
Call inputs("C11")
Call inputs("C12")
Call inputs("C13")
Call inputs("C14")
Call inputs("C15")
Call inputs("C16")
Call inputs("C17")
Call inputs("C18")
Call inputs("C19")
Call inputs("C20")
Call inputs("C21")
Call inputs("C22")
Call inputs("C23")
Call inputs("C24")
Call inputs("C25")
Call inputs("C26")
Call inputs("C27")
Call inputs("C28")
Call inputs("C29")
Call inputs("C30")
End Sub

Private Sub inputs(rangeref As Range)
If rangeref.Value = "yes" Then
rangeref.EntireRow.Delete
End Sub


Regards,
Mark

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7,247
Default VBA Code...

Mark,

Your function "inputs" is defined to accept a Range object as input, but you
are passing in a String value. Change

Call inputs("C1")
to
Call inputs(Range("C1"))


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)


"MarkHear1" wrote in message
oups.com...
I have written the following code however i get the error "Type
Mismatch" and the code "C1"
Has anybody got any suggestions as to how i can resolve this problem?

Private Sub Worksheet_Change(ByVal Target As Range)

Call inputs("C1")
Call inputs("C2")
Call inputs("C3")
Call inputs("C4")
Call inputs("C5")
Call inputs("C6")
Call inputs("C7")
Call inputs("C8")
Call inputs("C9")
Call inputs("C10")
Call inputs("C11")
Call inputs("C12")
Call inputs("C13")
Call inputs("C14")
Call inputs("C15")
Call inputs("C16")
Call inputs("C17")
Call inputs("C18")
Call inputs("C19")
Call inputs("C20")
Call inputs("C21")
Call inputs("C22")
Call inputs("C23")
Call inputs("C24")
Call inputs("C25")
Call inputs("C26")
Call inputs("C27")
Call inputs("C28")
Call inputs("C29")
Call inputs("C30")
End Sub

Private Sub inputs(rangeref As Range)
If rangeref.Value = "yes" Then
rangeref.EntireRow.Delete
End Sub


Regards,
Mark



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,939
Default VBA Code...

"C1" is a text string. You want to send in a range. Try something like this...

Call inputs(Range("C1"))
--
HTH...

Jim Thomlinson


"MarkHear1" wrote:

I have written the following code however i get the error "Type
Mismatch" and the code "C1"
Has anybody got any suggestions as to how i can resolve this problem?

Private Sub Worksheet_Change(ByVal Target As Range)

Call inputs("C1")
Call inputs("C2")
Call inputs("C3")
Call inputs("C4")
Call inputs("C5")
Call inputs("C6")
Call inputs("C7")
Call inputs("C8")
Call inputs("C9")
Call inputs("C10")
Call inputs("C11")
Call inputs("C12")
Call inputs("C13")
Call inputs("C14")
Call inputs("C15")
Call inputs("C16")
Call inputs("C17")
Call inputs("C18")
Call inputs("C19")
Call inputs("C20")
Call inputs("C21")
Call inputs("C22")
Call inputs("C23")
Call inputs("C24")
Call inputs("C25")
Call inputs("C26")
Call inputs("C27")
Call inputs("C28")
Call inputs("C29")
Call inputs("C30")
End Sub

Private Sub inputs(rangeref As Range)
If rangeref.Value = "yes" Then
rangeref.EntireRow.Delete
End Sub


Regards,
Mark


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9,101
Default VBA Code...

You are trying to pass a range, but passing a string use

Set myRange = Range("C1")
Call inputs(myRange)

or
Call inputs(Range("C1"))

"MarkHear1" wrote:

I have written the following code however i get the error "Type
Mismatch" and the code "C1"
Has anybody got any suggestions as to how i can resolve this problem?

Private Sub Worksheet_Change(ByVal Target As Range)

Call inputs("C1")
Call inputs("C2")
Call inputs("C3")
Call inputs("C4")
Call inputs("C5")
Call inputs("C6")
Call inputs("C7")
Call inputs("C8")
Call inputs("C9")
Call inputs("C10")
Call inputs("C11")
Call inputs("C12")
Call inputs("C13")
Call inputs("C14")
Call inputs("C15")
Call inputs("C16")
Call inputs("C17")
Call inputs("C18")
Call inputs("C19")
Call inputs("C20")
Call inputs("C21")
Call inputs("C22")
Call inputs("C23")
Call inputs("C24")
Call inputs("C25")
Call inputs("C26")
Call inputs("C27")
Call inputs("C28")
Call inputs("C29")
Call inputs("C30")
End Sub

Private Sub inputs(rangeref As Range)
If rangeref.Value = "yes" Then
rangeref.EntireRow.Delete
End Sub


Regards,
Mark


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,593
Default VBA Code...

In addition to Chip's response, one question and one suggestion.

Question. Why would this be triggered by Worksheet_Change. This is normally
used to work upon the cell(s) that is changed, not some group of unrelated
cells.

Suggestion. You can simplify this code down to one call and loop in the
called procedure

Private Sub Worksheet_Change(ByVal Target As Range)
Call inputs(Range("C1:C30"))
End Sub

Private Sub inputs(rangeref As Range)
Dim cell As Range
For Each cell In rangeref
If cell.Value = "yes" Then
cell.EntireRow.Delete
End If
Next cell
End Sub



--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)



"MarkHear1" wrote in message
oups.com...
I have written the following code however i get the error "Type
Mismatch" and the code "C1"
Has anybody got any suggestions as to how i can resolve this problem?

Private Sub Worksheet_Change(ByVal Target As Range)

Call inputs("C1")
Call inputs("C2")
Call inputs("C3")
Call inputs("C4")
Call inputs("C5")
Call inputs("C6")
Call inputs("C7")
Call inputs("C8")
Call inputs("C9")
Call inputs("C10")
Call inputs("C11")
Call inputs("C12")
Call inputs("C13")
Call inputs("C14")
Call inputs("C15")
Call inputs("C16")
Call inputs("C17")
Call inputs("C18")
Call inputs("C19")
Call inputs("C20")
Call inputs("C21")
Call inputs("C22")
Call inputs("C23")
Call inputs("C24")
Call inputs("C25")
Call inputs("C26")
Call inputs("C27")
Call inputs("C28")
Call inputs("C29")
Call inputs("C30")
End Sub

Private Sub inputs(rangeref As Range)
If rangeref.Value = "yes" Then
rangeref.EntireRow.Delete
End Sub


Regards,
Mark





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

I think Bob was focused on the initial problem and overlooked the problem
when looping forward when deleting rows. This modification would insure all
the desired rows are deleted.

Private Sub inputs(rangeref As Range)
Dim cell as Range, frow as Long, lrow as Long
Dim i as Long
frow = rangeref(1).row
lrow = rangeref(rangeref.count).row
For i = lrow to frow step -1
set cell = rangeref.parent.cells(i, rangeref.column)
If cell.Value = "yes" Then
cell.EntireRow.Delete
End If
Next i
End Sub


--
Regards,
Tom Ogilvy


"Bob Phillips" wrote:

In addition to Chip's response, one question and one suggestion.

Question. Why would this be triggered by Worksheet_Change. This is normally
used to work upon the cell(s) that is changed, not some group of unrelated
cells.

Suggestion. You can simplify this code down to one call and loop in the
called procedure

Private Sub Worksheet_Change(ByVal Target As Range)
Call inputs(Range("C1:C30"))
End Sub

Private Sub inputs(rangeref As Range)
Dim cell As Range
For Each cell In rangeref
If cell.Value = "yes" Then
cell.EntireRow.Delete
End If
Next cell
End Sub



--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)



"MarkHear1" wrote in message
oups.com...
I have written the following code however i get the error "Type
Mismatch" and the code "C1"
Has anybody got any suggestions as to how i can resolve this problem?

Private Sub Worksheet_Change(ByVal Target As Range)

Call inputs("C1")
Call inputs("C2")
Call inputs("C3")
Call inputs("C4")
Call inputs("C5")
Call inputs("C6")
Call inputs("C7")
Call inputs("C8")
Call inputs("C9")
Call inputs("C10")
Call inputs("C11")
Call inputs("C12")
Call inputs("C13")
Call inputs("C14")
Call inputs("C15")
Call inputs("C16")
Call inputs("C17")
Call inputs("C18")
Call inputs("C19")
Call inputs("C20")
Call inputs("C21")
Call inputs("C22")
Call inputs("C23")
Call inputs("C24")
Call inputs("C25")
Call inputs("C26")
Call inputs("C27")
Call inputs("C28")
Call inputs("C29")
Call inputs("C30")
End Sub

Private Sub inputs(rangeref As Range)
If rangeref.Value = "yes" Then
rangeref.EntireRow.Delete
End Sub


Regards,
Mark




  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,939
Default VBA Code...

Since the code is triggered by the change event and the change event fires
when the row is deleted how about this to clean things up a bit more.
Additionally I have added the lcase function to account for any cpitalization
in the word "yes"...

Private Sub Worksheet_Change(ByVal Target As Range)
Call inputs(Range("C1:C30"))
End Sub

Private Sub inputs(rangeref As Range)
Dim cell As Range, frow As Long, lrow As Long
Dim i As Long
On Error GoTo ErrorHandler

Application.EnableEvents = False
frow = rangeref(1).Row
lrow = rangeref(rangeref.Count).Row
For i = lrow To frow Step -1
Set cell = rangeref.Parent.Cells(i, rangeref.Column)
If LCase(cell.Value) = "yes" Then
cell.EntireRow.Delete
End If
Next i
ErrorHandler:
Application.EnableEvents = True
End Sub
--
HTH...

Jim Thomlinson


"Tom Ogilvy" wrote:

I think Bob was focused on the initial problem and overlooked the problem
when looping forward when deleting rows. This modification would insure all
the desired rows are deleted.

Private Sub inputs(rangeref As Range)
Dim cell as Range, frow as Long, lrow as Long
Dim i as Long
frow = rangeref(1).row
lrow = rangeref(rangeref.count).row
For i = lrow to frow step -1
set cell = rangeref.parent.cells(i, rangeref.column)
If cell.Value = "yes" Then
cell.EntireRow.Delete
End If
Next i
End Sub


--
Regards,
Tom Ogilvy


"Bob Phillips" wrote:

In addition to Chip's response, one question and one suggestion.

Question. Why would this be triggered by Worksheet_Change. This is normally
used to work upon the cell(s) that is changed, not some group of unrelated
cells.

Suggestion. You can simplify this code down to one call and loop in the
called procedure

Private Sub Worksheet_Change(ByVal Target As Range)
Call inputs(Range("C1:C30"))
End Sub

Private Sub inputs(rangeref As Range)
Dim cell As Range
For Each cell In rangeref
If cell.Value = "yes" Then
cell.EntireRow.Delete
End If
Next cell
End Sub



--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)



"MarkHear1" wrote in message
oups.com...
I have written the following code however i get the error "Type
Mismatch" and the code "C1"
Has anybody got any suggestions as to how i can resolve this problem?

Private Sub Worksheet_Change(ByVal Target As Range)

Call inputs("C1")
Call inputs("C2")
Call inputs("C3")
Call inputs("C4")
Call inputs("C5")
Call inputs("C6")
Call inputs("C7")
Call inputs("C8")
Call inputs("C9")
Call inputs("C10")
Call inputs("C11")
Call inputs("C12")
Call inputs("C13")
Call inputs("C14")
Call inputs("C15")
Call inputs("C16")
Call inputs("C17")
Call inputs("C18")
Call inputs("C19")
Call inputs("C20")
Call inputs("C21")
Call inputs("C22")
Call inputs("C23")
Call inputs("C24")
Call inputs("C25")
Call inputs("C26")
Call inputs("C27")
Call inputs("C28")
Call inputs("C29")
Call inputs("C30")
End Sub

Private Sub inputs(rangeref As Range)
If rangeref.Value = "yes" Then
rangeref.EntireRow.Delete
End Sub


Regards,
Mark




  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 20
Default VBA Code...

On 23 Feb, 17:11, Jim Thomlinson <James_Thomlin...@owfg-Re-Move-
This-.com wrote:
Since the code is triggered by the change event and the change event fires
when the row is deleted how about this to clean things up a bit more.
Additionally I have added the lcase function to account for any cpitalization
in the word "yes"...

Private Sub Worksheet_Change(ByVal Target As Range)
Call inputs(Range("C1:C30"))
End Sub

Private Sub inputs(rangeref As Range)
Dim cell As Range, frow As Long, lrow As Long
Dim i As Long
On Error GoTo ErrorHandler

Application.EnableEvents = False
frow = rangeref(1).Row
lrow = rangeref(rangeref.Count).Row
For i = lrow To frow Step -1
Set cell = rangeref.Parent.Cells(i, rangeref.Column)
If LCase(cell.Value) = "yes" Then
cell.EntireRow.Delete
End If
Next i
ErrorHandler:
Application.EnableEvents = True
End Sub
--
HTH...

Jim Thomlinson



"Tom Ogilvy" wrote:
I think Bob was focused on the initial problem and overlooked the problem
when looping forward when deleting rows. This modification would insure all
the desired rows are deleted.


Private Sub inputs(rangeref As Range)
Dim cell as Range, frow as Long, lrow as Long
Dim i as Long
frow = rangeref(1).row
lrow = rangeref(rangeref.count).row
For i = lrow to frow step -1
set cell = rangeref.parent.cells(i, rangeref.column)
If cell.Value = "yes" Then
cell.EntireRow.Delete
End If
Next i
End Sub


--
Regards,
Tom Ogilvy


"Bob Phillips" wrote:


In addition to Chip's response, one question and one suggestion.


Question. Why would this be triggered by Worksheet_Change. This is normally
used to work upon the cell(s) that is changed, not some group of unrelated
cells.


Suggestion. You can simplify this code down to one call and loop in the
called procedure


Private Sub Worksheet_Change(ByVal Target As Range)
Call inputs(Range("C1:C30"))
End Sub


Private Sub inputs(rangeref As Range)
Dim cell As Range
For Each cell In rangeref
If cell.Value = "yes" Then
cell.EntireRow.Delete
End If
Next cell
End Sub


--
---
HTH


Bob


(there's no email, no snail mail, but somewhere should be gmail in my addy)


"MarkHear1" wrote in message
roups.com...
I have written the following code however i get the error "Type
Mismatch" and the code "C1"
Has anybody got any suggestions as to how i can resolve this problem?


Private Sub Worksheet_Change(ByVal Target As Range)


Call inputs("C1")
Call inputs("C2")
Call inputs("C3")
Call inputs("C4")
Call inputs("C5")
Call inputs("C6")
Call inputs("C7")
Call inputs("C8")
Call inputs("C9")
Call inputs("C10")
Call inputs("C11")
Call inputs("C12")
Call inputs("C13")
Call inputs("C14")
Call inputs("C15")
Call inputs("C16")
Call inputs("C17")
Call inputs("C18")
Call inputs("C19")
Call inputs("C20")
Call inputs("C21")
Call inputs("C22")
Call inputs("C23")
Call inputs("C24")
Call inputs("C25")
Call inputs("C26")
Call inputs("C27")
Call inputs("C28")
Call inputs("C29")
Call inputs("C30")
End Sub


Private Sub inputs(rangeref As Range)
If rangeref.Value = "yes" Then
rangeref.EntireRow.Delete
End Sub


Regards,
Mark- Hide quoted text -


- Show quoted text -


thank you all for your suggestions...
I have now changed the request and if the value is "yes" i want that
row to be copied to sheet 2 can anybody help with this please?

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
split post code (zip code) out of cell that includes full address Concord Excel Discussion (Misc queries) 4 October 15th 09 06:59 PM
Shorten code to apply to all sheets except a few, instead of individually naming them, and later adding to code. Corey Excel Programming 3 December 11th 06 05:14 AM
Protect Sheet with code, but then code will not Paste error. How do i get around this. Please read for explainations.... Corey Excel Programming 4 November 25th 06 04:57 AM
Excel code convert to Access code - Concat & eliminate duplicates italia Excel Programming 1 September 12th 06 12:14 AM
stubborn Excel crash when editing code with code, one solution Brian Murphy Excel Programming 0 February 20th 05 05:56 AM


All times are GMT +1. The time now is 06:21 AM.

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

About Us

"It's about Microsoft Excel"