• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

NumberFormat

Status
Niet open voor verdere reacties.

bitchkoemer

Gebruiker
Lid geworden
3 aug 2006
Berichten
39
Hallo Execel Goeroes,

Telkens ik een probleem oplos biedt zich een nieuw aan, geen probleem, zo leer ik veel bij......

Ik haal een gewijzigde cel binnen via "Sub Worksheet_Change(ByVal Target As Range)"

In deze cel mag de gebruiker verschillende zaken invoeren:

- Hij mag alfanumerieke invoer doen in de vorm van Xx, Zz of Rr (dus Z4, R8, X2 zijn geldige invoer), deze invoer handel ik af in AlfaInvoer() en werkt perfect

- Hij mag numerieke waarden invoeren maar enkel in het ":mm" format, dit probeer ik te ondervangen met 'If Target.NumberFormat = "hh:mm" Then' maar dit lijkt niet te lukken

- Hij mag geen "gewone" numerieke waarden invullen, dus 1, 3 ,-12 enz. mogen niet, als bovenstaande werkt hoef ik hiervoor niets te doen, als het geen Alfanumerieke of :mm invoer is, is het niet goed.

Ik plak hier een stukje uit mijn code waarin ik de invoer wil filteren.

Code:
        '-- controleer of de cel werd gewist, zoja doe niets.
        If Target.Value = "" Then
                                
        '-- controleer of er een numerieke waarde wordt ingevoerd
        ElseIf IsNumeric(Target.Value) = False Then
            '-- check de alfanumerieke syntax en verwerp foutieve alfanumerieke invoer
            Call AlfaInvoer(Target)
                    
        '-- er werd een numerieke waarde ingevuld (ook "hh:mm" is een numerieke waarde)
        Else
            '-- controleer of er een tijd werd ingevoerd in het "[u]:mm" formaat
            If Target.NumberFormat = "hh:mm" Then
                MsgBox "U voerde een tijd in"
                Call TijdInvoer(Target)
            
            Else
                MsgBox "u voerde geen alfanumerieke waarde of tijd in"
                Target.Value = ""
           
            End If
            
        End If

Weet er iemand hoe ik de invoer in :mm formaat kan "filteren"?

Alvast bedankt,
 
Tyd notatie in NumberFormat

Hi,

Hier gebeurt in mijn ogen iets vreemds.

Bij de invoer van een tijd in een cel met standaard opmaak wordt de notatie automatisch geselecteerd uit het tablad Opmaak/Getal/aangepast (:mm of uu:mm.)

Ik heb een aantal dingen geprobeerd maar deze automatisch geselecteerde notatie wordt door VBA niet geaccepteerd.

Indien je de notatie eerst expliciet in VBA instelt wordt hij wel geaccepteerd.
Je zult dus eerst de waarde van de invoer moeten analiseren en vervolgens het numberformat instellen.

Maar als je toch eerst de waarde analiseert kun je net zo goed direct de actie uitvoeren.
 
Laatst bewerkt:
Hi,

Hier gebeurt in mijn ogen iets vreemds.
Inderdaad, allicht kent excel wel meer van deze eigenaardigheidjes..:)

Bij de invoer van een tijd in een cel met standaard opmaak wordt de notatie automatisch geselecteerd uit het tablad Opmaak/Getal/aangepast (:mm of uu:mm.)

Indien je de notatie eerst expliciet in VBA instelt wordt hij wel geaccepteerd.
Je zult dus eerst de waarde van de invoer moeten analiseren en vervolgens het numberformat instellen.

Maar als je toch eerst de waarde analiseert kun je net zo goed direct de actie uitvoeren.


Ik ben dan ook opnieuw begonnen, de cellen waar "ingevoerd" mag worden heb ik als "text" ingesteld en analiseer de volledige input (kijken of de lengte 2 is, is het linkse character X, Y of Z en veel meer van die dingen)

Wegens tijdsgebrek heb ik de Subroutine even opzij gelegd maar ik zie het wel zitten.

Bedankt voor het meedenken....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan