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

Invoeren gegevens

Status
Niet open voor verdere reacties.

rmk75

Gebruiker
Lid geworden
30 mrt 2013
Berichten
384
Goedemorgen,

Voor een klant moeten wij schepen registeren welke een bepaald alarm genereren.
Nu ben ik elke maandag bezig om het rapport enigzins netjes te maken omdat de ene collega alles in hoofdletters doet, de andere in kleine letters etc etc.
Ik kon in eerste instantie dmv validatie wat afdwingen maar niet genoeg blijkbaar. Ook door het weergeven van bepaalde tekst door validatie beweegt mensen er blijkbaar niet toe om het rapport 'netjes' in te vullen.
Graag zou ik willen dat kolom D altijd in hoofdletters komt te staan (dit kunnen alleen letters, alleen cijfers of combinatie letters en cijfers wezen), kolom E zou ik het liefst alle woorden beginnen met een hoofdletter gevolgd door kleine letters.
En, indien mogelijk, moet datum en tijd ingevuld zijn/worden.
Ik neem aan dat zoiets alleen mogelijk is met VBA..??

Zou iemand hier wellicht eens naar willen kijken?

Alvast bedankt.

Bekijk bijlage Forum vraag VBA 26-02.xlsx
 
Bv.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, ListObjects(1).DataBodyRange.Columns(3).Resize(, 2)) Is Nothing Then
 Application.EnableEvents = False
    Select Case Target.Column
       Case 4
         Target = UCase(Target)
       Case 5
         Target = UCase(Left(Target, 1)) & LCase(Mid(Target, 2))
     End Select
  Application.EnableEvents = True
End If
End Sub
 
Helemaal geweldig HSV, hier kan ik wat mee!
Klein verzoekje nog... hoe moet de code worden als ik in de kolom 'Vesselname' elk nieuw woord met een hoofdletter wil laten beginnen..dus bijv. Stena Transporter of A2B Independent?

Brutale vraag...zou je misschien kolom O ook nog willen toevoegen om te beginnen met een hoofdletter.


Grt rmk
 
Laatst bewerkt:
Zo.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, ListObjects(1).DataBodyRange.Columns(3).Resize(, 2)) Is Nothing Then
 Application.EnableEvents = False
    Select Case Target.Column
       Case 4
         Target = UCase(Target)
       Case 5
[COLOR=#ff0000]         Target = StrConv(Target, vbProperCase)[/COLOR]
     End Select
  Application.EnableEvents = True
End If
End Sub
 
:thumb: HSV.

Ik wilde kolom O ook nog toevoegen en had dus gedacht in de code toe te voegen:

Case 15
Target = UCase(Target)

maar dat werkt niet...

Zou je me misschien nog een plezier willen doen en deze ook toevoegen.
 
Dat gaat zo.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
With ListObjects(1).DataBodyRange
 If Not Intersect(Target, Union(.Columns(3).Resize(, 2), .Columns(14))) Is Nothing Then
 Application.EnableEvents = False
    Select Case Target.Column
       Case 4, 15
         Target = UCase(Target)
       Case 5
         Target = StrConv(Target, vbProperCase)
     End Select
  Application.EnableEvents = True
End If
End With
End Sub
 
Ohh, op die manier.
Weer wat geleerd.

Bedankt HSV!!!
 
Wow, dit is ook netjes!!!

Hoe zou ik hierin e.e.a. kunnen aanpassen?(ben helemaal niet bekend met zullen formulieren)
Bijv. de heading kan alleen maar een getal zijn tussen 0 en 360 graden

grt rmk
 
Helemaal top gast0660.
Ik wil hier wel meer van weten want ik heb nog wel wat ideeen voor op de zaak waar ik dit voor kan gebruiken.
Hoe noem je dit..? userform o.i.d.?

Grt rmk
 
Goedemorgen,

Ik ben beide opties aan het bekijken en ik had eigenlijk nog een vraag aan HSV. In kolom O wordt nu de eerste letter van de regel als hoofdletter gezet. Hoe kan ik 'm zo krijgen dat elke eerste letter van een nieuwe zin als hoofdletter word gezet? We hebben nl. regelmatig meerdere zin in deze cel staan.

grt rmk
 
Als je gebruik maakt van Alt+Enter voor de nieuwe regel.

Misschien kan het veel eenvoudiger, maar dit werkt.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim j As Long, letter As Long, c00 As String
With ListObjects(1).DataBodyRange
 If Not Intersect(Target, Union(.Columns(3).Resize(, 2), .Columns(14))) Is Nothing Then
 Application.EnableEvents = False
    Select Case Target.Column
       Case 4
         Target = UCase(Target)
       Case 5
         Target = StrConv(Target, vbProperCase)
       Case 15
         [COLOR="#0000FF"]c00 = UCase(Left(Target, 1)) & LCase(Mid(Target, 2))
           If InStr(c00, Chr(10)) > 0 Then
             For j = 1 To Len(c00) - Len(Application.Substitute(c00, Chr(10), ""))
                letter = InStr(Application.Substitute(c00, Chr(10), "##", j), "##")
                Mid(c00, letter + 1, 1) = UCase(Mid(c00, letter + 1, 1))
             Next j
           End If
         Target = c00[/COLOR]
     End Select
  Application.EnableEvents = True
End If
End With
End Sub
 
Laatst bewerkt:
Goedenavond,

Zojuist even getest maar volgens mij werkt deze niet helemaal. Ik zie de eerste letter van de 2e zin heel snel wijzigen maar daarna blijft het een kleine letter..

grt rmk
 
Alleen de eerste letter van elke zin wordt een hoofdletter de rest inderdaad kleine.
 
Laatst bewerkt:
Goedemiddag,

Kan Excel ook een nieuwe zin in dezelfde cel herkennen? Bijv. als een zin word afgesloten met een punt en daarna volgt een nieuw woord dat dit woord dan als begin van een nieuw zin word gezien?
De laatste code geeft inderdaad alleen aan het begin een hoofdletter en ik zou graag elke zin (in een cel) met een hoofdletter laten beginnen.
Liefst niet d.m.v. Alt + enter.
Ik liet voorheen, wanneer men een bepaalde cel selecteerde, een tekst tonen waarin bijv. stond 'Let op, vul het callsign in in hoofdletters'. Zelfs dan werd het niet gedaan..:(

grt rmk
 
En als je iets afkort?

bijvoorbeeld:
sec. → seconden.
bv. → bijvoorbeeld?

Dan gaat de rest wat bij de zin hoort naar een nieuw regel.
 
Laatst bewerkt:
Lees mijn vorig schrijven eens rustig door.
 
maar wanneer ik daarna enter dan veranderd het weer naar een kleine letter...
of doe ik iets niet goed??
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan