• 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.

Bericht bij invoer heel getal in cel werkt maar niet met invoegen decimaal getal.

Status
Niet open voor verdere reacties.

samabert

Gebruiker
Lid geworden
27 mrt 2010
Berichten
308
Hallo iedereen,

Bij het invoegen van een getal (kolom D) krijg je een bericht indien deze waarde buiten de limiet (tab Alarm) ligt. In een volgende cel voeg je de juiste afstel waarde van het ventiel in.

Probleem: Vul in cel D17 een heel getal, hoger of lager in functie van de gegevens in tab Alarm en het alarm bericht werkt. (voorbeeld in cel D17 getal 8 en 14).
Vul nu eens een decimaal getal (6,3) in en gebruik het decimaal punt uit het numerieke pad, dit werkt niet (je krijgt altijd het bericht, max alarm limiet) en je krijgt ook een foutmelding in de cel dat de waarde opgeslagen is als tekst. Aanpassingen van punt of komma in opties en advanced werken niet.

Wat wel werkt, als ik een decimaal getal invoeg en gebruik maakt van het punt boven de toets " ; " dan werkt het alarm bericht wel op de juiste manier.


Dit is een uitgeklede versie van een werkblad dat door een forumlid van Worksheet.nl is gemaakt.

Bij voorbaat bedankt.
Mvg.
Marc
 

Bijlagen

Haal dit uit de code:
Code:
Target = UCase(Target)
 
Harry,

Bedankt om dit na te kijken, inderdaad dat is de lijn die het fout doet lopen.

Maar hoe zou je het nu kunnen oplossen dat de tekst invoer in kolommen F & G toch automatisch hoofdletters worden.
De invoer in kolom F is enkel OK en in kolom G is dit een 3 letter woord (voorbeeld MKL).
Als ik volgende regel gebruik in de code lijkt dit te werken zonder fouten, maar dit is enkel voor 1 cel. Andere codes die ik vond op het Internet geven terug dezelfde fout.
Code:
If Target = Range("F17") Then Target = UCase(Target.Value)
Of kan dit algemeen gebeuren terwijl het werkblad sluit?

Alvast bedankt.
Mvg.
Marc
 
Het was wel even pluizen.

Het benodigde gewijzigd van onderstaande code.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Count = 1 Then
 If Not Intersect(Target, Union(Range("F16:F355"), Range("G16:G355"))) Is Nothing Then
    Target = UCase(Target)
   
            'With ActiveSheet
                '.Unprotect "1"
                   
                    'Target.Locked = True
                '.Protect "1"
            'End With
    End If
   With Target
    If .Column = 4 Then  'je wijzigde niet in kolom D ofwel meerdere cellen, dan stoppen
      If Left(.Offset(, 1 - .Column).Value, 4) = "PRV " Then 'extra testje : de A-kolom begint met "PRV "
        .Offset(, 2 - .Column) = IIf(.Value = "", "", Format(Date, "dd-mm-yyyy"))
      End If
     End If
    End With

  'Set alarms in Data list
  '10 bar PRV
  If Not Intersect(Target, Range("D17,D21,D29:D69,D125,D133,D141,D149,D153:D161,D225:D265")) Is Nothing Then
    If Target.Value >= Sheets("Alarm").Range("B6").Value Then MsgBox "PRV  10,3 bar  MAX Limit  Reached"
    If Target.Value <= Sheets("Alarm").Range("C6").Value Then MsgBox "PRV  9,7 bar  MIN Limit  Reached"
  End If
 
  '15 bar PRV
  If Not Intersect(Target, Range("D169:D197,D269:D273,D285,D289:D293")) Is Nothing Then
    If Target.Value >= Sheets("Alarm").Range("B8").Value Then MsgBox "PRV  15,5 bar  MAX Limit  Reached"
    If Target.Value <= Sheets("Alarm").Range("C8").Value Then MsgBox "PRV  14,6 bar  MIN Limit  Reached"
  End If

  '13.5 bar PRV
  If Not Intersect(Target, Range("D73:D117")) Is Nothing Then
    If Target.Value >= Sheets("Alarm").Range("B7").Value Then MsgBox "PRV  13,9 bar  MAX Limit  Reached"
    If Target.Value <= Sheets("Alarm").Range("C7").Value Then MsgBox "PRV  13,0 bar  MIN Limit  Reached"
  End If

  '8 bar PRV
  If Not Intersect(Target, Range("D277:D281,D345:D353")) Is Nothing Then
    If Target.Value >= Sheets("Alarm").Range("B5").Value Then MsgBox "PRV  8,3 bar  MAX Limit  Reached"
    If Target.Value <= Sheets("Alarm").Range("C5").Value Then MsgBox "PRV  7,8 bar  MIN Limit  Reached"
  End If

  '4.5 bar PRV
  If Not Intersect(Target, Range("D12,D121,D129,D137,D145")) Is Nothing Then
    If Target.Value >= Sheets("Alarm").Range("B4").Value Then MsgBox "PRV  4,7 bar  MAX Limit  Reached"
    If Target.Value <= Sheets("Alarm").Range("C4").Value Then MsgBox "PRV  4,4 bar  MIN Limit  Reached"
  End If
  '4 bar PRV
  If Not Intersect(Target, Range("D297:D341")) Is Nothing Then
    If Target.Value >= Sheets("Alarm").Range("B3").Value Then MsgBox "PRV  4,2 bar  MAX Limit  Reached"
    If Target.Value <= Sheets("Alarm").Range("C3").Value Then MsgBox "PRV  3,9 bar  MIN Limit  Reached"
  End If
  '3 bar PRV
  If Not Intersect(Target, Range("D25,D165")) Is Nothing Then
    If Target.Value >= Sheets("Alarm").Range("B2").Value Then MsgBox "PRV  3,2 bar  MAX Limit  Reached"
    If Target.Value <= Sheets("Alarm").Range("C2").Value Then MsgBox "PRV  2,9 bar  MIN Limit  Reached"
  End If
  
   '2 bar PRV
  If Not Intersect(Target, Range("D201:D221")) Is Nothing Then
    If Target.Value >= Sheets("Alarm").Range("B9").Value Then MsgBox "PRV  2,2 bar  MAX Limit  Reached"
    If Target.Value <= Sheets("Alarm").Range("C9").Value Then MsgBox "PRV  1,9 bar  MIN Limit  Reached"
  End If
  End If
 Application.EnableEvents = True
End Sub
 
Harry,

Super!!! Het werkt helemaal, knap gedaan.:thumb:

Nogmaals heel erg bedankt.

Mvg.
Marc
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan