View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Bob Phillips Bob Phillips is offline
external usenet poster
 
Posts: 10,593
Default type mixturte in ByReference argument

What I would do is change the hittaRubriker sub to a function that returns
the cell found as a range object, and use that throughout. Here is an
example

Sub chartID(i As Integer)
Dim s As String, t As String
Dim foundCell As Range
If i = 0 Then
s = "Mod Dur"
t = "test"
End If
Call findAndRemoveBlanks(s)
Set foundCell = hittaRubriker(s, t)
If Not foundCell Is Nothing Then
MsgBox "chartID: " & foundCell.Address
End If
End Sub

Public Sub findAndRemoveBlanks(ByRef s As String)
Dim WB As Workbook
Dim SH As Worksheet
Dim rng, rCell As Range
End Sub

Private Function hittaRubriker(ByVal s As String, _
ByVal t As String) As Range

Set hittaRubriker = ActiveSheet.Cells.Find(s & t)
If Not hittaRubriker Is Nothing Then
MsgBox "hittaRubriker: " & hittaRubriker.Address
End If
End Function


--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Fabrizio" wrote in message
...
Great! Thank you very much Mr Philips! However I found out that I might

need
to change the code a bit. The problem is that the Sub hittaRubriker(s,t)
searches spreadsheet for the cell that contains the info in the strings s

and
t. However the address of these cells are later required. Is there any way

to
solve this. Shall I define the strings as objects instead? If so how do I
assign values to them. Any assistance that you may provide is always very
much appreciated.

Code:

Private Sub hittaRubriker(s, t As String)
Dim rng1, rng2, rng3 As Range
Set rng1 = Worksheets(s).Cells.Find(t, LookIn:=xlValues)
Call chartMaker(s, t)
End Sub

Sub chartMaker(s, t As String)
i = 1
Do Until IsEmpty(t.Offset(i, 0)) = True Or t.Offset(i, 0).Text =
strStartDatumArray(1) = True
i = i + 1
Loop
.....
End Sub

"Bob Phillips" skrev:

Change the first jmacro

Sub chartID(i As Integer)
Dim s As String, t As String
If i = 0 Then
s = "Mod Dur"
t= "test"
Call findAndRemoveBlanks(s)
Call hittaRubriker(s, t)


--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Fabrizio" wrote in message
...
OK I get this error message "type mixturte in ByReference argument".

The
code is:

Sub chartID(i As Integer)
Dim s, t As String
If i = 0 Then
s = "Mod Dur"
t= "test"
Call findAndRemoveBlanks(s)
Call hittaRubriker(s, t)

........

Public Sub findAndRemoveBlanks(s As String)
Dim WB As Workbook
Dim SH As Worksheet
Dim rng, rCell As Range

...........

Private Sub hittaRubriker(s, t As String)
MsgBox t
MsgBox s

see the first sub chartID gets an integer i. This sub then defines the
strings s and t and then calls first one sub and passes s. then it

calls
another sub and passes both s and t. There is something wrong here but

I
dont
know where... all subs that are called takes string. please help me.
Yours sincerly
Fabrizio S