Vapaa kuvaus

Isaan Rules WFF CCC If you walked away smiling-then for you the price was right Keep Exceling Suosikkibändit/artistit: Queen, Rammstein, genesis, Bruce Bringsteen, Kino, Mandref Mann Earth band Who Lempikirjat: ohjelmointi... Suosikkipalstat Suomi24 Keskusteluissa: EXCEL, Kivitalot, EPS En pidä: pakkanen ja loskakelit Ruoka & juoma: loimulohi ja valkkari Linkit: http://www.kundepuu.com, Khorat Koulutus: --- Ammatti: Tiede/teknologia Työskentelen: freelancer Ase tai siviilipalvelus: yliluutnantti Siviilisääty: Varattu Lapset: --- Hakusanat: Thaimaa, korat, Excel, VBA, ACAD, CNC, Polyurea, EPS, MgO elementti

Aloituksia

7

Kommenttia

1374

  • Uusimmat aloitukset
  • Suosituimmat aloitukset
  • Uusimmat kommentit
  1. vika on siinä kun rivejä poistetaan ne pitää poistaa alkaen lopustapäin.
    Olen aikaisemmin postannut FIND funktion joka palauttaa alueen ja on tässäkin tapauksessa parhain ja nopein vaihtoehto. Yleensä pitäisi pyrkiä käyttämään excelin omia funktioita. For next loopit ovat niitä "tehottomimpia", mutta toimivia kuitenkin. Kysyjän tapauksessa nopeus ei varmaankaan nöyttele suurtakaan osuutta. Tossa nyt kuitenkin FIND makro ja sillähän voit tehdä sen tallennuksenkin yhdellä koodirillä toiseen taulukkoon...

    Sub CommandButton1_Click()
    EtsiAlue("EPÄTOSI", Columns("C"), xlFormulas, xlWhole).EntireRow.Copy Range("Sheet2!C65536").End(xlUp).Offset(1, 0).EntireRow
    EtsiAlue("EPÄTOSI", Columns("C"), MatchCase:=True).EntireRow.Delete
    End Sub

    Function EtsiAlue(Haettava As Variant, _
    Hakualue As Range, _
    Optional LookIn As Variant, _
    Optional LookAt As Variant, _
    Optional MatchCase As Boolean) As Range


    Dim Alue As Range
    Dim Ekaosoite As String
    If IsMissing(LookIn) Then LookIn = xlValues
    If IsMissing(LookAt) Then LookAt = xlPart
    If IsMissing(MatchCase) Then MatchCase = False

    With Hakualue
    Set Alue = .Find( _
    What:=Haettava, _
    LookIn:=LookIn, _
    LookAt:=LookAt, _
    SearchOrder:=xlByRows, _
    SearchDirection:=xlNext, _
    MatchCase:=MatchCase, _
    SearchFormat:=False)
    If Not Alue Is Nothing Then
    Set EtsiAlue = Alue
    Ekaosoite = Alue.Address
    Do
    Set EtsiAlue = Union(EtsiAlue, Alue)
    Set Alue = .FindNext(Alue)
    Loop While Not Alue Is Nothing And Alue.Address Ekaosoite
    End If
    End With
    End Function

    Keep Excelling @Kunde
  2. collectionilla menee aika kivasti...
    muokkaa taulukot ja muut itsellesi sopivaksi

    HAUSKAA JOULUA JA HYVÄÄ UUTTA VUOTTA PALSTALAISILLE!!!
    Keep Excelling @Kunde

    Sub Haeparit()

    Dim Alue As Variant
    Dim Rivit As Long
    Dim Sarakkeet As Long
    Dim Parikokoelma As New Collection
    Dim Jäsen As Long
    Dim Kuvaus As String
    Dim Määrät(10000, 4) As String
    Dim i As Long
    Dim j As Long
    Dim k As Long
    Dim vika As Long
    On Error Resume Next

    Sheets("Taul1").Select ' muuta taulukon nimi
    vika = Range("A65536").End(xlUp).Row
    Alue = Range("A1:L" & vika) ' muuta alue

    Rivit = UBound(Alue, 1)
    Sarakkeet = UBound(Alue, 2)
    For i = 1 To Rivit
    For j = 1 To Sarakkeet - 1
    For k = j + 1 To Sarakkeet
    If Alue(i, j) < Alue(i, k) Then
    Kuvaus = Alue(i, j) & "." & Alue(i, k)
    Else
    Kuvaus = Alue(i, k) & "." & Alue(i, j)
    End If
    Parikokoelma.Add Parikokoelma.Count + 1, Kuvaus
    Jäsen = Parikokoelma(Kuvaus)
    If Määrät(Jäsen, 0) = "" Then
    Määrät(Jäsen, 0) = Kuvaus
    Määrät(Jäsen, 1) = Alue(i, j)
    Määrät(Jäsen, 2) = Alue(i, k)
    End If
    If Määrät(Jäsen, 3) = "" Then
    Määrät(Jäsen, 3) = "1"
    Else
    Määrät(Jäsen, 3) = CStr(CInt(Määrät(Jäsen, 3)) + 1)
    End If
    Next k
    Next j
    Next i
    Sheets("Taul2").Select 'muuta taulukon nimi
    Cells.Clear
    Cells(1, 1).Resize(Parikokoelma.Count, 4) = Määrät
    Range("A1") = "Numero1.Numero2"
    Range("B1") = "Numero1"
    Range("C1") = "Numero2"
    Range("D1") = "Esiintymät"
    Range("A1:D1").Font.Bold = True
    Columns("A:D").Sort Key1:=Range("D2"), Order1:=xlDescending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
    Columns("A:D").EntireColumn.AutoFit
    Columns("A:A").Delete 'poistaa Numero1.Numero2 sarakkeen
    End Sub
  3. Sub Transponoi()
    Dim vika As Integer
    Dim solu As Range
    Worksheets("Taul2").Range("B:B") = ""
    Worksheets("Taul3").Range("B:B") = ""
    Worksheets("Taul4").Range("B:B") = ""
    vika = Range("Taul1!A65536").End(xlUp).Row
    For Each solu In Range("Taul1!A1:A" & vika)
    solu.Offset(0, 1).Resize(1, 11).Copy
    Select Case LCase(solu)
    Case "ympyrä"
    Range("Taul2!B65536").End(xlUp).Offset(1, 0).PasteSpecial Transpose:=True
    Case "neliö"
    Range("Taul3!B65536").End(xlUp).Offset(1, 0).PasteSpecial Transpose:=True
    Case "kolmio"
    Range("Taul4!B65536").End(xlUp).Offset(1, 0).PasteSpecial Transpose:=True
    Case Else
    End Select
    Next
    Application.CutCopyMode = False
    End Sub