Elikkäs miten saisin helpointen tehtyä vba ohjelmaan seuraavan kaltaisen toiminnon.
Ohjelman pitäisi kopioida tietty solualue(esim A1:B23) ja littää se toiseen taulukkoon samaan kohtaan(A1:B23), siten että alueella olevat tyhjät rivit eivät tulisi mukaan. Lisäksi pitäisi vielä saada tarkastettua onko kyseinen alue tyhjä ja jos ei ole niin sitten kopiointi alueen viereen(C1:D23)ja jos sekään ei tyhjä niin taas viereen jne. jne.
Tässä pulma jota en saa omilla vähäisillä taidoillani ratkaistua...
Ohjelman pitäisi kopioida tietty solualue(esim A1:B23) ja littää se toiseen taulukkoon samaan kohtaan(A1:B23), siten että alueella olevat tyhjät rivit eivät tulisi mukaan. Lisäksi pitäisi vielä saada tarkastettua onko kyseinen alue tyhjä ja jos ei ole niin sitten kopiointi alueen viereen(C1:D23)ja jos sekään ei tyhjä niin taas viereen jne. jne.
Tässä pulma jota en saa omilla vähäisillä taidoillani ratkaistua...
Vastaukset 2
Vanhimmat
aika simppelisti toi onnistuu excelin omilla erikoistoiminnoilla...
Sub Siirrä()
Dim KopioAlue As Range 'kopioitava alue
Dim SiirtoAlue As Range ' kohdealue
Dim EiTyhjiäAlue As Variant ' eityhjiä rivejä originaali kopioitava alue
On Error Resume Next
Set KopioAlue = Sheets("Originaali").Range("A1:B23") 'muuta kopioitavan taulukonnimi
KopioAlue.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True ' tyhjät piilotetaan
Set EiTyhjiäAlue = KopioAlue.SpecialCells(xlCellTypeVisible) ' kopioidaan vain näkyvät
Set SiirtoAlue = Sheets("Kopio").Range("A1:B23") ' muuta kohdetaulukon nimi
If WorksheetFunction.CountA(SiirtoAlue) = 0 Then 'onko kohdealue tyhjä...
EiTyhjiäAlue.Copy Destination:=SiirtoAlue ' kopioidaan tiedot
Else ' jos ei niin etsitään eka tyhjä oikealle
EiTyhjiäAlue.Copy Destination:=SiirtoAlue.End(xlToRight).Offset(0, 1) ' kopioidaan tiedot
End If
KopioAlue.SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = False ' tyhjät näkyviin taas
End Sub
keep excelling!
Kiitos ja kumarrus, itseltä ei toi kovin äkkiä olisikaan onnistunut....