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

Status
Niet open voor verdere reacties.

Harm1957

Gebruiker
Lid geworden
19 mei 2021
Berichten
22
Goedendag,

In een Excel programma laat ik met het aanklikken van de 6 een getal in een cel kopiëren naar een cel in een ander werkblad.
Nu werkt dit perfect voor ieder cijfer behalve voor de 0

voorbeeld : ik heb een 7 in een cel en druk op 6 dan word deze automatisch verplaatst naar een actieve cel in een ander werkblad.
Doe ik dit als er 0 in de cel staat dan komt er geen getal te staan in de andere cel en de actieve cel is ook niet meer actief

RaRa hoe kan dat en hoe los ik het op.
 
Niet zonder dat je laat zien hoe je dat precies doet.
Plaats dus een voorbeeld document.
 
Bedankt voor je reactie. Dit is de eerste keer dat ik een vraag stel dus ik weet niet precies wat je bedoeld met voorbeeld.
Een afdruk van de VBA code , een afdruk van de twee Excel sheets?
 
Het Excel documentje zelf, waar je VBA code in zit.
Klik op "Ga geavanceerd" en gebruik daar de paperclip om een document hier te plaatsen.
 
Want met deze code werkt het prima.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        Sheets("Blad2").Cells(Target.Row, Target.Column).Value = Target.Value
    End If
End Sub
 
Zelfs met:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Sheets.FillAcrossSheets Target
End Sub

PS. In VBA is 'actieve cel' niet echt relevant.
 
Laatst bewerkt:
...laat ik met het aanklikken van de 6 een getal in een cel kopiëren naar een cel in een ander werkblad
En je werkwijze is ook behoorlijk duister; op deze manier kun je alleen getallen (ook letters?) dupliceren die uit één cijfer of teken bestaan, want bij elke 'aanklik op cijfer' kopieer je het cijfer dat je op dat moment aanklikt. En dat is altijd maar één cijfer. En doe je dat aanklikken met je muis? Ik heb, toen ik nog trainingen gaf, mensen wel eens laten zien hoe je met een muis een toets aanklikt (geloof me: is geen handige werkwijze). Ik klik op objecten/knoppen etc, maar ik druk op toetsen. Dus leg even uit wat je aan het doen bent/wilt, en ik neem aan dat het voorbeeldje ondertussen ook wel af is? We zijn benieuwd :).
 
Om het uit te leggen. Het betreft een programma om een biljartwedstrijd te registreren.
Ik heb eigenlijk slechts enkele cijfers nodig die ik op dit moment aanstuur met een numeriek klein toetsenbord.
Ik heb getallen 7, 6, 1 en 0 gebruikt omdat die ver uit elkaar liggen op het toetsenbord. de 7 om 1 punt te verhogen, de 1 om 1 punt te verlagen, de 0 om nul punten te noteren en de zes om het totaal van de gemaakte punten in 1 beurt weg te schrijven naar een lijst voor speler 1 en speler 2. Het werkt prima, alleen bij het intoetsen van de nul en vervolgens willen wegschrijven door de zes in te drukken gaat het mis. Ik heb het nu ingesteld dat als ik een nul intoets er -1 word geplaatst in C12 en een als functie gebruikt in de lijst die ervoor zorgt dat de -1 niet word opgeteld. werkt wel alleen niet netjes. als ik module nul een nul heen zet ipv de -1 loopt alles loopt het programma niet meer.
 

Bijlagen

  • Puntentelling.pdf
    37 KB · Weergaven: 20
  • matchblad.pdf
    66,6 KB · Weergaven: 21
  • code invoer.pdf
    57,9 KB · Weergaven: 17
  • overige codes.pdf
    71,1 KB · Weergaven: 23
Waarom nu PDF's en niet je Excel bestand?
 
hierbij het volledige bestand
 

Bijlagen

  • LoodsC.xlsm
    154,3 KB · Weergaven: 40
Dat je ook moet uitleggen hoe je document werkt.
Dus, wat doe je precies op welk werkblad en wat is dan je actieve cel, om het probleem te kunnen zien.
 
Ik heb geen flauw idee waar ik naar zit te kijken, en waar de 'magie' zich afspeelt. Hoe werkt het handeltje?
 
Plaats svp het Excelbestand. De server kan dat wel aan.
 
Nog niet wakker snb? Dat Excel bestand staat al in bericht #11 :). Zullen we het gewoon 10 over rood houden?
 
Voorbeeld: Speler 1 is aan de beurt en maakt 1 punt, dan druk op de 7 van het toetsenbord. Er word een 1 geplaatst in C13(Blad Puntentelling)
ieder keer dat hij een punt maakt druk ik op 7 en word in C13 1 punt verhoogd. Als hij mist druk op de 6 en worden de gemaakte punten overgeschreven naar het Matchblad en geplaatst in de lege cel . Hetzelfde verhaal voor de volgende speler. tot er een winnaar of verliezer uitkomt.
Het probleem komt als de speler direct mist en ik een 0 ingeef in B13. Als ik dan op de zes druk kopieert hij niet de nul naar Het matchblad, en vervolgens is alles in de war.
Vba module NUL word prima gevolgd, er komt keurig een nul te staan in C13 maar bij bij het toetsen van de 6 die macro 22 in module 16 laat uitvoeren gaat het mis.
Daarom heb ik een noodoplossing en laat module 16 macro NUL een -1 kopiëren naar matchblad ipv. een 0 Dan is het geen probleem. Is ondervangen door een als in de totaaltelling te zetten die de -1 met 1 verhoogd. Dus nul gemaakt. Alleen staat wel een -1 in de lijst dus dus dat klopt natuurlijk niet.
 
Best wel interessante code
Code:
Sub nr0()
ActiveSheet.Activate
ActiveCell = 0
ActiveCell.Offset(0, 0).Select
End Sub

Het actieve blad ga je activeren?
In de actieve cel zet je een 0
vervolgens ga je de actieve cel selecteren?
 
Beste heren, ik heb de oplossing van mijn probleem gevonden.
Kleine aanpassing in Module 16 macro 22

Sheets("matchblad").Select
ActiveCell.Select

en er wordt keurig een nul in de actieve cel gezet
Wat de reden was om het eerst niet te willen doen bij de 0 terwijl alle andere cijfers geen probleem vormen, weet ik niet.

Bedankt voor het meedenken mvg.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan