Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Excel VBA hoofdletters EN formule

Pagina: 1
Acties:

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 17-11 16:25
Ik heb in Excel een VBA scriptje dat ervoor zorgt dat kleine letters meteen worden omgezet naar hoofdletters.

code:
1
2
3
4
5
6
7
8
9
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell   As Range
    On Error Resume Next
    Application.EnableEvents = False
    For Each cell In Target
        cell = UCase(cell)
    Next
    Application.EnableEvents = True
End Sub


Nu wil ik in bepaalde cellen een formule zetten bijv. :

code:
1
SUBSTITUTE(A84; "F"; "LPAB0000")


Maar als ik dat doe, dan verschijnt meteen de juiste waarde op de plek waar ik de formule zet, maar de formule is dan meteen weg. Als A84 dan verandert, dan gebeurt er niets meer. Dit heeft te maken met het VBA script, als ik die namelijk verwijder dan gaat het wel goed.

Hoe kan ik toch allebei gebruiken?

¯\_(ツ)_/¯


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Pas je Change()-code aan zodat wordt gecontroleerd of de betreffende cel een formule bevat. Zo nee, dan UCase gebruiken.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 17-11 16:25
Ehm....kun je me op weg helpen? Ik heb geen idee hoe je dit inbouwt....

¯\_(ツ)_/¯


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

[google=vba check if cell contains formula] geeft voorbeeldcode en al :P (Edit: dus de range.HasFormula property)
Dan de huidige code aanpassen met een if .. then .. else.

Maar ik zou niet adviseren code te gebruiken die teksten aanpast, als je de code (en vooral de uitzonderingen er bij) niet begrijpt.

[ Voor 7% gewijzigd door F_J_K op 12-11-2014 16:28 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Darf
  • Registratie: Juni 2010
  • Laatst online: 13-10 23:25
For Each cell In Target
if cell.Value = SUBSTITUTE* Then
else
cell = UCase(cell)
Next
Endif

Oid

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 17-11 16:25
Top, ik kan hier wel wat mee. "Helaas" kan ik vrijdag weer bij het bestand, maar als ik er niet uit kom, dan meld ik me hier weer. Bedankt zover jongens!

¯\_(ツ)_/¯


Verwijderd

Het is niet verstandig om een 'Private Sub...' voor het gehele blad te laten gelden als je maar een beperkt gedeelte van het blad gebruikt. Het kan de werking van Excel enorm vertragen.
En ik weet niet wat de reden is dat je 'On error rusume next' hebt toegevoegd, maar 'On error' bestaat niet voor niets, dat kun je beter intact laten.
Pagina: 1