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

VBA-vraagje (2)

Status
Niet open voor verdere reacties.

mariannevanh

Terugkerende gebruiker
Lid geworden
14 dec 2004
Berichten
2.133
Bij het uitvoeren van onderstaande (gedeeltelijk weergegeven) macro, krijg ik een foutmelding:

Compileerfout; Next zonder For

De macro:
Dim X, T
T = 2
For K = 4 To 202 'eerste cel van naam klanten
L = K / 2
If Cells(1, K) <> "" Then
Sheets("Blad2").Cells(1, L).Value = Sheets("Blad1").Cells(1, K).Value
For X = 4 To 100 'controleer rijen 4 t/m 100
Sheets("Blad1").Select
If Cells(X, 3) <> 0 Then
Sheets("Blad2").Select
Sheets("Blad2").Cells(T, 1).Value = Sheets("Blad1").Cells(X, 1).Value
Sheets("Blad2").Cells(T, 2).Value = Sheets("Blad1").Cells(X, 3).Value
T = T + 1
End If
Next X
Next K
Sheets("Blad2").Select
Range("A1").Select
Application.ScreenUpdating = True
Sheets("Blad1").Select
End Sub

Wie helpt?
Alvast bedankt,
Guido
 
Ik heb al een poging gedaan om te begrijpen wat je bedoeling is. Tja... zet wat gegevens van Blad1 over naar Blad2...

Goed: Fout is er uit gehaald. Select heb ik laten verdwijnen (Op uitzondering van de laatste, want dat was denk ik de bedoeling).
En uw variabelen zijn benoemd... alhoewel je ook hier zit te knoeien. Een celverwijzing aanduiden met halfjes????

Sub test()
Dim X As Integer
Dim T As Integer
Dim K As Integer
Dim L As Integer

T = 2
For K = 4 To 202 'eerste cel van naam klanten
L = K / 2
If Sheets("Blad1").Cells(1, K) <> "" Then
Sheets("Blad2").Cells(1, L).Value = Sheets("Blad1").Cells(1, K).Value
For X = 4 To 100 'controleer rijen 4 t/m 100

If Sheets("Blad1").Cells(X, 3) <> 0 Then
Sheets("Blad2").Cells(T, 1).Value = Sheets("Blad1").Cells(X, 1).Value
Sheets("Blad2").Cells(T, 2).Value = Sheets("Blad1").Cells(X, 3).Value
T = T + 1
End If
Next X
End If
Next K
Sheets("Blad2").Select
Range("A1").Select
Application.ScreenUpdating = True
Sheets("Blad1").Select
End Sub

Luc
 
Dim X As Integer
Dim T As Integer
Dim K As Integer
Dim L As Integer

Voordat ik deze vraag postte, had ik al geprobeerd:
Dim T, K, L, X

Waarom werkte dit niet?
Wat is de bedoeling van "As Integer"?
 
Je bekijkt de verkeerde code als fout.
Hoe jij je variabelen declareerde was niet fout... maar het kon beter. Ik heb er het gegevenstype bijgezet, zodat de computer weet waarover het gaat.

Uw echte fout was dat je een End If vergeten had.

Luc
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan