kunden Function EtsiJaSiirrä

Makro-Marko

http://keskustelu.suomi24.fi/node/9032804#comment-43879360

Nyt olis sellainen pulma etten ymmärrä. Tuo hakee arvoa 11 sheet1:stä ja jos vastine löytyy siirtää koko rivin Sheet2:n. Ookkei hyvä, mutta jos haluan siirtää sheet1 sarakkeesta A hakuehdolla 11 kaikki rivit Sheet2:n mutta en A sarakkeeseen vaan O sarakkeeseen niin eipä onnistu kun ei tajuu.

Yritin muuttaa näitä muka sopiviksi
("Sheet2!A65536") >>("Sheet2!O65536")
Offset(1, 0) >> Offset(1, 15)
LookIn:=xlValues, _ xlformulas
LookAt:=xlWhole, _xlPart

Ja tein mixailut ristiin rastiin.

Mutta ei onnaa, se siirtää aina rivit sarakkeeseen A. Miksi?


Function EtsiJaSiirrä(Hakuehto As Variant) As Range
Dim solu As Range
Dim EkaOsoite As String
Worksheets("Sheet1").Activate
With Cells
Set solu = .Find( _
What:=Hakuehto, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)
If Not solu Is Nothing Then
Set EtsiJaSiirrä = solu
EkaOsoite = solu.Address
Do
Set EtsiJaSiirrä = Union(EtsiJaSiirrä, solu)
Set solu = .FindNext(solu)
Loop While Not solu Is Nothing And solu.Address EkaOsoite
End If
End With

End Function

Sub Testi()
Dim Löydetty As Range
On Error GoTo virhe
Set Löydetty = EtsiJaSiirrä(11).EntireRow
Union(Löydetty, Löydetty).Copy Range("Sheet2!A65536").End(xlUp).Offset(1, 0).EntireRow
Exit Sub
virhe:
MsgBox "hakuehdoilla ei löytynyt tietoja!", vbInformation
End Sub

6

397

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Makro-Marko
      • en ollut varma halusitko siirtää vain A-sarakkeen vaiko sarakkeiden A-N tiedot, joten fiksasin molemmat...


        Option Explicit
        Function EtsiJaSiirrä(Hakuehto As Variant) As Range
        'etsii Sheet1 sarakkeesta A ja siirtää Sheet2 sarakkeeseen O
        'oletuksena, että siirrettävät tiedot sarakkeissa A-N
        Dim solu As Range
        Dim solulaajennus As Range
        Dim EkaOsoite As String
        Worksheets("Sheet1").Activate
        With Range("A:A")
        Set solu = .Find( _
        What:=Hakuehto, _
        LookIn:=xlValues, _
        LookAt:=xlWhole, _
        SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, _
        MatchCase:=False, _
        SearchFormat:=False)
        If Not solu Is Nothing Then
        Set EtsiJaSiirrä = solu
        EkaOsoite = solu.Address
        Set solulaajennus = solu.Resize(1, 14)
        Do
        Set EtsiJaSiirrä = Union(EtsiJaSiirrä, solulaajennus)
        Set solu = .FindNext(solu)
        Set solulaajennus = solu.Resize(1, 14)
        Loop While Not solu Is Nothing And solu.Address EkaOsoite
        End If
        End With
        End Function

        Sub Testi()
        Dim Löydetty As Range
        Dim alue As Areas
        Dim Alueetlkm As Integer
        Dim i As Integer
        Dim Ylärivi As Long
        Dim Vasensarake As Long
        Dim YläVasen As Range
        Dim KopioitavatAlueet() As Range

        On Error GoTo virhe
        Range("Sheet2!O:AB") = ""
        Set Löydetty = EtsiJaSiirrä(11)
        Alueetlkm = Löydetty.Areas.Count
        ReDim KopioitavatAlueet(1 To Alueetlkm)
        For i = 1 To Alueetlkm
        Löydetty.Areas(i).Copy Range("Sheet2!O65536").End(xlUp).Offset(1, 0)
        Next
        Exit Sub
        virhe:
        MsgBox "hakuehdoilla ei löytynyt tietoja!", vbInformation
        End Sub

        Function EtsiJaSiirrä2(Hakuehto As Variant) As Range
        'etsii Sheet1 sarakkeesta A ja siirtää Sheet2 sarakkeeseen O
        'oletuksena, että haettavat tiedot vain sarakkeessa A
        Dim solu As Range
        Dim EkaOsoite As String
        Worksheets("Sheet1").Activate
        With Range("A:A")
        Set solu = .Find( _
        What:=Hakuehto, _
        LookIn:=xlValues, _
        LookAt:=xlWhole, _
        SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, _
        MatchCase:=False, _
        SearchFormat:=False)
        If Not solu Is Nothing Then
        Set EtsiJaSiirrä2 = solu
        EkaOsoite = solu.Address
        Do
        Set EtsiJaSiirrä2 = Union(EtsiJaSiirrä2, solu)
        Set solu = .FindNext(solu)
        Loop While Not solu Is Nothing And solu.Address EkaOsoite
        End If
        End With
        End Function

        Sub Testi2()
        Dim Löydetty As Range
        On Error GoTo virhe
        Set Löydetty = EtsiJaSiirrä2(11)
        Range("Sheet2!O:O") = ""
        Löydetty.Copy Range("Sheet2!O65536").End(xlUp).Offset(1, 0)
        Exit Sub
        virhe:
        MsgBox "hakuehdoilla ei löytynyt tietoja!", vbInformation
        End Sub


      • Makro-Marko
        kunde kirjoitti:

        en ollut varma halusitko siirtää vain A-sarakkeen vaiko sarakkeiden A-N tiedot, joten fiksasin molemmat...


        Option Explicit
        Function EtsiJaSiirrä(Hakuehto As Variant) As Range
        'etsii Sheet1 sarakkeesta A ja siirtää Sheet2 sarakkeeseen O
        'oletuksena, että siirrettävät tiedot sarakkeissa A-N
        Dim solu As Range
        Dim solulaajennus As Range
        Dim EkaOsoite As String
        Worksheets("Sheet1").Activate
        With Range("A:A")
        Set solu = .Find( _
        What:=Hakuehto, _
        LookIn:=xlValues, _
        LookAt:=xlWhole, _
        SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, _
        MatchCase:=False, _
        SearchFormat:=False)
        If Not solu Is Nothing Then
        Set EtsiJaSiirrä = solu
        EkaOsoite = solu.Address
        Set solulaajennus = solu.Resize(1, 14)
        Do
        Set EtsiJaSiirrä = Union(EtsiJaSiirrä, solulaajennus)
        Set solu = .FindNext(solu)
        Set solulaajennus = solu.Resize(1, 14)
        Loop While Not solu Is Nothing And solu.Address EkaOsoite
        End If
        End With
        End Function

        Sub Testi()
        Dim Löydetty As Range
        Dim alue As Areas
        Dim Alueetlkm As Integer
        Dim i As Integer
        Dim Ylärivi As Long
        Dim Vasensarake As Long
        Dim YläVasen As Range
        Dim KopioitavatAlueet() As Range

        On Error GoTo virhe
        Range("Sheet2!O:AB") = ""
        Set Löydetty = EtsiJaSiirrä(11)
        Alueetlkm = Löydetty.Areas.Count
        ReDim KopioitavatAlueet(1 To Alueetlkm)
        For i = 1 To Alueetlkm
        Löydetty.Areas(i).Copy Range("Sheet2!O65536").End(xlUp).Offset(1, 0)
        Next
        Exit Sub
        virhe:
        MsgBox "hakuehdoilla ei löytynyt tietoja!", vbInformation
        End Sub

        Function EtsiJaSiirrä2(Hakuehto As Variant) As Range
        'etsii Sheet1 sarakkeesta A ja siirtää Sheet2 sarakkeeseen O
        'oletuksena, että haettavat tiedot vain sarakkeessa A
        Dim solu As Range
        Dim EkaOsoite As String
        Worksheets("Sheet1").Activate
        With Range("A:A")
        Set solu = .Find( _
        What:=Hakuehto, _
        LookIn:=xlValues, _
        LookAt:=xlWhole, _
        SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, _
        MatchCase:=False, _
        SearchFormat:=False)
        If Not solu Is Nothing Then
        Set EtsiJaSiirrä2 = solu
        EkaOsoite = solu.Address
        Do
        Set EtsiJaSiirrä2 = Union(EtsiJaSiirrä2, solu)
        Set solu = .FindNext(solu)
        Loop While Not solu Is Nothing And solu.Address EkaOsoite
        End If
        End With
        End Function

        Sub Testi2()
        Dim Löydetty As Range
        On Error GoTo virhe
        Set Löydetty = EtsiJaSiirrä2(11)
        Range("Sheet2!O:O") = ""
        Löydetty.Copy Range("Sheet2!O65536").End(xlUp).Offset(1, 0)
        Exit Sub
        virhe:
        MsgBox "hakuehdoilla ei löytynyt tietoja!", vbInformation
        End Sub

        Kiitos. Ei tainnut mennä kun viikko kun itse yritin pari tuntia päivässä ratkaista siirtoa siis noilla linkin jutuilla, eikä onnannut tai onnistui mutta aina A sarakkeeseen.
        Nyt on hyvä kun pystyy tekemään vaikka mitä siirtoja, HYVÄ Functio ja koodit!!!

        Saisko vielä yhden vinkin, miksi ja mitä tarkoittaa Option Explicit.
        Kun se joskus laitetaan moduliin ja joskus ei, Miksi, mitä se tekee?


      • ...
        Makro-Marko kirjoitti:

        Kiitos. Ei tainnut mennä kun viikko kun itse yritin pari tuntia päivässä ratkaista siirtoa siis noilla linkin jutuilla, eikä onnannut tai onnistui mutta aina A sarakkeeseen.
        Nyt on hyvä kun pystyy tekemään vaikka mitä siirtoja, HYVÄ Functio ja koodit!!!

        Saisko vielä yhden vinkin, miksi ja mitä tarkoittaa Option Explicit.
        Kun se joskus laitetaan moduliin ja joskus ei, Miksi, mitä se tekee?

        Option Explicit tarkoittaa, että muuttujat on määriteltävä esim dim z as integer.


      • Makro-Marko
        ... kirjoitti:

        Option Explicit tarkoittaa, että muuttujat on määriteltävä esim dim z as integer.

        tänks


      • Makro-Marko kirjoitti:

        tänks

        että homma toimii...
        Ko funktio on todella monipuolinen, mutta sehän perustuukin Range- objektiin, mikä on mitä monipuolisin objekti Excelin kirjastossa. Soveltamalla saa aikaiseksi uskomattomia juttuja parin rivin koodilla ...

        Tattista vaan
        Keep Excelling
        @Kunde


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Vuonna 2026 jää entistä vähemmän rahaa käteen palkansaajille

      Työttömyysvakuutusmaksu nousee 0,3 prosenttia. Työeläkemaksu nousee 7,15 prosentista 7,3 prosenttiin. Työmarkkinajärjest
      Maailman menoa
      60
      5874
    2. Yritystuet pois ja työeläkevaroilla maksettava valtion velka pois

      Nyt on teille kerrottu keino kuinka Suomen velkaongelmasta päästää eroon kertalaakista. Älkää saatanat enää minulle tul
      Maailman menoa
      113
      5206
    3. Suomen kansa puhunut: Purra huonoimpia ministereitä

      Kouluarvosanalla 6–, eli samaa tasoa mitä Purran oikeakin koulutodistus. Epäpätevyys on tullut huomattua Suomen talouden
      Maailman menoa
      362
      4041
    4. Ylen juttu sisäministeristä oli selvän tarkoitushakuinen

      haluttiin vielä vuoden loppuun saada joku "kohu". (Olisiko Yle tehnyt jutun jos sisäministerinä olisi esim. RKP:n, jota
      Maailman menoa
      143
      3289
    5. Suomalaista yrittäjää ei kommunistista erota

      Muualla maailmassa yrittäjät elävät asiakkaiden rahoilla, Suomessa palkansaajien maksamilla veroilla. Palkansaajahan ma
      Maailman menoa
      52
      2771
    6. 26
      2113
    7. Joulun ruokajonoissa entistä enemmän avuntarvitsijoita - Mitä ajatuksia tämä herättää?

      Räppärit Mikael Gabriel, VilleGalle ja Jare Brand jakoivat ruokaa ja pehmeitäkin paketteja vähävaraisille jouluaattoa ed
      Maailman menoa
      126
      2098
    8. Ulkoministeriön konsulipäällikkö arvostelee rajusti Haavistoa: "Täällä on pelon ilmapiiri"

      "– Täällä on ministerin toimien takia aivan selvästi pelon ilmapiiri. Jos sellaisen annetaan pesiytyä virkamieskulttuuri
      Maailman menoa
      10
      1927
    9. Pyydän anteeksi etten osannut ratkaista

      Mitään muuta kuin lähtemällä. Et oikein tullut vastaan etkä kuunnellut. Tuntui että minun piti koittaa sopia ja sovitell
      Ikävä
      84
      1906
    10. Mikä on pahinta

      Mitä kaivattusi voisi tehdä sinulle?
      Ikävä
      249
      1896
    Aihe