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

opdracht in vba herhalen voor onderliggende cellen

Status
Niet open voor verdere reacties.

jagea

Gebruiker
Lid geworden
11 aug 2008
Berichten
48
Hoi,

De volgende opdracht werkt goed:
If Range("C5") <> Range("I5") Then Range("C5").ClearContents

Als C5 ongelijk is aan I5 dan wordt cel C5 leeggemaakt.

Ik wil graag een loopje maken, zodat hetzelfde gebeurt met C6 en I6, C7 en I7 etc. tot bijvoorbeeld C30.

Volgens mij moet het simpel zijn, maar ik krijg het niet voor elkaar.

Al vast bedankt voor jullie hulp.

Age
 
Code:
Sub Loopje()
Dim iTel As Integer
    For iTel = 5 To 30
        If Range("C" & iTel).Value <> Range("I" & iTel).Value Then Range("C" & iTel).ClearContents
    Next
End Sub

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
probleem opgelost. bedankt!

Was toch niet zo simpel...
 
Markeer je de vraag nog even als opgelost
 
Toch nog een probleempje.

Ik wil ook nog tellen hoe vaak C5 t/m C30 zijn leeggemaakt.

Dim iTel As Integer
For iTel = 5 To 30
If Range("C" & iTel).Value <> Range("I" & iTel).Value Then Range("D" & iTel).Value = Range("D" & iTel).Value + 1

werkt goed, maar als ik deze combineer met de eerste opdracht

Dim iTel As Integer
For iTel = 5 To 30
If Range("C" & iTel).Value <> Range("I" & iTel).Value Then Range("C" & iTel).ClearContents
Next


dan doet ie het niet

Hoe moet ik beide opdrachten combineren?

Al vast weer bedankt van deze absolute beginner
 
Hij doet het op jouw manier niet omdat iTel na de eerste berekening de waarde 30 heeft bereikt,
Of je zet iTel weer op 0 of je zet de berekening er meteen boven.

Code:
Dim iTel As Integer
For iTel = 5 To 30
If Range("C" & iTel).Value <> Range("I" & iTel).Value Then Range("D" & iTel).Value = Range("D" & iTel).Value + 1
If Range("C" & iTel).Value <> Range("I" & iTel).Value Then Range("C" & iTel).ClearContents
Next



Niels
 
2 * If is niet nodig.

Code:
Dim iTel As Integer
For iTel = 5 To 30
    If Range("C" & iTel).Value <> Range("I" & iTel).Value Then
        Range("D" & iTel).Value = Range("D" & iTel).Value + 1
        Range("C" & iTel).ClearContents
    End If
Next

Met vriendelijke groet,


Roncancio
 
@Roncancio
Klopt helemaal, had in de vluggigheid niet naar de inhoud van de macro gekeken.:o

Niels
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan