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

vergelijkingsfout

Status
Niet open voor verdere reacties.

gast0219

Gebruiker
Lid geworden
7 feb 2017
Berichten
107
Beste helpers van het forum,

Ik heb een momenteel een klein probleem waar ik niet uitkom omdat ik de fout niet snap.

Ik probeer een blok te maken dmv een eerder verkregen script van de helpers op het forum hier.

Code:
If Trim(TextBox5) = ws.Cells(3, 3) Then
Me.TextBox5.SetFocus
MsgBox "Dit offertenummer bestaat al, graag een ander nummer geven"
Exit Sub
End If

Wat er bij mij fout gaat, als ik een offertenummer met alleen nummers, bv 2017070 in me textbox5 heb staan, en deze is hetzelfde als ws.Cells(3, 3) dan stopt me script niet zoals ik graag zou willen. Maar als ik bij het offertenummer nou met een letter erachter zou staan bv 2017070a en in ws.Cells(3, 3) hetzelfde dan stopt me script wel zoals ik zou willen.

Wat doe ik hiermee fout? en waarom stopt me script niet als het offertenummer zonder letters is?

Welke beste helper kan en wil mij attenderen op mijn fout?

Alvast bedankt voor de reacties,

Mvg,

gast0219
 
Waarom laat je het programma niet zelf een uniek offertenummer maken ?
Dat is typisch een automatiseringstaak.


PS. Kun je svp als bezittelijk voornaamwoord 1e persoon 'mijn' gebruiken ipv 'me': bijv. mijn Textbox
 
Probeer eens:
Code:
If CLng(TextBox5.Value) = ws.Cells(3, 3) Then
 
Beste snb,

Als eerste, weer bedankt voor uw reactie.

Waarom laat je het programma niet zelf een uniek offertenummer maken ?
Dat is typisch een automatiseringstaak.

Even wat extra informatie hierover, ik heb een programma gemaakt waarin de offertenummers automatisch worden toegewezen in dit huidige bestand. Hetgene waarom ik dit probeer te creëren in dit bestand, als wij een offerte moeten maken voor bv een kerk, waarvan wij meerdere dakvlakken moeten maken en deze apart moeten offeren, dan nemen wij vaak de eerste offerte als voorbeeld ( dus de gemaakte offerte zonder lettertoevoeging is dan dus dakvlak 1).
Wat ik dus hiermee probeer te maken en voorkomen is dat me collega's of ikzelf dus offerte 2017070 pakken en aanpassen voor dakvlak 2 en we vergeten het offertenummer aan te passen, dat deze de "bewerkte originele" offerte niet opslaat als hetzelfde bestand.
Met "opslaan als" laat ik het programma namelijk opslaan in dezelfde map waar het originele bestand staat, als de waarde van Textbox5 ( offerte nummer ).
Textbox5 laat ik vullen in me userform uit ws.Cells(4, 3).
( 3, 3 ) heb ik gemaakt om dit te proberen te maken en voorkomen.

Beste SjonR
U ook bedankt voor uw reactie, alleen bij mij geeft hij een foutmelding aan dit type komt niet overeen.
 
tevens had ik het ookal met het volgende geprobeerd

Code:
If Trim(Me.TextBox5.Value) = ws.Cells(3, 3) Then
Me.TextBox5.SetFocus
MsgBox "Dit offertenummer bestaat al, graag een ander nummer geven"
Exit Sub
End If

Maar ook op deze manier doet hij niet helemaal wat ik zou willen. Met letter toevoeging aan het bestand dan stopt hij de script, zonder lettertoevoeging loopt hij door.

Misschien is het makkelijk als ik het gehele bestand even upload, er staat nu alleen voor het testen gevoelige info ( gegevens van klant ) in dus die zou ik snel weer moeten verwijderen.
 
Laatst bewerkt:
Het probleem is dat je geen voorbeeldbestand plaatst en ook maar een gedeelte van je code weergeeft. En vele helpers hebben je hier al eerder op gewezen.

Ik heb mijn code in een textbox5_afterupdate staan, ik neem aan jij ook.
 
Laatst bewerkt:
nee, ik heb de code achter CommandButton13 staan.
Hierbij even het volledige bestand
 
Laatst bewerkt:
Ik snap niet waarom je het probleem pas bij het drukken op de knop wilt aankaarten.

Als je het in een Textbox5_afterupdate zet krijgt de gebruiker direct de melding dat hij/zij een ander nummer moet kiezen.

Maar zoals snb zegt ben je met automatisch een nummer toekennen natuurlijk in één klap van al het gezeur af
 
Laatst bewerkt:
Dat zou het makkelijkste zijn als het een opvolgend offertenummer zou krijgen. Zoals in #4 geprobeerd uit te leggen is dit niet voor ons mogelijk zoals wij ons complete offertebestand hebben opgesteld.

Dan zou ik iets anders moeten gaan proberen te maken met het "opslaan als" in het programma. Dat de offertenummer automatisch een toevoeging zou krijgen van een a, b, of c ofzo.
 
maar dan snap ik alsnog niet waarom met deze code
Code:
If Trim(TextBox5) = ws.Cells(3, 3) Then
Me.TextBox5.SetFocus
MsgBox "Dit offertenummer bestaat al, graag een ander nummer geven"
Exit Sub
End If
me script wel stopt als er een letter achter het offertenummer staat, en niet als er geen letter achter staat. Hij vergelijkt toch de waarde in de textbox met de waarde van de cel?
Of het nou alleen cijfers zijn of cijfers en 1 letter, dat zou toch niet uit mogen maken? het gaat toch om de waarde die in de textbox en in de cel staat?
 
Als er geen letter achter staat is het een getal en als er wel een letter achter staat is het een tekst. En dat vereist een andere aanpak. Daarom CLng ervoor.
 
Misschien beter om in tekst om te zetten (de textbox levert altijd tekst, dus die hoeft niet):

Code:
If Trim(Me.TextBox5.Value) = cStr(ws.Cells(3, 3).Value) Then
 
Beste jkpieterse,

Dit is een makkelijke oplossing die goed werkt zonder dat ik van alles moet gaan aanpassen in het bestand. Hartelijk dank voor uw reactie en de gegeven oplossing voor mijn probleem.

Mvg,

gast0219
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan