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

offset range

Status
Niet open voor verdere reacties.

nobody11

Gebruiker
Lid geworden
20 dec 2007
Berichten
552
ik heb een range gedefinieerd in excel, nu wil ik graag 3 kolommen naast elk element in de range de waarde van dat element+1 doen. dit is mijn code:

Code:
Sub test()
Rng = Range("Avec") [COLOR="Red"]'avec is de range A1:C11[/COLOR]
For Each c In Rng
Range(Cells(1, 1), Cells(c.Row, c.Column).Offset(0, 3)).value = c + 1
Next

End Sub

dit lukt niet.. iemand een idee wat ik fout doe?
 
Code:
Sub test()
Dim Rng As Range
For Each Rng In Range("A1:C11")
    Cells(Rng.Row, Rng.Column).Offset(0, 3).Value = Rng.Value + 1
Next

End Sub

Met vriendelijke groet,


Roncancio
 
Bedoel je dit soms?

Code:
Sub test()
Rng = Range("Avec") [COLOR="Red"]'avec is de range A1:C11[/COLOR]
For Each c In Rng
[COLOR="Blue"][B]c[/B][/COLOR].Offset(0, 3).value = c + 1
Next

End Sub


Groet, Leo
 
Code:
Sub test()
Dim Rng As Range
For Each Rng In Range("A1:C11")
    Cells(Rng.Row, Rng.Column).Offset(0, 3).Value = Rng.Value + 1
Next

End Sub

Met vriendelijke groet,


Roncancio

super!! kan je dit ook doen met zelf gedefinieerde ranges in excel ?(aangezien ik die dynamisch kan maken met de count functie)
 
Bedoel je dit soms?

Code:
Sub test()
Rng = Range("Avec") [COLOR="Red"]'avec is de range A1:C11[/COLOR]
For Each c In Rng
[COLOR="Blue"][B]c[/B][/COLOR].Offset(0, 3).value = c + 1
Next

End Sub


Groet, Leo

@Ginger

Dit had ik eerst geprobeerd, maar doet ie niet? weet iemadn waarom?
 
super!! kan je dit ook doen met zelf gedefinieerde ranges in excel ?(aangezien ik die dynamisch kan maken met de count functie)

Jazeker.
Ik heb de code ook wat ingekort.

Code:
Sub test()
Dim Rng As Range
For Each Rng In Range("Avec")
    Rng.Offset(0, 3).Value = Rng.Value + 1
Next

End Sub

Met vriendelijke groet,


Roncancio
 
Code:
Sub test()

    With Range("Avec").Offset(0, 3)
        .Value = "=RC[-3]+1"
        .Value = .Value
    End With
    
End Sub

Wigi
 
Code:
Sub test()

    With Range("Avec").Offset(0, 3)
        .Value = "=RC[-3]+1"
        .Value = .Value
    End With
    
End Sub

Wigi

dat is ook een handige! Bij het gebruik van die With , evalueert VBA dan automatisch elke cel in de range?
 
..nog even voor de volledigheid een antwoord op de vraag
Dit had ik eerst geprobeerd, maar doet ie niet? weet iemadn waarom?
...snelheids foutje... :o
Code:
Sub test()
    
    [COLOR="Blue"][B]Set[/B][/COLOR] Rng = Range("A1:C11") 'avec is de range A1:C11
    For Each c In Rng
        c.Offset(0, 3).Value = c + 1
    Next

End Sub
Je moet die variabele wel eerst de eigenschappen van het juiste object geven voordat je 'm zo kan inzetten... (in dit geval dus die van het object 'range')

Groet, Leo
 
..nog even voor de volledigheid een antwoord op de vraag
...snelheids foutje... :o
Code:
Sub test()
    
    [COLOR="Blue"][B]Set[/B][/COLOR] Rng = Range("A1:C11") 'avec is de range A1:C11
    For Each c In Rng
        c.Offset(0, 3).Value = c + 1
    Next

End Sub
Je moet die variabele wel eerst de eigenschappen van het juiste object geven voordat je 'm zo kan inzetten... (in dit geval dus die van het object 'range')

Groet, Leo

dorie! vergeet ik altijd :-) bedankt om er nog even op te wijzen! dit vergeet ik zeker niet meer!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan