kunde

kunde profiilikuva
Joulu 2024
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

Liittynyt 20v sitten
7 aloitusta · 1377 kommenttia
Uusimmat aloituksetSuosituimmat aloituksetUusimmat kommentit
moduuliin...

Sub koe()
Dim Sivunalku As String
Dim Alue As Range
Dim i As Integer
Dim j As Integer
Dim alkuwb As String
Dim uusiwb As String
Dim Sivunvaihto As Integer
Dim Rivit As Long
Dim Polku As String
Dim Sivunkoko As Integer

On Error GoTo virhe
Application.DisplayAlerts = False
Application.ScreenUpdating = False

takaisin:
Sivunkoko = Application.InputBox(" Anna rivienmaara sivulla", "Sivuntulostus", 30, Type:=1)
If Sivunkoko = 0 Then Exit Sub
If Not Sivunkoko > 0 Then
MsgBox "Sinun on annettava 0 suurempi luku!"
GoTo takaisin
End If
Rivit = ActiveSheet.UsedRange.Rows.Count
ActiveSheet.ResetAllPageBreaks
If Rivit > Sivunkoko Then
Sivunvaihto = Int(Rivit / Sivunkoko) + 1
For i = 1 To Sivunvaihto
ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveSheet.UsedRange.Cells(Sivunkoko * i + 1, 1)
Next i
End If
alkuwb = ActiveWorkbook.Name
Sivunalku = "$A$1"

For i = 1 To ActiveSheet.HPageBreaks.Count
uusi = i
If i > 1 Then Sivunalku = ActiveSheet.HPageBreaks(i - 1).Location.Address
j = ActiveSheet.HPageBreaks(i).Location.Row - 1

Workbooks.Add
uusiwb = ActiveWorkbook.Name
Workbooks(alkuwb).Sheets(1).Range(Sivunalku & ":" & "$H$" & Trim$(Str$(j))).Copy _
Destination:=Workbooks(uusiwb).Sheets(1).Range("A1") ' oletus eka taulukko
Polku = "H:\" & uusi & ".xls" 'muuta polkua
ActiveWorkbook.SaveAs Filename:=Polku
ActiveWorkbook.Close
Windows(alkuwb).Activate

Next
' vika sivu lisattava manuaalisesti
If j < Rivit Then
uusi = uusi + 1
j = j + Sivunkoko
Sivunalku = Range(Sivunalku).Offset(Sivunkoko, 0).Address
Workbooks.Add
uusiwb = ActiveWorkbook.Name
Workbooks(alkuwb).Sheets(1).Range(Sivunalku & ":" & "$H$" & Trim$(Str$(j))).Copy _
Destination:=Workbooks(uusiwb).Sheets(1).Range("A1") ' oletus eka taulukko
Polku = "H:\" & uusi & ".xls" 'muuta polkua
ActiveWorkbook.SaveAs Filename:=Polku
ActiveWorkbook.Close
Windows(alkuwb).Activate
End If
virhe:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub


keep Excelling
@Kunde
"Toki sillä mainitsemallasi suodatuksella olisi iisiä tehdä suodatus esim. antenneista ja sitten kopsata ko. lista sinne antennit-taulukkoon, mutta kun pahoin pelkään että työnantaja ei sitäkään vaivaa halua nähdä :/. "

en minäkään viitsisi pelleillä phauilla ja suodatuksilla manuaalisesti...

mutta asiaan

en tarkkaan tiedä tuotteiden koodaustasi, mutta allaoleva makro päivittää automaattisesti taulukot ja lisää uuden kun uusi tuote lisätään. Tosta on helppo muunnella tarpeittesi mukaan. Tuotteet on siis sarakkeessa A, josta uudet taulukot tehdään

Datataulukon moduuliin...

rivate Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo virhe
Application.ScreenUpdating = False
Call TeeTaulukot
virhe:
Application.ScreenUpdating = True
End Sub

ja tavalliseen moduuliin...

Sub TeeTaulukot()
Dim Tiedot As Range
Dim solu As Range
Dim Taulukko As Worksheet
Dim AloitusTaulukko As Worksheet
Dim Nimi As String


On Error Resume Next
Application.DisplayAlerts = False
Set AloitusTaulukko = ActiveSheet
AloitusTaulukko.AutoFilterMode = False
Set Tiedot = Range("A1", Range("A65536").End(xlUp))
For Each Taulukko In Worksheets
If Not Taulukko.Name = "Data" Then ' muuta datataulukon nimi sopivaksi
Taulukko.Delete
End If
Next

Worksheets.Add().Name = "HUUHAA"
With Worksheets("HUUHAA")
Tiedot.AdvancedFilter xlFilterCopy, , _
Worksheets("HUUHAA").Range("A1"), True
Set Tiedot = .Range("A1", .Range("A65536").End(xlUp))
End With

With AloitusTaulukko
For Each solu In Tiedot
Nimi = solu
.Range("A1").AutoFilter 1, Nimi
Worksheets.Add().Name = Nimi
.UsedRange.Copy Destination:=ActiveSheet.Range("A1")
ActiveSheet.Cells.Columns.AutoFit
Next solu
End With

With AloitusTaulukko
.AutoFilterMode = False
.Activate
End With

On Error GoTo 0
Worksheets("HUUHAA").Delete
Application.DisplayAlerts = True
End Sub

keep excelling :-)
@Kunde
Sub summaa()
Dim summa As Double
For i = 1 To Worksheets.Count
If Worksheets(i).Visible = True Then
summa = summa + Worksheets(i).Range("A1")
End If
Next i
Worksheets(1).Range("F1") = summa
End Sub