Bij het kopiëren van het getal nul gaat alles mis

Status
Niet open voor verdere reacties.
Nog steeds geen idee waarom je de actieve zou selecteren, dat heeft totaal geen nut.
 
Best mogelijk dat je daarin gelijk hebt.
Jij bekijkt het als programmeur, maar mij gaat het erom of iets werkt en iets minder of er te veel regels in een code zitten.
Waarschijnlijk zit het hele programma niet geweldig in elkaar. Maar het ontwikkeld zich continu.
Ik kom in de praktijk fouten tegen die ik dan probeer te corrigeren. Gisteren weer getest tijdens een wedstrijd en kwam ik erachter dat het gemakkelijker is om niet de 6 te gebruiken maar dat de enter toch gemakkelijk is en dat als je per ongeluk op een andere toets druk als de + of de tab dat het dan ook even niet goed gaat dus ga ik weer op zoek om die weer uit te schakelen. Mvg
 
waarom niet gewoon een textbox in je werkblad zetten, die het werk voor je opknapt ?
Zie bijlage, oranje textbox
tik je daar een 1, een 7 of een 6 in, dan wordt er gepast gereageerd, anders gebeurt er niets.

Veel eenvoudiger, geen poespas.
 

Bijlagen

Laatst bewerkt:
Helaas is op mijn niveau het getal 0 nog vaak van toepassing. Zou je die mogelijkheid er nog aan toe willen voegen?
 
ik had al naar je bestand gekeken, maar begreep de achtergrond eigenlijk niet zo goed.
Met die textbox kan je aan bepaalde toetsen een functie geven, andere kan je uitsluiten, etc.
Bv. met 7 en + tel je er telkens 1 bij, met 1 en - trek je er 1 van af.
Met 6 schrijf je je resultaat weg en reset je je teller.
Met 0 doe je net hetzelfde, maar schrijf je 0 weg.
Andere zaken die daar zo staan, zijn puur ter illustratie, die kan je zo weglaten.

Je kan het geheel zo naar je eigen situatie kneden, dus dat stukje moet je zelf doen of even duidelijk omschrijven wat er eigenlijk moet gebeuren.
Wat hierboven al gezegd werd over activate, dat is inderdaad overbodig, daar win je niets mee.

Al die Case ... moet je zien als tig "if ... then ... else ... endif"-constructies.

Lukt het niet of begrijp je het niet, laat dan iets weten
 

Bijlagen

Laatst bewerkt:
Werkt perfect. Hartelijk dank. Waarschijnlijk ga ik het programma hiernaar aanpassen, dat gaat bij mij niet zo snel dus het kan zijn dat ik later nog eens een vraag heb. Voorlopig bedankt Mvg.
 
Zou je ook de numm. enter toets kunnen gebruiken in plaats van de 6. automatisch druk je die sneller in.
 
voeg deze macro toe in je huidige bladmodule.
Beide "Enter"-toetsen worden op dezelfde manier behandeld
Code:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
   With TextBox1
      If KeyCode = 13 And Len(.Value) = 0 Then .Value = 6       'als je op 1 van beide enter's drukt en de textbox is leeg, dan is dit hetzelfde als een 6 ingeven
   End With
End Sub
 
Waarom dan niet een +, - en 'clear' knop geïntroduceeerd ?

NB. in dit geval beter commandbuttons dan tekstvakken
 

Bijlagen

Laatst bewerkt:
ja, dat is ook een optie, maar ik dacht dat TS niet met de muis wilde klikken, gewoon blind tikken op het numerieke toetsenbord.
 
De plus en min zijn een leuke optie alleen niet voor mij van toepassing.
Ik heb de aanpassingen van cow er bij gezet en een en ander aangepast in het programma. Het werkt nu stukken beter, maar loop tegen het volgende probleem aan.
Ik heb het getal verhoogd in de textbox en met enter verzonden naar een macro die het op de juiste plaats in een andere blad heen zet, alleen staat daarna de cursor op B12 en moet ik met de muis de cursor weer naar de tekstbox brengen om de volgende ingave te maken. Hoe kom ik weer in de tekstbox?
 
@cow

Dat kan natuurlijk eenvoudig met Keydown.
De 'toelichting' in de laatste post van TS vind ik nietszeggend.
 
@Harm, in je andere macro staat er vermoedelijk nog zo'n "activate" of "select" commando, dat nergens voor nodig is en waardoor je cursor uit de textbox gaat.
Dus even die macro aanpassen denk ik en het euvel is opgelost.
Probeer dus gewoon in je textbox te blijven.

@snb,
keydown ? Er is toch geen zo'n event binnen een bladmodule of in thisworkbook zodat je een soort SetFocus op je textbox zou kunnen maken ?
Ook dat laatste zou ik eventjes niet weten. Hoe selecteer/activeer je naar een textbox in een werkblad ?
 
@cow

Een tekstvak is geen voor de hand liggende optie om bij een getal in een cel met 1 te vermeerderen of te verminderen.
Eens ( du moment) een commandbutton de focus heeft kun je keydown doen zovaak als je wil.
 
@snb, ik heb wat gestoeid, eerst met een spinbutton, maar dat was niets.
Dan terug met zo'n commandbutton en dat vereenvoudigt de boel nog een beetje.
Met keydown of KeyPress, dat zal hetzelfde zijn (hoop ik, maar je weet natuurlijk nooit en ik was bezig met de keypress).
Dus je had gelijk.

Grappig, ik denk als je van werkblad verandert, dan kan je daar je zaakje gewoon doen.
Als je dan terugkeert naar dit werkblad, dan heeft de button nog steeds de focus.
 

Bijlagen

Laatst bewerkt:
@cow

Mij ontgaat de zin om 3 verschillende soorten invoer ('p', '+' of '7' ) hetzelfde effekt te laten hebben
 
fantasietje van mezelf !
TS was tevreden met 7 op het numeriek toetsenbord.
Als je numeriek aan het tikken bent, dan vinden mijn vingers de + sneller dan de 7.
Die p (van plus) is dan helemaal over de top.
 
Onlangs heb ik een laser pointer gekocht. Hierop zitten een aantal knoppen te weten PgUp, PgDn en een knop, waarvan ik de functie niet weet, maar de knop produceert een b als ik die in Excel gebruik.
Ik wil deze pointer gebruiken als teller voor de biljart wedstrijden. De b heb ik intussen als enter ingesteld.
Nu moet eigenlijk als de PgUp ingedrukt wordt de stand met 1 opgehoogd worden en met de PgDn knop de stand met 1 verlaagd worden.
Heeft iemand een idee hoe ik dit voor elkaar krijg.

Tot nu toe gebruik ik hiervoor een numeriek toetsenbord.
de vba code:
Private Sub TextBox1_Change()

With TextBox1
If Len(.Value) = 0 Then Exit Sub 'staat er niets (meer) in je textbox = stoppen
Set c = Range("C12") 'de cel waarin je optelt en aftrekt

Sheets("Puntentelling").Select
ActiveSheet.Unprotect
Selection.Locked = False

Select Case .Value 'welke toets heb je gebruikt ?
Case 1, "+": c.Value = c.Value + 1 'je tikte een 7, een p of + = +1
Case "-": c.Value = c.Value - 1 'je tikte een 1, een "m" of - = -1
Case 0: c.Value = 0

Case 7 'je tikte een 6 = waarde wegschrijven
Call Macro22
c.ClearContents 'je reset je teller



'Case 0 'je tikte een 0 = 0 wegschrijven, speciale versie van 6
'Range("C12").Value = Array(0)
'Call Macro22
'c.ClearContents 'je reset je teller

Case 5 'je tikte een 5 = waarde wegschrijven
Call VerwijderenGegevensInCel
c.ClearContents 'je reset je teller

Sheets("Puntentelling").Select
Selection.Locked = True
ActiveSheet.Protect


Case Else: MsgBox "je drukte de toets " & .Value & vbLf & "Daar wordt verder niets mee gedaan", vbInformation 'bij alle andere letters geef je een boodschap
End Select
.Value = ""
End With
End Sub
 
in de vorige opzet gebeurde er niets vermoed ik als je die pageup of pagedown gebruikte ???
Wat gebeurt er met dit bestand als je de macro "loopje" laat lopen en je gebruikt de knoppen pageup, pagedown en de mysteryknop ?
Die macro wordt gestopt door de letter x !
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan