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

Procedure om velden leeg te maken doet wellicht niet steeds hetzelfde.

Status
Niet open voor verdere reacties.

gGerretje

Gebruiker
Lid geworden
12 mrt 2008
Berichten
437
Hallo helpers,

Ik ben nog steeds bezig met mijn programma om pallets te scannen.
Op een paar kleinigheidjes na loopt alles nu naar behoren.
Ik hoop dat jullie me daarmee kunnen helpen.

Wat is het geval:
Mijn "klant" moet pallets met producten samenvoegen. Met andere woorden: een (bron)pallet met product A en een (bron)pallet met product B moeten worden samengevoegd tot 2 (doel)pallets, elk met product A en B. Dit gebeurt met de knop scannen (2x2) en Opslaan (2x2). Er moeten dan 2 bronpallets en 2 doelpallets gescand worden
Soms zijn het 3 pallets die samengevoegd moeten worden en soms 4. Dan is het dus Scannen of Opslaan (2x3) of (2x4). Er moeten dan 3 of 4 bronpallets en 3 of 4 doelpallets gescand worden..
Na het scannen in het betreffende formulier worden de gescande codes gecontroleerd op validiteit (de eerste 12 cijfers liggen vast en het moeten 20 cijfers zijn)
Daarna worden de codes in het scanscherm geplaatst en gecontroleerd op voorkomen op het codeblad, eventuele dubbelscan en op lengte.
(Die controle op lengte is feitelijk niet meer nodig, maar stond er nog in uit eerdere versies.)

Na mijn laatste aanpassing is er ook een vrije-keuze scan mogelijk. In dat geval kunnen er 2x6 bron- of doelpallets gescand worden, maar het mogen er ook minder zijn. In dat geval blijven er op het werkblad ScanScherm blauwe velden leeg, maar de eerste 12 cijfers zijn nog steeds heilig en het moeten er ook steeds 20 zijn. De lege velden worden ook me opgeslagen.

Voorzover ik kan nagaan gaat alles goed, maar er is toch een probleem met de weergave.

Wat is het probleem:
Als ik pallets scan en ik klik op Opslaan 2x2 pallets zijn de daarnet nog gevulde blauwe velden op het scanscherm mooi leeg, maar de andere bevatten een nul.
Dat is vreemd want bij dat leegmaken is de procedure CodeveldenLeegmaken gebruikt.
Diezelfde procedure wordt aangeroepen als ik op hetwerkblad ScanScherm op Alles Leegmaken klik en dan wordt alles op nul gezet. Terwijl ik ze juist leeg wil hebben.
Waarom wil ik ze persé leeg hebben? Omdat ik dan in mijn werkblad "SSCC-codes" de regels met een leeg veld in kolom C of J kan verwijderen. Die cellen kunnnen leeg worden bij de vrije keuze bij het scannen.

De vraag is dus: Wat gaat er fout bij het leegmaken van die velden.
Ik begrijp wel dat er ook effectievere oplossingen zijn voor de rest van mijn gebruikte codes, maar dit begrijp ik tenminste nog.

(Nog een aanvulling: ik heb de cellen A12 t/m A22 gekoppeld aan de scanvelden (tekstvelden) op de formulieren.
Die kolom wordt A wordt afgedekt met een afbeelding zodat de gebruiker niet per ongeluk iets kan wijzigen. Het formulier is verder beveiligd.)

Bedankt alvast voor jullie hulp,
Groetjes,
Ger

Bekijk bijlage Test_v6.2.xlsm
 
Beste gGerretje ,

Als ik het goed begrijp wil jij, zodra de procedure CodeveldenLeegmaken() aangeroepen wordt, de blauwe velden achter Bron en Doel leeg hebben.

Een mogelijke oplossing hiervoor is het vervangen van:

Code:
Worksheets("ScanScherm").Range("A11:A22").ClearContents

Naar:
Code:
Worksheets("ScanScherm").Range("A11:A22").value = ""

Dit zorgt ervoor dat de waarde in jouw range een lege tekst string wordt.
Omdat jouw blauwe kolommen hiernaar verwijzen krijgen zij dus ook als waarde een lege tekst string in plaats van 0.
 
Hallo NogGeenGuru,

Die had ik eerst gebruikt, maar het probleem was dat de velden dan kennelijk niet leeg waren (ik had daar een paar weken geleden al eerder een vraag over gesteld).
Helemaal opgelost is dat toen niet volgens mij, maar ik kon ermee verder.
Ik had dus die regel met
Code:
.value = ""
maar als ik dan bij vrije keuze ging scannen en ik liet een paar velden leeg (dat moet bij deze optie kunnen), dan werd alles netjes opgeslagen als ik op Oslaan (vrije keuze) klikte. Maar dan bleken die velden in kolom C en J toch niet leeg te zijn want ik kon ze niet met de opdrachtknop verwijderen.

Met de regel die ik nu gebruik, dus met
Code:
.ClearContents
heb ik in ieder geval wel die velden leeg.
Probleem was alleen dat ik na Opslaan niet alle blauwe velden hetzelfde had.
Sommigen waren (tenminste op het oog) leeg en anderen bevatten een 0.
Ik zie nu trouwens dat plotseling wel weer alles leeg is na het opslaan.

Ik parkeer de vraag dus even.
Mocht het probleem zich weer voordoen dan kom ik er nog op terug.

Bedankt voor je reactie,

Groetjes,
Ger
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan