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
kunden Function EtsiJaSiirrä
6
379
Vastaukset
- Makro-Marko
Näitä kävin läpi
http://keskustelu.suomi24.fi/search/s24search/function etsijasiirrä?term_keywords=function etsijasiirrä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 SubKiitos. 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
Useita puukotettu Tampereella
Mikäs homma tämä nyt taas on? "Useaa henkilöä on puukotettu Tampereen keskustassa kauppakeskus Ratinan lähistöllä." ht2364600Kuka rääkkää eläimiä Puolangalla?
Poliisi ampui toistakymmentä nälkiintynyttä eläintä Puolangalla Tilalta oli ollut karkuteillä lähes viisikymmentä nälkii763035- 472463
Meneeköhän sulla
oikeasti pinnan alla yhtä huonosti kuin mulla? Tai yhtä huonosti mutta jollain eri tyylillä? Ei olisi pitänyt jättää sua451767- 251613
- 781439
Lähetä terveisesi kaipaamallesi henkilölle
Vauva-palstalta tuttua kaipaamista uudessa ympäristössä. Kaipuu jatkukoon 💘851285PS uusimman gallupin rakettimainen nousija
https://yle.fi/a/74-20170641 Aivan ylivoimaisesti suurin kannatuksen nousu PS:lle. Nousu on alkanut ja jatkuu 2 vuoden143965- 69938
Sellainen tunne sydämessä
Että nainen olet kaivannut minua. Tai sanonko että oikeastaan koet sitä samaa nostalgiaa, kaipuuta ja mukavia muistoja,86894