for next

Status
Niet open voor verdere reacties.

Hoornvan

Terugkerende gebruiker
Lid geworden
10 feb 2002
Berichten
3.333
Goede avond,

Ik ben een beetje aan het expiriementeren met een macro (Excel) en weet niet of ik hier goed zit.
Het lukt me aardig maar met de dubbele for nextlus wil het niet lukken.

Dit heb ik er van gemaakt;
Randomize
For i = 1 To 10
For t = 1 To 10
Do
r = Int(Rnd * .Rows.Count) + 1
c = Int(Rnd * .Columns.Count) + 1
Loop Until Len(.Cells(r, c).Formula) = 0
.Cells(r, c).Formula = i
.Cells(r, c).Formula = t
Next t
Next i

Nu de vraag waar zit de fout of wat doe ik fout?
Het is de bedoeling dat er in 2 kolommen cijfers worden ingevuld.

Ik gebruik office 2007

Mvg. Wim
 
Hallo

- declareer je variabelen bovenaan

- wat staat er bij With... End With aangezien je dit gebruikt, maar ik zie het nergens staan

- voeg hier op het forum code tags toe, dat maakt de code leesbaar

Wigi
 
Zoals ik het probleem nu begrijp:

Code:
Sub wigi()
    
    Dim i As Integer, t As Integer, r As Long, c As Integer
    With Range("A1:B50")
        Randomize
        For i = 1 To 10
            For t = 1 To 10
                Do
                    r = Int(Rnd * .Rows.Count) + 1
                    c = Int(Rnd * .Columns.Count) + 1
                Loop Until Len(.Cells(r, c)) = 0
                .Cells(r, c) = i
                .Cells(r, c) = t
            Next t
        Next i
    End With
End Sub

Wigi
 
Goede morgen Wigi,

Dit is de code die onder de knop staat.
Ik ben dit voor mijn kleinzoon aan het maken, om te oefenen.
Als hij de 2 kolommen heeft ingevuld dan loopt hij vast na Do.
F10:F19 daar komen de antwoorden.
Mvg, Wim

Hoe die smillies er in komen? heb er geen idee van.

Sub Willekeurige_Tafel()
SchreenUpdating = False
Sheets("Blad1").Range("B10:B19,D10:D19,F10:F19").Select
Selection.ClearContents
Set Totrange = Sheets("blad1").Range("B10:D19") ',D10:D19")
With Totrange
Range("f10").Select
Randomize
For i = 1 To 10
For j = 1 To 10
Do
r = Int(Rnd * .Rows.Count) + 1
c = Int(Rnd * .Columns.Count) + 1
Loop Until Len(.Cells(r, c).Formula) = 0
.Cells(r, c).Formula = i
.Cells(r, c).Formula = j
Next j
Next i
End With
'Range("F10").Select
SchreenUpdating = True
End Sub
 
Hallo,

Wat bedoel je hier mee? code tags toevoegen
Ik ben maar een leek op dit gebied

Mvg, Wim
 
Dat is dat het scherm niet flikkert.
Zoals jij het nu vraagt, zal dit wel niet juist zijn.
 
Dat is dat het scherm niet flikkert.
Zoals jij het nu vraagt, zal dit wel niet juist zijn.

de h moet weg uit Schreen.

Ook moet er Application. vóór komen:

Code:
Application.ScreenUpdating = False
 
Bedankt vor de informatie, het zijn soms kleine dingen.
Ik doe het bestandje er bij dat is mischien makkelijker.

Het zal wel iets simpels zijn, jaren geleden ben ik ook met zo iets bezig geweest.
Dit was toen om 1 kolom in te vullen, nu moeten er 2 worden in gevuld.
De code had ik geprint maar dat werkt hier toch niet.

Alvast hartelijk bedankt voor je tijd en inzet ook namens mijn kleinzoon.

Mvg. Wim
 

Bijlagen

- Hallooooo, code tags! Waarom lukt het niet om die te plaatsen? Waar zit je vast?

- Ik heb geen Excel 2007 dus het bestand zal niet lukken.
 
Is dit wat je zoekt?

Code:
Sub Willekeurige_Tafel()
    Dim c As Range, Totrange As Range
    Application.ScreenUpdating = False
    Range("F10:F19").ClearContents
    Set Totrange = Range("B10:B19,D10:D19")
    Totrange.ClearContents
    For Each c In Totrange
        c = Int(Rnd * 10) + 1
    Next
    Application.ScreenUpdating = True
End Sub

Als je nu eens dit bericht quotet, dan zie je de code tags staan rond mijn code. Doe hetzelfde voor jouw berichten met code.
 
Kort gezegd gaat jouw code de mist in, want je zoekt lege cellen om getallen in te plaatsen. Maar jij hebt 20 cellen om naar te kijken, terwijl je dit 10 * 10 = 100 keer probeert te doen.

Code:
For i = 1 To 10
 For j = 1 To 10
'...

Wigi
 
Wigi ik ga het uitproberen.

Nu heb ik gezien wat j bedoeld met code tags en zal het de vogende keer proberen om het voorelkaar te krijgen.

Je 2e berichtje hier achter aan zeg je voor 20 cellen en probeer het 100 te doen.
Als je het voor 1 kolom doet gaat hij wel tot tien, dus moet ik dan 2x de formule zetten voor iedere kolom 1x?

Wim
 
Wigi,

Je bent geweldig de code van jou werkt.
Bedankt dat je zoveel geduld met me heb gehad.

Groetjes Wim
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan