?
Solved

vba mid function weird error

Posted on 2011-09-06
2
Medium Priority
?
390 Views
Last Modified: 2012-05-12
Hi,

So I'm trying to get the last 9 numbers from an integer by using the mid function.
In this example It's to calculate a French TVA number:

Private Sub TextBoxBtw_Change()
    CommandButtonBtw.Enabled = False
    
    Dim TrimmedResult As String
    Dim IsResultNumeric As Boolean
    
    TrimmedResult = Replace(TextBoxBtw.Text, " ", "")
    TrimmedResult = Replace(UCase(TrimmedResult), "FR", "")
    IsResultNumeric = IsNumeric(TrimmedResult)
    If Len(TrimmedResult) = 11 And IsResultNumeric = True Then
        Dim controlNumber As Integer
        Dim sirenNumber As Integer
        
        controlNumber = Mid(TrimmedResult, 1, 2)
        sirenNumber = Mid(TrimmedResult, 3)
        If controlNumber = (12 + 3 * (sirenNumber Mod 97)) Mod 97 Then
            CommandButtonBtw.Enabled = True
        End If
    End If
End Sub

Open in new window


But for some reason it gives me a "loop error?" on sirenNumber = Mid(TrimmedResult, 3)

The weird part is when I type 6 instead of 3 it works and give me the last 5 numbers.
BUT when I type for example Mid(TrimmedResult, 3, 5) which would give me also 5 numbers it doesnt work... only 4 in length work when I indicate the length.

Why oh why does vba hate me?
Any ideas?
0
Comment
Question by:Mutsop
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 85

Accepted Solution

by:
Rory Archibald earned 2000 total points
ID: 36487466
The number is too large for an integer. Change this line:

Dim sirenNumber As Integer

to this:

Dim sirenNumber As Long

0
 
LVL 3

Author Closing Comment

by:Mutsop
ID: 36487490
Offcourse around 65000 max for an integer.... Forgot about that.
Sigh :D

Thanks alot
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This code takes an Excel list of URL’s and adds a header titled “URL List”. It then searches through all URL’s in column “A”, looking for duplicates. When a duplicate is found, it is moved to the top of the list. The duplicate URL’s are then highlig…
Excel can be a tricky bit of software to get your head around. Whilst you’ll be able to eventually get to grips with the basic understanding of how to get by, there are a few Excel tips that not everybody will even know about let alone know how to d…
Graphs within dashboards are meant to be dynamic, representing data from a period of time that will change each time the dashboard is updated with new data. Rather than update each graph to point to a different set within a static set of data, t…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question