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. löyinkin sen hetimiten, joten tossapa korjattuna nyt ISO standardin mukaiseksi...

    Option Explicit

    Sub Teetaulukko()
    Dim vika As Long
    Dim solu As Range
    Dim viikko As Long
    With Worksheets("Koonti")
    .Activate
    .Cells = ""
    .Range("B1") = "viikko:"
    .Range("B2") = "klo"
    .Range("C1").Formula = "1"
    LisääSarjat Range("C1"), 1, 52
    LisääSarjat2 Range("A3")
    End With
    Worksheets("Taul1").Activate
    vika = Range("A65536").End(xlUp).Row
    For Each solu In Range("A3:A" & vika)
    viikko = ViikkoISO(CDate(solu))
    Worksheets("Koonti").Range(UCase(Format(solu, "dddd"))).Cells(Format(solu, "hh") + 1, viikko + 2) = solu.Offset(0, 1)
    Next
    Worksheets("Koonti").Cells.EntireColumn.AutoFit
    End Sub

    Sub LisääSarjat(solu As Range, Aloitus As Long, Määrä As Long)
    With Worksheets("Koonti")
    solu.Formula = Aloitus
    solu.AutoFill Destination:=Range(solu.Address & ":" & solu.Offset(0, Määrä).Address), Type:=xlFillSeries
    End With
    End Sub

    Sub LisääSarjat2(solu As Range)
    Dim i As Long
    With Worksheets("Koonti")
    solu.Select
    For i = 1 To 7
    ActiveCell = UCase(WeekdayName(i))
    ActiveCell.Offset(0, 1).Formula = "0"
    ActiveCell.Offset(0, 1).AutoFill Destination:=Range(ActiveCell.Offset(0, 1).Address & ":" & ActiveCell.Offset(23, 1).Address), Type:=xlFillSeries
    ActiveWorkbook.Names.Add Name:=ActiveCell, RefersTo:=Range(ActiveCell.Address & ":" & ActiveCell.Offset(23, 54).Address)
    ActiveCell.Offset(26, 0).Select
    Next
    End With
    End Sub

    Public Function ViikkoISO(Päiväys As Date) As Long
    Dim D As Date
    D = DateSerial(Year(Päiväys - Weekday(Päiväys - 1) + 4), 1, 3)
    ViikkoISO = Int((Päiväys - D + Weekday(D) + 5) / 7)
    End Function

    Keep EXCELing
    @Kunde
  2. aika cool...

    lisää taulukko Koonti (oishan sen voinut koodillakin hoitaa, mutta pikaisesti näin nyt- nimeä sopivaksi tarvittaessa)

    jos enemmän tyhjiä rivejä tartte niin muuta lukua isommaksi
    ActiveCell.Offset(26, 0).Select

    moduuliin...

    Option Explicit

    Sub Teetaulukko()
    Dim vika As Long
    Dim solu As Range
    With Worksheets("Koonti")
    .Activate
    .Cells = ""
    .Range("B1") = "viikko:"
    .Range("B2") = "klo"
    .Range("C1").Formula = "1"
    LisääSarjat Range("C1"), 1, 52
    LisääSarjat2 Range("A3")
    End With
    Worksheets("Taul1").Activate
    vika = Range("A65536").End(xlUp).Row
    For Each solu In Range("A3:A" & vika)
    Worksheets("Koonti").Range(UCase(Format(solu, "dddd"))).Cells(Format(solu, "hh") + 1, Format(solu, "ww") + 2) = solu.Offset(0, 1)
    Next
    Worksheets("Koonti").Cells.EntireColumn.AutoFit
    End Sub

    Sub LisääSarjat(solu As Range, Aloitus As Long, Määrä As Long)
    With Worksheets("Koonti")
    solu.Formula = Aloitus
    solu.AutoFill Destination:=Range(solu.Address & ":" & solu.Offset(0, Määrä).Address), Type:=xlFillSeries
    End With
    End Sub

    Sub LisääSarjat2(solu As Range)
    Dim i As Long
    With Worksheets("Koonti")
    solu.Select
    For i = 1 To 7
    ActiveCell = UCase(WeekdayName(i))
    ActiveCell.Offset(0, 1).Formula = "0"
    ActiveCell.Offset(0, 1).AutoFill Destination:=Range(ActiveCell.Offset(0, 1).Address & ":" & ActiveCell.Offset(23, 1).Address), Type:=xlFillSeries
    ActiveWorkbook.Names.Add Name:=ActiveCell, RefersTo:=Range(ActiveCell.Address & ":" & ActiveCell.Offset(23, 54).Address)
    ActiveCell.Offset(26, 0).Select
    Next
    End With
    End Sub

    Keep EXCELing
    @Kunde
  3. täyttää aktiivisesta solusta alaspäin valittujen päiväysten väliset kuukaudet

    moduuliin...

    Sub TäytäKuukaudet()
    Dim Alku
    Dim Loppu
    Dim i As Long
    Dim testi
    Application.ScreenUpdating = False
    uusi1:
    Alku = Application.InputBox("Anna aloitus pvm muodossa 17.06.2011")
    If Not IsDate(Alku) Then
    MsgBox "päiväys virheellinen"
    Alku = ""
    GoTo uusi1
    End If
    uusi2:
    Loppu = Application.InputBox("Anna lopetus pvm muodossa 17.06.2011")
    If Not IsDate(Loppu) Then
    MsgBox "päiväys virheellinen"
    Loppu = ""
    GoTo uusi2
    End If

    testi = MsgBox("Täytetäänkö kuukaudet väliltä " & Alku & " - " & Loppu & "?", vbInformation + vbYesNo)
    If testi = 6 Then
    ActiveCell = Alku
    For i = 1 To DateDiff("m", Alku, Loppu)
    ActiveCell.Offset(i, 0) = DateSerial(Year(ActiveCell.Offset(i - 1, 0)), Month(ActiveCell.Offset(i - 1, 0)) + 1, Day(ActiveCell.Offset(i - 1, 0)))
    Next i
    Range(ActiveCell, ActiveCell.Offset(i - 1)).NumberFormat = "mmmm yy"
    End If
    Application.ScreenUpdating = True
    End Sub

    Keep EXCELing
    @Kunde