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

Tafels berekenen

Status
Niet open voor verdere reacties.

erick.dijk

Gebruiker
Lid geworden
18 mei 2006
Berichten
91
hoi,

Ik wil iets maken om voor mijn dochter de tafels uit haar hoofd te leren , zo aantrekkelijk mogelijk te maken.

stel 1 x 4 = 4, dan moet hij in de cel ernaast een geluidsbestandje laden die ik heb ingesproken. ( die zegt bv goed zo, ga zo door)

als ze invult bv. 5 dan moet hij dus in die cel ernaast een ander geluidsbestandje laden (die zegt bv. niet goed, ga nog even verder oefenen).

als hij dan klaar is met het bestandje moet er dus een tekst komen in die cel, goed zo, en als het fout is moet daar komen, fout.

Ik hoop dat iemand me kan helpen hiermee.

vr gr Erick.
 
Hello

probeer dit eens uit:

Zet in kolom 1 een 1
Zet in kolom 2 een X
Zet in kolom 3 een 4
Zet in kolom 4 '=

Kopieer deze code.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column = 5 Then
    Dim s As Object
    Set s = CreateObject("SAPI.SpVoice")
    If .Value = Range("A" & .Row) * Range("C" & .Row) Then
        s.Speak "Yes"
        .Offset(0, 1) = "Goed zo. Ga door meid!"
        .Offset(1, 0).Select
    Else
        s.Speak "No"
        .Offset(0, 1) = "Dit was fout. Nog wat oefenen."
        .Select
    End If
End With
End If
End Sub

Typ nu in kolom 5 een antwoord, fout dan wel goed. Gebeurt er iets?

Wigi
 
Laatst bewerkt:
Hello

probeer dit eens uit:

Zet in kolom 1 een 1
Zet in kolom 2 een X
Zet in kolom 3 een 4
Zet in kolom 4 '=

Kopieer deze code.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Column = 5 Then
    Dim s As Object
    Set s = CreateObject("SAPI.SpVoice")
    If .Value = Range("A" & .Row) * Range("C" & .Row) Then
        s.Speak "Yes"
        .Offset(0, 1) = "Goed zo. Ga door meid!"
        .Offset(1, 0).Select
    Else
        s.Speak "No"
        .Offset(0, 1) = "Dit was fout. Nog wat oefenen."
        .Select
    End If
End With
End If
End Sub

Typ nu in kolom 5 een antwoord, fout dan wel goed. Gebeurt er iets?

Wigi

oke, bedankt voor je reactie maar waar moet ik die code plakken?

gr Erick
 
Hello

Klik met rechts op de bladtab. Kies "Programmcode weergeven". Plak de code in het witte scherm.

Gaat het?

Wigi
 
Laatst bewerkt:
Nieuwsgierig ook even geprobeerd, maar krijg een fout

Fout 429, ActiveXonderdeel kan geen object maken
 
Nieuwsgierig ook even geprobeerd, maar krijg een fout

Fout 429, ActiveXonderdeel kan geen object maken

Dan zal het spraakgedeelte niet aan jou besteed zijn.

Ofwel zet je die code tussen commentaar quotes, ofwel delete je die code, ofwel werk je met On error resume next.

Wigi
 
Dan zal het spraakgedeelte niet aan jou besteed zijn.

Ofwel zet je die code tussen commentaar quotes, ofwel delete je die code, ofwel werk je met On error resume next.

Wigi


Wigi,

Hij geeft aan COMPILEERFOUT,
end with zonder with.

Wat kan ik hier aan doen.

gr erick.
 
Hij geeft aan COMPILEERFOUT, end with zonder with.

Sorry,

End If uit de voorlaatste regel moet voor End With van de derdelaatste regel komen. Ik had nog wijzigingen aangebracht in de code, echter zonder dat ook om te draaien.

Lukt het spraakgedeelte bij jou?

Wigi
 
Sorry,

End If uit de voorlaatste regel moet voor End With van de derdelaatste regel komen. Ik had nog wijzigingen aangebracht in de code, echter zonder dat ook om te draaien.

Lukt het spraakgedeelte bij jou?

Wigi

hij lukt perfect, maar kan je de gesproken tekst nog aanpassen?

gr Erick
 
hij lukt perfect, maar kan je de gesproken tekst nog aanpassen?

Ga naar de code op dezelfde manier, en verander Yes en no door wat je wilt.

Maar het Nederlands van den Bill is niet voortreffelijk, dus enig experimenteren zal je wel moeten doen.

Blij dat ik je kon helpen.

Wigi
 
Ga naar de code op dezelfde manier, en verander Yes en no door wat je wilt.

Maar het Nederlands van den Bill is niet voortreffelijk, dus enig experimenteren zal je wel moeten doen.

Blij dat ik je kon helpen.

Wigi


Oke bedankt Wigi, ga aan de slag hier mee.

gr Erick.
 
tafels

Hallo Wigi,

Mag ik hier ook een vraag overstellen, zie bijlage.

Gr, Justes
 

Bijlagen

mmmmmmm

Probeer deze eens.

Groet,
Ferenc
 

Bijlagen

Laatst bewerkt:
Probeer deze eens.

Groet,
Ferenc


Hoi Ferenc,

Deze Is voor mij eigenlijk perfect, alleen als je op wissen klikt, krijg je een popup met fout 13.

Kan dit eruit??

En kan je evt ook nog een knop maken dat hij kolom A door elkaar hutselt.

Dan zou hij helemaal perfect zijn.

Ik hoop dat het lukt, bedankt voor zover.

vr gr Erick
 
De fout verdwijnt door dit te gebruiken:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If Target.Count = 1 Then
    If .Column = 5 Then
        Dim s As Object
        Set s = CreateObject("SAPI.SpVoice")
        If .Value = Range("A" & .Row) * Range("C" & .Row) Then
            s.Speak "Goed"
            .Offset(0, 1) = "Goed zo. Ga zo door Miranda!"
            .Offset(1, 0).Select
        Else
            s.Speak "Fout"
            .Offset(0, 1) = "Dit was fout. Nog wat oefenen."
            .Select
        End If
    End If
End If
End With
End Sub

Om kort te gaan, Target.Count = 1 test of er 1 of meer cellen geselecteerd werden. Indien meer dan 1, doe niet wat er in de macro staat (stond).

Wigi
 
Vermijd het selecteren bij de macro Wissen. Gebruik

Code:
Sub Wissen()
    Range("E1:F10").ClearContents
    Range("E1").Select
End Sub

Wigi
 
Vermijd het selecteren bij de macro Wissen. Gebruik

Code:
Sub Wissen()
    Range("E1:F10").ClearContents
    Range("E1").Select
End Sub

Wigi


Oke Bedankt Wigi, wederom perfect, kan jij ook een code verzinnen om kolom A door elkaar te gooien.

vr bedankt.

gr Erick.
 
Oke Bedankt Wigi, wederom perfect, kan jij ook een code verzinnen om kolom A door elkaar te gooien.
vr bedankt.
gr Erick.

Probeer dit eens uit. Code adapted from http://www.exceltip.com/st/Return_random_numbers_using_VBA_in_Microsoft_Excel/531.html

Code:
Sub RandomNumbers()
'code adapted from
'http://www.exceltip.com/st/Return_random_numbers_using_VBA_in_Microsoft_Excel/531.html
Dim aantal As Integer, bottom As Integer, top As Integer, msg As String
Dim RandColl As Collection, i As Long, varTemp() As Long, varrRandomNumberList As Variant

aantal = InputBox("Hoeveel getallen wil je genereren?")
bottom = InputBox("Wat is het minimum van de getallen?")
top = InputBox("Wat is het maximum van de getallen?")

    If aantal < 1 Then Exit Sub
    If bottom > top Then Exit Sub
    If aantal > (top - bottom + 1) Then Exit Sub
    Set RandColl = New Collection
    Randomize
    Do
        On Error Resume Next
        i = CLng(Rnd * (top - bottom) + bottom)
        RandColl.Add i, CStr(i)
        On Error GoTo 0
    Loop Until RandColl.Count = aantal
    ReDim varTemp(1 To aantal)
    For i = 1 To aantal
        Range("A" & i) = RandColl(i)
    Next i
    Set RandColl = Nothing
End Sub

Kan je in het vervolg eerst eens op het internet zoeken? Zulke code is direct beschikbaar als je googlet op:

excel vba unique random number

Wigi
 
........

Wigi,

Helemaal gelijk over het eerst zoeken in de bekende zoekmachines en bedankt voor weer een heerlijke website met info :thumb: .

Eric,
Hierbij heb ik de code alvast voor je aangepast en op de knoppen geplaatst.
Wilde kijken hoe deze random code nu werkt, was zelf ook nog opzoek naar zoiets voor een ouder projectje :) (tevens de inputboxen verwijderd).

Groet,
Ferenc
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan