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

Probleem met aanvul script

Status
Niet open voor verdere reacties.

DJ.Funny

Gebruiker
Lid geworden
17 jan 2006
Berichten
113
Goedemorgen allemaal,

Ik heb een scriptje gemaakt wat als volgt werkt. Kollom C is altijd gevuld, tot op het einde dan is de cel leeg en moet het script stoppen. Nu kunnen kollom A en/of B leeg zijn. Als dit het geval is dus bijv A2 is leeg, dan moet de waarde uit A1 hierin komen te staan (als het A5 was moest de waarde van A4 erin komen).

Het script ziet er als volgt uit:

Sub Aanvullen()

Dim r As Integer
Dim cr As Integer
Dim dr As Integer


dr = 1
r = 1
cr = r - 1

Do Until Range("C" & dr) = ""

If Range("A" & r) = "" Then
Range("A" & cr).Select
Selection.Copy
Range("A" & r).Select
ActiveSheet.Paste

If Range("B" & r) = "" Then
Range("B" & cr).Select
Selection.Copy
Range("B" & r).Select
ActiveSheet.Paste

r = r + 1
dr = dr + 1

Loop

End Sub


Nu denk ik dat het niet mogelijk is om een if te gebruiken tussen de Do en Loop klopt dit?? En hoe zou ik dit kunnen oplossen??


Met vriendelijke groet en alvast met velen dank!!

Dirk
 
DJ.Funny,

Kijk eens of het zo werkt?
Graag de volgende keer de code selecteren en dan op # klikken, komt de code in een apart vak te staan.

Code:
Sub Aanvullen()

Dim r As Integer
Dim cr As Integer
Dim dr As Integer

dr = 1
r = 1
cr = r - 1

Do Until Range("C" & dr) = ""

If Range("A" & r) = "" Then Range("A" & cr).Copy Range("A" & r).Select
ActiveSheet.Paste

If Range("B" & r) = "" Then Range("B" & cr).Copy Range("B" & r).Select
ActiveSheet.Paste

r = r + 1
dr = dr + 1

Loop

End Sub
 
Nu denk ik dat het niet mogelijk is om een if te gebruiken tussen de Do en Loop klopt dit?? En hoe zou ik dit kunnen oplossen??

Nee, dat klopt niet.
Ik zou wel een andere variabele gebruiken dan Integer.

Code:
Sub Aanvullen()

Dim lDR As Long
    lDR = 1
    
    Do Until Range("C" & lDR) = ""
        If Range("A" & lDR).Value = "" Then Range("A" & lDR).Value = Range("A" & lDR - 1).Value
        If Range("B" & lDR).Value = "" Then Range("B" & lDR).Value = Range("B" & lDR - 1).Value
        lDR = lDR + 1
    Loop

End Sub

Met vriendelijke groet,


Roncancio
 
Heren!!!

Helemaal super, eerste scripje werkte niet, maar die laatste doet precies wat ik wil!!!! HELEMAAL SUPER!!!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan