Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27
Default Type Mismatch error

Again, I have to say thanks in advance!

In this code, which is below: rowFound = Application.Match(valueToFind,
wrksB.Columns("A:A"), 0)

I get a Type Mismatch error. It worked at one time, then stopped. I am sure
it just needs some adjustment to the code, I am a beginner at this.

Sub FindPlayUpPlayerReplaceAgeGroup()

MsgBox "Change age group on players listed on PlayUpList", vbOKCancel

Dim wrksA As Worksheet
Dim valueToFind As Range
Dim rowNum As Long
Dim wrksB As Worksheet
Dim rowFound As Integer
Dim playUpValue As Range

Set wrksA = Worksheets("PlayUpList")
Set wrksB = Worksheets("PlDetails")
wrksA.Select
rowNum = 2
For rowNum = 2 To wrksA.Cells(Rows.Count, "B").End(xlUp).Row
If Trim(wrksA.Range("b" & rowNum)) < "" And Trim(wrksA.Range("v" &
rowNum)) < "" Then
Range("B" & rowNum).Select
Set valueToFind = Selection
' MsgBox valueToFind
Range("a" & rowNum).Select
Set playUpValue = Selection
' MsgBox playUpValue
rowFound = Application.Match(valueToFind, wrksB.Columns("A:A"),
0) ' <= displays error
' MsgBox rowFound
wrksB.Range("u" & rowFound) = playUpValue
' Range("v" & rowFound) = playUpValue
End If
Next

MsgBox "All players playing up have been modified."

End Sub

--
JohnM
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,355
Default Type Mismatch error

Try this (untested)

Option Explicit
Sub FindPlayUpPlayerReplaceAgeGroup()

MsgBox "Change age group on players listed on PlayUpList", vbOKCancel

Dim wrksA As Worksheet
Dim valueToFind As Range
Dim rowNum As Long
Dim wrksB As Worksheet
Dim rowFound As Integer
Dim playUpValue As Range

Set wrksA = Worksheets("PlayUpList")
Set wrksB = Worksheets("PlDetails")
rowNum = 2
For rowNum = 2 To wrksA.Cells(Rows.Count, "B").End(xlUp).Row
If Trim(wrksA.Range("b" & rowNum)) < "" And _
Trim(wrksA.Range("v" & rowNum)) < "" Then

Set valueToFind = wrksA.Range("B" & rowNum)

' MsgBox valueToFind
Set playUpValue = wrksA.Range("A" & rowNum)

' MsgBox playUpValue
rowFound = 0
On Error Resume Next
rowFound = Application.Match( _
valueToFind.Text, _
wrksB.Columns("A:A"), _
0) ' <= displays error
On Error GoTo 0
If rowFound = 0 Then
MsgBox ("Didn't find row")
Else
wrksB.Range("u" & rowFound) = playUpValue
End If
End If
Next

MsgBox "All players playing up have been modified."

End Sub


"JohnM" wrote:

Again, I have to say thanks in advance!

In this code, which is below: rowFound = Application.Match(valueToFind,
wrksB.Columns("A:A"), 0)

I get a Type Mismatch error. It worked at one time, then stopped. I am sure
it just needs some adjustment to the code, I am a beginner at this.

Sub FindPlayUpPlayerReplaceAgeGroup()

MsgBox "Change age group on players listed on PlayUpList", vbOKCancel

Dim wrksA As Worksheet
Dim valueToFind As Range
Dim rowNum As Long
Dim wrksB As Worksheet
Dim rowFound As Integer
Dim playUpValue As Range

Set wrksA = Worksheets("PlayUpList")
Set wrksB = Worksheets("PlDetails")
wrksA.Select
rowNum = 2
For rowNum = 2 To wrksA.Cells(Rows.Count, "B").End(xlUp).Row
If Trim(wrksA.Range("b" & rowNum)) < "" And Trim(wrksA.Range("v" &
rowNum)) < "" Then
Range("B" & rowNum).Select
Set valueToFind = Selection
' MsgBox valueToFind
Range("a" & rowNum).Select
Set playUpValue = Selection
' MsgBox playUpValue
rowFound = Application.Match(valueToFind, wrksB.Columns("A:A"),
0) ' <= displays error
' MsgBox rowFound
wrksB.Range("u" & rowFound) = playUpValue
' Range("v" & rowFound) = playUpValue
End If
Next

MsgBox "All players playing up have been modified."

End Sub

--
JohnM

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,565
Default Type Mismatch error

I believe that if you change this:

Set valueToFind = Selection

To this:

valueToFind = Selection.Value

then in might work.

The problem is caused by delclaring rowFound as an integer and then trying
to match it to valueToFind which was Set as an object variable range. If
the Selection value is an integer then the Match function should work after
you make the change.



"JohnM" wrote in message
...
Again, I have to say thanks in advance!

In this code, which is below: rowFound = Application.Match(valueToFind,
wrksB.Columns("A:A"), 0)

I get a Type Mismatch error. It worked at one time, then stopped. I am
sure
it just needs some adjustment to the code, I am a beginner at this.

Sub FindPlayUpPlayerReplaceAgeGroup()

MsgBox "Change age group on players listed on PlayUpList", vbOKCancel

Dim wrksA As Worksheet
Dim valueToFind As Range
Dim rowNum As Long
Dim wrksB As Worksheet
Dim rowFound As Integer
Dim playUpValue As Range

Set wrksA = Worksheets("PlayUpList")
Set wrksB = Worksheets("PlDetails")
wrksA.Select
rowNum = 2
For rowNum = 2 To wrksA.Cells(Rows.Count, "B").End(xlUp).Row
If Trim(wrksA.Range("b" & rowNum)) < "" And Trim(wrksA.Range("v" &
rowNum)) < "" Then
Range("B" & rowNum).Select
Set valueToFind = Selection
' MsgBox valueToFind
Range("a" & rowNum).Select
Set playUpValue = Selection
' MsgBox playUpValue
rowFound = Application.Match(valueToFind, wrksB.Columns("A:A"),
0) ' <= displays error
' MsgBox rowFound
wrksB.Range("u" & rowFound) = playUpValue
' Range("v" & rowFound) = playUpValue
End If
Next

MsgBox "All players playing up have been modified."

End Sub

--
JohnM



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27
Default Type Mismatch error

Barb, thanks for the code. With it I figured out it wasn't really a Type
Mismatch, my data was wrong, so the error test is what lead me to my problem
and it makes the program much better.

Thanks again,
--
JohnM


"Barb Reinhardt" wrote:

Try this (untested)

Option Explicit
Sub FindPlayUpPlayerReplaceAgeGroup()

MsgBox "Change age group on players listed on PlayUpList", vbOKCancel

Dim wrksA As Worksheet
Dim valueToFind As Range
Dim rowNum As Long
Dim wrksB As Worksheet
Dim rowFound As Integer
Dim playUpValue As Range

Set wrksA = Worksheets("PlayUpList")
Set wrksB = Worksheets("PlDetails")
rowNum = 2
For rowNum = 2 To wrksA.Cells(Rows.Count, "B").End(xlUp).Row
If Trim(wrksA.Range("b" & rowNum)) < "" And _
Trim(wrksA.Range("v" & rowNum)) < "" Then

Set valueToFind = wrksA.Range("B" & rowNum)

' MsgBox valueToFind
Set playUpValue = wrksA.Range("A" & rowNum)

' MsgBox playUpValue
rowFound = 0
On Error Resume Next
rowFound = Application.Match( _
valueToFind.Text, _
wrksB.Columns("A:A"), _
0) ' <= displays error
On Error GoTo 0
If rowFound = 0 Then
MsgBox ("Didn't find row")
Else
wrksB.Range("u" & rowFound) = playUpValue
End If
End If
Next

MsgBox "All players playing up have been modified."

End Sub


"JohnM" wrote:

Again, I have to say thanks in advance!

In this code, which is below: rowFound = Application.Match(valueToFind,
wrksB.Columns("A:A"), 0)

I get a Type Mismatch error. It worked at one time, then stopped. I am sure
it just needs some adjustment to the code, I am a beginner at this.

Sub FindPlayUpPlayerReplaceAgeGroup()

MsgBox "Change age group on players listed on PlayUpList", vbOKCancel

Dim wrksA As Worksheet
Dim valueToFind As Range
Dim rowNum As Long
Dim wrksB As Worksheet
Dim rowFound As Integer
Dim playUpValue As Range

Set wrksA = Worksheets("PlayUpList")
Set wrksB = Worksheets("PlDetails")
wrksA.Select
rowNum = 2
For rowNum = 2 To wrksA.Cells(Rows.Count, "B").End(xlUp).Row
If Trim(wrksA.Range("b" & rowNum)) < "" And Trim(wrksA.Range("v" &
rowNum)) < "" Then
Range("B" & rowNum).Select
Set valueToFind = Selection
' MsgBox valueToFind
Range("a" & rowNum).Select
Set playUpValue = Selection
' MsgBox playUpValue
rowFound = Application.Match(valueToFind, wrksB.Columns("A:A"),
0) ' <= displays error
' MsgBox rowFound
wrksB.Range("u" & rowFound) = playUpValue
' Range("v" & rowFound) = playUpValue
End If
Next

MsgBox "All players playing up have been modified."

End Sub

--
JohnM

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default Type Mismatch error

Change
Dim rowFound As Integer
to
Dim rowFound As Variant 'could be an error.

Then check for that error:

rowFound = Application.Match(valueToFind, wrksB.Columns("A:A"), 0)
if iserror(rowfound) then
msgbox "Not found!"
else
' MsgBox rowFound
wrksB.Range("u" & rowFound) = playUpValue
' Range("v" & rowFound) = playUpValue
...
end if

======
Ps. I never use "As Integer". "As Long" handles bigger numbers and from what
I've read Long's are faster than integers.

I never use "As Single" either. I'll use "as double".

(In this case, you still want "As Variant" because of the possibility of no
match found.

JohnM wrote:

Again, I have to say thanks in advance!

In this code, which is below: rowFound = Application.Match(valueToFind,
wrksB.Columns("A:A"), 0)

I get a Type Mismatch error. It worked at one time, then stopped. I am sure
it just needs some adjustment to the code, I am a beginner at this.

Sub FindPlayUpPlayerReplaceAgeGroup()

MsgBox "Change age group on players listed on PlayUpList", vbOKCancel

Dim wrksA As Worksheet
Dim valueToFind As Range
Dim rowNum As Long
Dim wrksB As Worksheet
Dim rowFound As Integer
Dim playUpValue As Range

Set wrksA = Worksheets("PlayUpList")
Set wrksB = Worksheets("PlDetails")
wrksA.Select
rowNum = 2
For rowNum = 2 To wrksA.Cells(Rows.Count, "B").End(xlUp).Row
If Trim(wrksA.Range("b" & rowNum)) < "" And Trim(wrksA.Range("v" &
rowNum)) < "" Then
Range("B" & rowNum).Select
Set valueToFind = Selection
' MsgBox valueToFind
Range("a" & rowNum).Select
Set playUpValue = Selection
' MsgBox playUpValue
rowFound = Application.Match(valueToFind, wrksB.Columns("A:A"),
0) ' <= displays error
' MsgBox rowFound
wrksB.Range("u" & rowFound) = playUpValue
' Range("v" & rowFound) = playUpValue
End If
Next

MsgBox "All players playing up have been modified."

End Sub

--
JohnM


--

Dave Peterson
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
Visual Basic Error Run Time Error, Type Mismatch Meg Partridge Excel Discussion (Misc queries) 12 September 10th 08 06:10 PM
runtime error 13 - type mismatch error in Excel 97 on Citrix Kevin Maher Excel Programming 7 March 8th 08 11:48 AM
Conditional Formatting - Run Time Error '13' Type Mismatch Error ksp Excel Programming 0 July 11th 06 07:06 AM
Help: Compile error: type mismatch: array or user defined type expected lvcha.gouqizi Excel Programming 1 October 31st 05 08:20 PM
Befuddled with For Next Loop ------ Run - Time Error '13' Type Mismatch Error rdavis7408 Excel Programming 1 August 25th 04 03:54 AM


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