Ecxel/VBA problemen migratie Office XP naar Office 2003

Status
Niet open voor verdere reacties.

Tsarevitsj

Gebruiker
Lid geworden
10 jun 2005
Berichten
71
Hallo allen,

Ooit heb ik deze code kunnen plaatsen in een roosterprogramma met de excellente hulp van Wigi. Het WorkBook heeft 16 pagina’s, in elke pagina staat onderstaande code. Het zet bij invoer eventuele kleine letters om in hoofdletters.

De meeste problemen die ik tegen kwam bij de migratie naar Office 2003 heb ik kunnen oplossen maar met onderstaand loop ik tegen een voor mij niet oplosbaar probleem aan. Iedere keer wordt de code gestopt bij ‘Mid’ en krijg ik de melding ‘Compileerfout, kan het project of de bibliotheek niet vinden’ terwijl ik het daar toch echt wel kan vinden. Waarschijnlijk gaat dit ook zo bij ‘UCase’.
Ik heb voor de overzichtelijkheid het aantal lettercombinaties even ingekort.

Wie o wie helpt mij weer op weg, bij voorbaat veel dank.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
        Application.EnableEvents = False
    If Not Intersect(Target, Range("H5:AI60")) Is Nothing And Target.Count = 1 Then
               Target.Value = ChCase(Target, "abcdfghjklmnopqrstuvwxyz") 'e en i ontbreken!
    End If
        Application.EnableEvents = True
End Sub
________________________________________________________________________
Function ChCase(c As Range, Optional sAlleenDeze As String = "abcdfghjklmnopqrstuvwxyz") As String
Dim sRegel As String, sRegelNw As String, sLetter As String, sLetterNw As String
Dim i As Integer
        sRegel = c.Value
        For i = 1 To Len(sRegel)
            sLetter = Mid(sRegel, i, 1)
        If InStr(1, sAlleenDeze, sLetter) > 0 And ActiveCell.Value = "d" Or ActiveCell.Value  = "d#" Or ActiveCell.Value = "s" Then
            sLetterNw = UCase(sLetter)
        Else:
            sLetterNw = sLetter
        End If
            sRegelNw = sRegelNw & sLetterNw
    Next i
            ChCase = sRegelNw
End Function
 
Laatst bewerkt:
Met dit doel lijkt mij deze code voldoende:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, [H5:AI60]) Is Nothing And Target.Count = 1 Then Target.Text = ucase(target.value)
End Sub
 
snb, bedankt voor het meedenken :thumb:

Helaas, de voorgestelde oplossing werkt niet, bij;

'Target,Text = UCase(Target.Value)'

loopt het vast bij UCase...
 
Kijk eens bij de verwijzingen (VBEditor/menubalk/extra/verwijzingen
 
Ehhh...daar staat een enorme rij om aan of uit te vinken. Is er iets speciaals waar ik op moet letten dan?
 
Kijk eens bij de verwijzingen (VBEditor/menubalk/extra/verwijzingen

Het is mij, dank zij jouw tip, uiteindelijk gelukt. Er stond bij verwijzingen Webtools aangevinkt terwijl die niet geïnstalleerd waren. Even uitvinken en alle code werkt weer perfect zoals die was.

Veel dank voor de input :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan