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

Opgelost Celwaarde door VBA aanpassen door voorloop letters toe te voegen

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Atwist

Terugkerende gebruiker
Lid geworden
24 jan 2006
Berichten
1.076
Besturingssysteem
Wndows 11
Office versie
2016
Hallo
Ik weet niet of de titel duidelijk is, maar wat ik er mee bedoel.
zou graag, als ik in de cellen van kolom A mijn artikelnummer ingeef dat er automatisch de letters "HD-" voorkomen te staan als ik op enter druk.
Dit kan volgens mij alleen met VBA.
Ik heb al iets dergelijks met hoofdletters.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 Then 'kolom D=1e kolom
Target.Value = UCase(Target) 'kleine letters naar hoofdletters
End If
Application.EnableEvents = True
End Sub
Dit werkt prima en hoop nu ook iets dergelijks te vinden voor de voorloop letters

Heeft iemand hiervoor een oplossing???????
 
Dat kan het eenvoudigst met het numberformat: "HD-0" of "HD-@"
 
Hallo snb,
Bedoel je hiermee de cel eigenschappen??
 
Nee, volgens mij moet het met VBA.
Heb met mijn kennis er het onderstaande van gemaakt
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim format As Range
Set format = Range("A3:A300")
format.NumberFormat = "HD-" 'Voorloop text
End Sub
Krijg hiermee wel een verandering naar een datum.
 
Ja, ik bedoel de celeigenschappen; zonder VBA.
 
Ik snap er even niets meer van, ik krijg nu alleen maar Datumnotatie,
als ik het getal 1020 dan kommt er een datum uit, zie screenshot.
 

Bijlagen

  • Datums.png
    Datums.png
    6,3 KB · Weergaven: 1
Celeigenschappen, aangepast, "HD-"0, let op de plaats van de ""
 
Hallo AHulpje
Deze werkt perfect
Helaas werkt nu het Ver.zoeken niet meer, deze werkte voorheen wel.
 

Bijlagen

  • ver.zoeken.png
    ver.zoeken.png
    7 KB · Weergaven: 1
Nu heb ik het eens via ChatGPT geprobeerd
Die is met deze oplossing gekommen en zo als ik het met mijn kennis kan zien zou deze moeten werken, maar helaas.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    Dim cell As Range
    Dim fixedLetters As String
    
    ' Die Ziel-Zellen, in denen die Buchstaben hinzugefügt werden sollen
    Set rng = Range("A1:A100") ' Ändern Sie den Bereich entsprechend
    
    ' Die festen Buchstaben, die hinzugefügt werden sollen
    fixedLetters = "ABC" ' Ändern Sie die Buchstaben nach Bedarf
    
    ' Überprüfen, ob die geänderten Zellen im Zielbereich liegen
    If Not Intersect(Target, rng) Is Nothing Then
        Application.EnableEvents = False ' Ereignisse deaktivieren, um Endlosschleifen zu verhindern
        For Each cell In Intersect(Target, rng)
            ' Überprüfen, ob der Wert in der Zelle eine Zahl ist
            If IsNumeric(cell.Value) Then
                ' Füge die festen Buchstaben zur Zelle hinzu
                cell.Value = fixedLetters & cell.Value
            End If
        Next cell
        Application.EnableEvents = True ' Ereignisse wieder aktivieren
    End If
End Sub
 
Een kleine toevoeging aan je bestaande Worksheet_Change event:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Column = 1 Then 'kolom D=1e kolom
        Target.Value = UCase(Target) 'kleine letters naar hoofdletters
        If Left(Target, 3) <> "HD-" Then
            Target = "HD-" & Target
        End If
    End If
    Application.EnableEvents = True
End Sub
 
Helaas blijft het VLOOKUP niet werken,
=IF(A31>0;VLOOKUP(A31;Artikel!$A$1:$B$191;2);" ")
Deze kijkt dus naar cel A31 maar ziet een getal staan 1001 in plaats van HD-1001 dus zal deze niets vinden in het zoek bereik.
 

Bijlagen

  • Alleen getal.png
    Alleen getal.png
    5,5 KB · Weergaven: 0
Het lijkt mij verstandiger om nu een voorbeeld bestandje te uploaden of het origineel wat natuurlijk ontdaan is van gevoelige info.
 
Ik heb hier nu een voorbeeld bestandje
 

Bijlagen

Zet de celeigenschappen van kolom A op standaard en plaats "Application.EnableEvents = False" op deze regel:
Code:
    If Target.Column = 1 Then 'kolom D=1e kolom
        Application.EnableEvents = False
Het commentaar "kolom D = 1e kolom" komt mij ietwat vreemd voor.
 
Dankje dit werkt
 
Helaas werkt het nog niet echt lekker, zowel de bijdrage van emields als van AHulpje.
Beide werken prima zo lang je maar niet een cel leeg maakt en deze dan weer van nummer voorziet dan gaan bei de mist in.
 

Bijlagen

  • toch niet lekker.png
    toch niet lekker.png
    5,4 KB · Weergaven: 0
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan