help with code for scientific worksheet

A

Anne

I've written the following code, with comments, to work in a workbook for
calculating values for scientific pipettors. However, when I run the code, I
get an error that says type mismatch. Am I missing something? Do I need to
declare the H5 cell specifically as a double or something? Help!

Sub PipettorValueFillIn()
'Based on the value typed into cell H5 on the sheet
Pipettor_Calibration_Worksheet,
'this module will look up and return the volume, percent and CV for the
input value.
'Volume, percent and CV are in the sheet named errors in cells b9 to d11 if
the vallue is 0.2, for example.
'The volume, percent and CV should be placed in the sheet named Pipettor in
cells J9 to L11.

If [pipettor_calibration_worksheet.h5] = 0.2 Then
[pipettor.j9:l11] = [errors.b9:d11]
End If
If [pipettor_calibration_worksheet.h5] = 0.5 Then
[pipettor.j9:l11] = [errors.b13:d15]
End If
If [pipettor_calibration_worksheet.h5] = 1 Then
[pipettor.j9:l11] = [errors.b17:d19]
End If
If [pipettor_calibration_worksheet.h5] = 2 Then
[pipettor.j9:l11] = [errors.b21:d23]
End If
If [pipettor_calibration_worksheet.h5] = 10 Then
[pipettor.j9:l11] = [errors.b25:d27]
End If
If [pipettor_calibration_worksheet.h5] = 20 Then
[pipettor.j9:l11] = [errors.b29:d31]
End If
If [pipettor_calibration_worksheet.h5] = 100 Then
[pipettor.j9:l11] = [errors.b33:d35]
End If
If [pipettor_calibration_worksheet.h5] = 500 Then
[pipettor.j9:l11] = [errors.b37:d39]
End If
If [pipettor_calibration_worksheet.h5] = 1000 Then
[pipettor.j9:l11] = [errors.b41:d43]
End If
End Sub
 
E

eliano

I've written the following code, with comments, to work in a workbook for
calculating values for scientific pipettors. However, when I run the code, I
get an error that says type mismatch. Am I missing something? Do I need to
declare the H5 cell specifically as a double or something? Help!

Sub PipettorValueFillIn()
'Based on the value typed into cell H5 on the sheet
Pipettor_Calibration_Worksheet,
'this module will look up and return the volume, percent and CV for the
input value.
'Volume, percent and CV are in the sheet named errors in cells b9 to d11 if
the vallue is 0.2, for example.
'The volume, percent and CV should be placed in the sheet named Pipettor in
cells J9 to L11.

If [pipettor_calibration_worksheet.h5] = 0.2 Then
[pipettor.j9:l11] = [errors.b9:d11]
End If
If [pipettor_calibration_worksheet.h5] = 0.5 Then
[pipettor.j9:l11] = [errors.b13:d15]
End If
If [pipettor_calibration_worksheet.h5] = 1 Then
[pipettor.j9:l11] = [errors.b17:d19]
End If
If [pipettor_calibration_worksheet.h5] = 2 Then
[pipettor.j9:l11] = [errors.b21:d23]
End If
If [pipettor_calibration_worksheet.h5] = 10 Then
[pipettor.j9:l11] = [errors.b25:d27]
End If
If [pipettor_calibration_worksheet.h5] = 20 Then
[pipettor.j9:l11] = [errors.b29:d31]
End If
If [pipettor_calibration_worksheet.h5] = 100 Then
[pipettor.j9:l11] = [errors.b33:d35]
End If
If [pipettor_calibration_worksheet.h5] = 500 Then
[pipettor.j9:l11] = [errors.b37:d39]
End If
If [pipettor_calibration_worksheet.h5] = 1000 Then
[pipettor.j9:l11] = [errors.b41:d43]
End If
End Sub

Hi Anne.
I believe not only type mismatch, however try with this scheme:

'-------
If [pipettor_calibration_worksheet].[h5] = 0.2 Then
[Errors].[b9:d11].Copy Destination:=[pipettor].[j9:l11]
ElseIf [pipettor_calibration_worksheet].[h5] = 0.5 Then
[Errors].[b13:d15].Copy Destination:=[pipettor].[j9:l11]
elseif........................
................................
elseif.......................
................................
elseif.......................
...............................
else
'do nothing
end if
..................
.................
end sub

and be siure to calibrate correctrly your pipettors.:))
Regards
Eliano
 
P

Per Jessen

Hi Anne

Try to replace the does with exclamation signs:
If [pipettor_calibration_worksheet!h5] = 0.2 Then

Or try the macro below:

Sub PipettorValueFillIn()
'Based on the value typed into cell H5 on the sheet
Pipettor_Calibration_Worksheet,
'this module will look up and return the volume, percent and CV for
the input value.
'Volume, percent and CV are in the sheet named errors in cells b9 to
d11 if the vallue is 0.2, for example.
'The volume, percent and CV should be placed in the sheet named
Pipettor in cells J9 to L11.
Dim Dest As Range

Set DestCell = Sheets("pipettor").Range("j9")
Select Case Sheets("pipettor_calibration_worksheet").Range("h5")
Case Is = 0.2
Sheets("errors").Range("b9:d11").Copy DestCell
Case Is = 0.5
Sheets("errors").Range("b13:d15").Copy DestCell
Case Is = 1
Sheets("errors").Range("b17:d19").Copy DestCell
Case Is = 2
Sheets("errors").Range("b21:d23").Copy DestCell
Case Is = 10
Sheets("errors").Range("b25:d27").Copy DestCell
Case Is = 20
Sheets("errors").Range("b29:d31").Copy DestCell
Case Is = 100
Sheets("errors").Range("b33:D35").Copy DestCell
Case Is = 500
Sheets("errors").Range("b37:d39").Copy DestCell
Case Is = 1000
Sheets("errors").Range("b41:d43").Copy DestCell
End Select
End Sub


I've written the following code, with comments, to work in a workbook for
calculating values for scientific pipettors. However, when I run the code, I
get an error that says type mismatch. Am I missing something? Do I need to
declare the H5 cell specifically as a double or something? Help!

Sub PipettorValueFillIn()
'Based on the value typed into cell H5 on the sheet
Pipettor_Calibration_Worksheet,
'this module will look up and return the volume, percent and CV for the
input value.
'Volume, percent and CV are in the sheet named errors in cells b9 to d11 if
the vallue is 0.2, for example.
'The volume, percent and CV should be placed in the sheet named Pipettor in
cells J9 to L11.

If [pipettor_calibration_worksheet.h5] = 0.2 Then
[pipettor.j9:l11] = [errors.b9:d11]
End If
If [pipettor_calibration_worksheet.h5] = 0.5 Then
[pipettor.j9:l11] = [errors.b13:d15]
End If
If [pipettor_calibration_worksheet.h5] = 1 Then
[pipettor.j9:l11] = [errors.b17:d19]
End If
If [pipettor_calibration_worksheet.h5] = 2 Then
[pipettor.j9:l11] = [errors.b21:d23]
End If
If [pipettor_calibration_worksheet.h5] = 10 Then
[pipettor.j9:l11] = [errors.b25:d27]
End If
If [pipettor_calibration_worksheet.h5] = 20 Then
[pipettor.j9:l11] = [errors.b29:d31]
End If
If [pipettor_calibration_worksheet.h5] = 100 Then
[pipettor.j9:l11] = [errors.b33:d35]
End If
If [pipettor_calibration_worksheet.h5] = 500 Then
[pipettor.j9:l11] = [errors.b37:d39]
End If
If [pipettor_calibration_worksheet.h5] = 1000 Then
[pipettor.j9:l11] = [errors.b41:d43]
End If
End Sub
 
A

Anne

Thanks, Per and Eliano! The CASE statements worked out great!
Anne

Per Jessen said:
Hi Anne

Try to replace the does with exclamation signs:
If [pipettor_calibration_worksheet!h5] = 0.2 Then

Or try the macro below:

Sub PipettorValueFillIn()
'Based on the value typed into cell H5 on the sheet
Pipettor_Calibration_Worksheet,
'this module will look up and return the volume, percent and CV for
the input value.
'Volume, percent and CV are in the sheet named errors in cells b9 to
d11 if the vallue is 0.2, for example.
'The volume, percent and CV should be placed in the sheet named
Pipettor in cells J9 to L11.
Dim Dest As Range

Set DestCell = Sheets("pipettor").Range("j9")
Select Case Sheets("pipettor_calibration_worksheet").Range("h5")
Case Is = 0.2
Sheets("errors").Range("b9:d11").Copy DestCell
Case Is = 0.5
Sheets("errors").Range("b13:d15").Copy DestCell
Case Is = 1
Sheets("errors").Range("b17:d19").Copy DestCell
Case Is = 2
Sheets("errors").Range("b21:d23").Copy DestCell
Case Is = 10
Sheets("errors").Range("b25:d27").Copy DestCell
Case Is = 20
Sheets("errors").Range("b29:d31").Copy DestCell
Case Is = 100
Sheets("errors").Range("b33:D35").Copy DestCell
Case Is = 500
Sheets("errors").Range("b37:d39").Copy DestCell
Case Is = 1000
Sheets("errors").Range("b41:d43").Copy DestCell
End Select
End Sub


I've written the following code, with comments, to work in a workbook for
calculating values for scientific pipettors. However, when I run the code, I
get an error that says type mismatch. Am I missing something? Do I need to
declare the H5 cell specifically as a double or something? Help!

Sub PipettorValueFillIn()
'Based on the value typed into cell H5 on the sheet
Pipettor_Calibration_Worksheet,
'this module will look up and return the volume, percent and CV for the
input value.
'Volume, percent and CV are in the sheet named errors in cells b9 to d11 if
the vallue is 0.2, for example.
'The volume, percent and CV should be placed in the sheet named Pipettor in
cells J9 to L11.

If [pipettor_calibration_worksheet.h5] = 0.2 Then
[pipettor.j9:l11] = [errors.b9:d11]
End If
If [pipettor_calibration_worksheet.h5] = 0.5 Then
[pipettor.j9:l11] = [errors.b13:d15]
End If
If [pipettor_calibration_worksheet.h5] = 1 Then
[pipettor.j9:l11] = [errors.b17:d19]
End If
If [pipettor_calibration_worksheet.h5] = 2 Then
[pipettor.j9:l11] = [errors.b21:d23]
End If
If [pipettor_calibration_worksheet.h5] = 10 Then
[pipettor.j9:l11] = [errors.b25:d27]
End If
If [pipettor_calibration_worksheet.h5] = 20 Then
[pipettor.j9:l11] = [errors.b29:d31]
End If
If [pipettor_calibration_worksheet.h5] = 100 Then
[pipettor.j9:l11] = [errors.b33:d35]
End If
If [pipettor_calibration_worksheet.h5] = 500 Then
[pipettor.j9:l11] = [errors.b37:d39]
End If
If [pipettor_calibration_worksheet.h5] = 1000 Then
[pipettor.j9:l11] = [errors.b41:d43]
End If
End Sub
 
P

Per Jessen

Thanks for your reply. I am glad to help.
Per

Thanks, Per and Eliano! The CASE statements worked out great!
Anne



Per Jessen said:
Try to replace the does with exclamation signs:
If [pipettor_calibration_worksheet!h5] = 0.2 Then
Or try the macro below:
Sub PipettorValueFillIn()
'Based on the value typed into cell H5 on the sheet
Pipettor_Calibration_Worksheet,
'this module will look up and return the volume, percent and CV for
the input value.
'Volume, percent and CV are in the sheet named errors in cells b9 to
d11 if the vallue is 0.2, for example.
'The volume, percent and CV should be placed in the sheet named
Pipettor in cells J9 to L11.
Dim Dest As Range
Set DestCell = Sheets("pipettor").Range("j9")
Select Case Sheets("pipettor_calibration_worksheet").Range("h5")
Case Is = 0.2
    Sheets("errors").Range("b9:d11").Copy DestCell
Case Is = 0.5
    Sheets("errors").Range("b13:d15").Copy DestCell
Case Is = 1
    Sheets("errors").Range("b17:d19").Copy DestCell
Case Is = 2
    Sheets("errors").Range("b21:d23").Copy DestCell
Case Is = 10
    Sheets("errors").Range("b25:d27").Copy DestCell
Case Is = 20
    Sheets("errors").Range("b29:d31").Copy DestCell
Case Is = 100
    Sheets("errors").Range("b33:D35").Copy DestCell
Case Is = 500
    Sheets("errors").Range("b37:d39").Copy DestCell
Case Is = 1000
    Sheets("errors").Range("b41:d43").Copy DestCell
End Select
End Sub
I've written the following code, with comments, to work in a workbookfor
calculating values for scientific pipettors. However, when I run the code, I
get an error that says type mismatch. Am I missing something? Do I need to
declare the H5 cell specifically as a double or something? Help!
Sub PipettorValueFillIn()
'Based on the value typed into cell H5 on the sheet
Pipettor_Calibration_Worksheet,
'this module will look up and return the volume, percent and CV for the
input value.
'Volume, percent and CV are in the sheet named errors in cells b9 to d11 if
the vallue is 0.2, for example.
'The volume, percent and CV should be placed in the sheet named Pipettor in
cells J9 to L11.
If [pipettor_calibration_worksheet.h5] = 0.2 Then
[pipettor.j9:l11] = [errors.b9:d11]
End If
If [pipettor_calibration_worksheet.h5] = 0.5 Then
[pipettor.j9:l11] = [errors.b13:d15]
End If
If [pipettor_calibration_worksheet.h5] = 1 Then
[pipettor.j9:l11] = [errors.b17:d19]
End If
If [pipettor_calibration_worksheet.h5] = 2 Then
[pipettor.j9:l11] = [errors.b21:d23]
End If
If [pipettor_calibration_worksheet.h5] = 10 Then
[pipettor.j9:l11] = [errors.b25:d27]
End If
If [pipettor_calibration_worksheet.h5] = 20 Then
[pipettor.j9:l11] = [errors.b29:d31]
End If
If [pipettor_calibration_worksheet.h5] = 100 Then
[pipettor.j9:l11] = [errors.b33:d35]
End If
If [pipettor_calibration_worksheet.h5] = 500 Then
[pipettor.j9:l11] = [errors.b37:d39]
End If
If [pipettor_calibration_worksheet.h5] = 1000 Then
[pipettor.j9:l11] = [errors.b41:d43]
End If
End Sub- Skjul tekst i anførselstegn -

- Vis tekst i anførselstegn -
 
R

Rick Rothstein

The OP should definitely use your Select Case construction... there is no
argument over that. However, it is a weekend, things are a little slow on
the newsgroups and I was a little bored, so I decided to try and reduce your
macro's code down to a single line of code... just for the fun of it<g>.
Here is the results of that effort...

Sub PipettorValueFillIn()
Sheets("errors").Range("B9:D11").Offset((4 * (InStr( _
"00.2 00.5 0001 0002 0010 0020 0100 0500 1000", _
Right("000" & Sheets("pipettor_calibration_worksheet"). _
Range("h5"), 4)) - 1) \ 5)).Copy Sheets("pipettor").Range("j9")
End Sub

--
Rick (MVP - Excel)


Per Jessen said:
Hi Anne

Try to replace the does with exclamation signs:
If [pipettor_calibration_worksheet!h5] = 0.2 Then

Or try the macro below:

Sub PipettorValueFillIn()
'Based on the value typed into cell H5 on the sheet
Pipettor_Calibration_Worksheet,
'this module will look up and return the volume, percent and CV for
the input value.
'Volume, percent and CV are in the sheet named errors in cells b9 to
d11 if the vallue is 0.2, for example.
'The volume, percent and CV should be placed in the sheet named
Pipettor in cells J9 to L11.
Dim Dest As Range

Set DestCell = Sheets("pipettor").Range("j9")
Select Case Sheets("pipettor_calibration_worksheet").Range("h5")
Case Is = 0.2
Sheets("errors").Range("b9:d11").Copy DestCell
Case Is = 0.5
Sheets("errors").Range("b13:d15").Copy DestCell
Case Is = 1
Sheets("errors").Range("b17:d19").Copy DestCell
Case Is = 2
Sheets("errors").Range("b21:d23").Copy DestCell
Case Is = 10
Sheets("errors").Range("b25:d27").Copy DestCell
Case Is = 20
Sheets("errors").Range("b29:d31").Copy DestCell
Case Is = 100
Sheets("errors").Range("b33:D35").Copy DestCell
Case Is = 500
Sheets("errors").Range("b37:d39").Copy DestCell
Case Is = 1000
Sheets("errors").Range("b41:d43").Copy DestCell
End Select
End Sub


I've written the following code, with comments, to work in a workbook for
calculating values for scientific pipettors. However, when I run the
code, I
get an error that says type mismatch. Am I missing something? Do I need
to
declare the H5 cell specifically as a double or something? Help!

Sub PipettorValueFillIn()
'Based on the value typed into cell H5 on the sheet
Pipettor_Calibration_Worksheet,
'this module will look up and return the volume, percent and CV for the
input value.
'Volume, percent and CV are in the sheet named errors in cells b9 to d11
if
the vallue is 0.2, for example.
'The volume, percent and CV should be placed in the sheet named Pipettor
in
cells J9 to L11.

If [pipettor_calibration_worksheet.h5] = 0.2 Then
[pipettor.j9:l11] = [errors.b9:d11]
End If
If [pipettor_calibration_worksheet.h5] = 0.5 Then
[pipettor.j9:l11] = [errors.b13:d15]
End If
If [pipettor_calibration_worksheet.h5] = 1 Then
[pipettor.j9:l11] = [errors.b17:d19]
End If
If [pipettor_calibration_worksheet.h5] = 2 Then
[pipettor.j9:l11] = [errors.b21:d23]
End If
If [pipettor_calibration_worksheet.h5] = 10 Then
[pipettor.j9:l11] = [errors.b25:d27]
End If
If [pipettor_calibration_worksheet.h5] = 20 Then
[pipettor.j9:l11] = [errors.b29:d31]
End If
If [pipettor_calibration_worksheet.h5] = 100 Then
[pipettor.j9:l11] = [errors.b33:d35]
End If
If [pipettor_calibration_worksheet.h5] = 500 Then
[pipettor.j9:l11] = [errors.b37:d39]
End If
If [pipettor_calibration_worksheet.h5] = 1000 Then
[pipettor.j9:l11] = [errors.b41:d43]
End If
End Sub
 
Top