Tyhjän rivin etsiminen VBA

Minulla on työkirja jossa on kolme taulua ”Syöttö, Data ja AT jossa on asetuksia”. Syöttö taulua käytetään tiedon syöttämiseen sekä kaavakkeen tulostukseen tästä tiedot kopioidaan ”napista” Data taulun riveihin. Miten löydän tyhjän rivin Data taulusta ja niin että se tutkisi joko on sillä erällä tiedot. Eri vuosilla saa olla sama erä numero.
41316
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

sarakkeen A ensimmäisen tyhjän solun valitset näin
Vika()
Dim Vika As Integer
Vika = Range("A1").End(xlDown).Row
Range("A" & Vika 1).Select
End Sub

Äänestä
  • Tällä sain ensinmäisen tyhjän rivin mutta miten tutkin onko tieto jo olemassa, elikä mulla on vuosi B sarakkeessa ja erä E sarakkeessa, syöttö taulussa vastaavasti vuosi on M9 ja erä O6.

    Äänestä

  • Nimetön kirjoitti:

    Tällä sain ensinmäisen tyhjän rivin mutta miten tutkin onko tieto jo olemassa, elikä mulla on vuosi B sarakkeessa ja erä E sarakkeessa, syöttö taulussa vastaavasti vuosi on M9 ja erä O6.

    moduuliin

    Sub Kopioi()
    Dim Vika As Integer
    Dim Haettava As Range
    Dim Haettava2 As Range
    Dim Hakualue As Range
    Dim Löydetty As Range
    Dim EkaSolu As String
    Sheets("Syöttö").Activate
    Set Haettava = Range("M9")
    Set Haettava2 = Range("O6")
    Sheets("Data").Activate
    Vika = Range("B65536").End(xlUp).Row

    Set Hakualue = Range("B1:B" & Vika)
    Range("B1").Select
    Set Löydetty = Hakualue.Find(What:=Haettava, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False)
    If Not Löydetty Is Nothing Then
    EkaSolu = Löydetty.Address
    If Löydetty.Offset(0, 3) = Haettava2 Then
    MsgBox "Tiedot on jo olemassa", vbInformation
    Exit Sub
    Else
    Do
    Set Löydetty = Hakualue.FindNext(Löydetty)
    If Löydetty.Offset(0, 3) = Haettava2 Then
    MsgBox "Tiedot on jo olemassa", vbInformation
    Exit Sub
    End If
    Loop While Not Löydetty Is Nothing And Löydetty.Address EkaSolu
    Range("B" & Vika 1) = Haettava
    Range("B" & Vika 1).Offset(0, 3) = Haettava2
    End If
    End If
    End Sub

    Äänestä

  • Kunde kirjoitti:

    moduuliin

    Sub Kopioi()
    Dim Vika As Integer
    Dim Haettava As Range
    Dim Haettava2 As Range
    Dim Hakualue As Range
    Dim Löydetty As Range
    Dim EkaSolu As String
    Sheets("Syöttö").Activate
    Set Haettava = Range("M9")
    Set Haettava2 = Range("O6")
    Sheets("Data").Activate
    Vika = Range("B65536").End(xlUp).Row

    Set Hakualue = Range("B1:B" & Vika)
    Range("B1").Select
    Set Löydetty = Hakualue.Find(What:=Haettava, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False)
    If Not Löydetty Is Nothing Then
    EkaSolu = Löydetty.Address
    If Löydetty.Offset(0, 3) = Haettava2 Then
    MsgBox "Tiedot on jo olemassa", vbInformation
    Exit Sub
    Else
    Do
    Set Löydetty = Hakualue.FindNext(Löydetty)
    If Löydetty.Offset(0, 3) = Haettava2 Then
    MsgBox "Tiedot on jo olemassa", vbInformation
    Exit Sub
    End If
    Loop While Not Löydetty Is Nothing And Löydetty.Address EkaSolu
    Range("B" & Vika 1) = Haettava
    Range("B" & Vika 1).Offset(0, 3) = Haettava2
    End If
    End If
    End Sub

    Toimii! ja kiitos. Yritän itse selvitä nyt eteenpäin ja kyselen sitten lisää jos vielä apua tarvitsen.

    Äänestä

Kommentoi aloitusta


Nimetön kirjoitti:

Minulla on työkirja jossa on kolme taulua ”Syöttö, Data ja AT jossa on asetuksia”. Syöttö taulua käytetään tiedon syöttämiseen sekä kaavakkeen tulostukseen tästä tiedot kopioidaan ”napista” Data taulun riveihin. Miten löydän tyhjän rivin Data taulusta ja niin että se tutkisi joko on sillä erällä tiedot. Eri vuosilla saa olla sama erä numero.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu