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

Weergeven van meerdere opties door vba

Status
Niet open voor verdere reacties.
Bedankt wampier, ik had de ic1 bij i over het hoofd gezien.
Nog een vraagje, hoe kun je meerdere cellen door verwijzen, dus bij "opslag.Value = Cells(4, i - 1).Value" hoe kan ik daar meerder cellen aangeven
 
Meerdere variabelen gebruiken of een offset maken van de huidige opslag. Als het echt veel informatie wordt kun je beter een range object gaan gebruiken in plaats van de Cells instructie en deze dan als offset gebruiken.

Eigenlijk is bovenstaande in jouw post equivalent aan:

Code:
opslag.value = Range(Cells(4,i)).offset(0,-1)
Als je iets onder de huidige opslag cel wil zetten kun je dan zoiets doen:

Code:
opslag.offset(1).value = range(cells(4,i)).offset(1,-1) 'kopieer de cel onder "optie x" in het origineel
 
Het lukt me nog niet helemaal.
Ik heb nu onderstaande code en ik wil dat er een tabeletje door wordt verwezen, dit tabeletje loopt van cel (13,1) tot (17,2), maar op dit moment krijg ik telkens een foutmelding 1004: door de toepassing of door object gedefinieerde fout. Hoe los ik dit op?
Code:
Private Sub CommandButton1_Click()

    Dim opslag As Range
    [a25:ic25].ClearContents
    Set opslag = [a25]
    For i = 2 To [ic9].End(xlToLeft).Column Step 4
        Valid = 1
        For j = 9 To 11
            Valid = Valid * Cells(j, i).Value
        Next j
        If Valid > 0 Then
            opslag.Value = Range(Cells(13, i-1)).Offset(4, 1)
            Set opslag = opslag.Offset(5, 0)
        End If
    Next i
End Sub
 
Als je het hele tabelletje wil plaatsen kun je dus beter een range nemen en die plakken. Offset is geen vergroten van een selectie. je hebt nog steeds maar 1 cel.

ik heb even geen excel (dus zitten vast fouten in), maar je kunt dan volgen mij beter zoiets doen:
Code:
        If Valid > 0 Then
            Range(Cells(13, i-1) , Cells(17,i)).Copy opslag
            Set opslag = opslag.Offset(5, 0)
        End If

*edit* Als je werkt op een andere pagina zoals je eerdere voorbeelden moet voor "range" het blad met de informatie, bijvoorbeeld:
Code:
            Sheets("blad2").Range(Sheets("blad2").Cells(5, i - 1), Sheets("blad2").Cells(9, i)).Copy opslag
 
Laatst bewerkt:
Dennisplusminus,

voor deat tabelletje zou je ook eens kunnen kijken naar de optie Resize, daarmee geef je aan dat een selectie een andere afmeting moet krijgen, zie de Help van Excel/VBA
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan