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

  1. tavalliseen+moduuliin...Option+ExplicitSub+Poista()++++Dim+Shp+As+Shape++++On+Error+Resume+Next++++For+Each+Shp+In+ActiveSheet.Shapes++++++++Shp.Delete++++Next+ShpEnd+SubSub+PiirräVektori()PoistaDim+Vektori1+As+New+ClsVektoriWith+Vektori1'jos+käytät+muuta+kuin+Vektoriluokan+oletusta+aloituspisteelle,+niin+hipsaa+allaolevat+2+riviä...'++++.x1+=+ActiveSheet.Range("P18").Left'++++.y1+=++ActiveSheet.Range("P18").Top'++++pituus++++.Pituus+=+Range("A1").Value'++++kulma++++.Kulma+=+Range("A2").Value'++++skalaari++++.Skalaari+=+10++++.Nimi+=+"Vektori1"++++.PiirräEnd+WithEnd+Sublisää+luokka+moduuli+ja+nimeä+se+ClsVektori+ja+lisää+allaoleva+koodi+sinneOletuksia+voi+lisätä+ja+ominaisuuksia+lisäillä+tarpeen+mukaanOption+ExplicitPublic+x1+As+DoublePublic+y1+As+DoublePublic+Kulma+As+DoublePublic+Pituus+As+DoublePublic+Skalaari+As+DoublePublic+Viivanväri+As+IntegerPublic+Viivanpaksuus+As+DoublePublic+Nimi+As+StringPublic+Pi+As+DoublePrivate+Sub+Class_Initialize()'+oletusarvoja++++x1+=+200++++y1+=+200++++Kulma+=+0++++Pituus+=+10++++Skalaari+=+1++++Pi+=+3.14159265358979++++Viivanväri+=+8++++Viivanpaksuus+=+1End+SubPrivate+Function+Rad(Asteet+As+Double)+As+Double++++Rad+=+Asteet+*+Pi+/+180End+FunctionFunction+x2()+As+Double++++x2+=+x1+++Pituus+*+Sin(Rad(Kulma))+*+SkalaariEnd+FunctionFunction+y2()+As+Double++++y2+=+y1+-+Pituus+*+Cos(Rad(Kulma))+*+SkalaariEnd+FunctionSub+Piirrä()++++With+ActiveSheet.Shapes.AddLine(x1,+y1,+x2,+y2)++++++++.Name+=+Nimi++++++++.Line.EndArrowheadStyle+=+msoArrowheadStealth++++++++.Line.BeginArrowheadStyle+=+msoArrowheadNone++++++++.Line.ForeColor.SchemeColor+=+Viivanväri++++++++.Line.Weight+=+Viivanpaksuus++++End+WithEnd+SubKeep+EXCELing@Kunde
  2. Laitoin+malliksi+hieman+muitakin+juttuja,+mitä+voi+hyödyntää.+On+toki+paljon+muitakin+vielä.+Itsellä+oli+tarve+lisätä++paljon+attribuuttitietoa+(mm+poraukset)+ja+Excelissä+ei+semmoista+ole+objekteilla++mutta+aika+kivuttomasti+se+tollainkin+meni...Tein+myöhemmin+sitten++treeviewllä++yksinkertaisen+rakennepuun,+missä+osia+pystyy+muokkaaman+vapaasti.APIlla+sitten+lomakkeellaoli++helpompaa+fiksailla+kaikkea+ja+näkee+piirron+kanssa+samalla,+mutta+ihan+toimiva++juttu+ja+todistaa+sen,+että+EXCEL+taipuu+moniin+juttuihin,+mihin+sitä+ei+le+alunperin+edes+tarkoitettu++;-)Sub+Suorakaide(X+As+Double,+Y+As+Double,+Leveys+As+Double,+Korkeus+As+Double)Dim+aDim+xlShp+As+ShapeWorksheets(1).Activate'soluun+kiinnitettynäSet+xlShp+=+ActiveSheet.Shapes.AddShape(msoShapeRectangle,+ActiveSheet.Range("C10").Left,+ActiveSheet.Range("c10").Top,+Leveys,+Korkeus)'vasemmasta+yläkulmasta+lähtien'Set+xlShp+=+ActiveSheet.Shapes.AddShape(msoShapeRectangle,+X,+Y,+Leveys,+Korkeus)With+xlShp++++++++.Name+=+"Kundenmalli"++++'tässä+voi+lisätä+atribuuttitietoja+vaihtoehtoinen+teksti+attribuuttiin,+josta+voi+lukea+sitten+kätevästi+tuotteen+tietoja+tai+indoa++++.AlternativeText+=+.Name+&+","+&+Korkeus+&+","+&+Leveys+&+",Tammi"++++'tässä+voi+kätevästi+näyttää+tuotteen+tiedot+hyperlinkillä+kun+hiirellä+siirtyy+kuvion+päälle++++a+=+Split(.AlternativeText,+",")++++ActiveSheet.Hyperlinks.Add+Anchor:=ActiveSheet.Shapes(.Name),+Address:="",+ScreenTip:="Osan+nimi:+"+&+a(0)+&+vbNewLine+&+"Korkeus:+"+&+a(1)+&+vbNewLine+&+"Leveys:+"+&+a(2)+&+vbNewLine+&+"Väri:+"+&+a(3)'tässä+voi+lisätä+materiaalin+tai+värin'++++.Fill.UserPicture+ThisWorkbook.Path+&+"\"+&+"Tammi.jpg"++++.Line.Visible+=+msoTrue++++.Line.Weight+=+0End+With'viivaSet+xlShp+=+ActiveSheet.Shapes.AddLine(ActiveSheet.Shapes("Kundenmalli").Left+++ActiveSheet.Shapes("Kundenmalli").Width,+ActiveSheet.Shapes("Kundenmalli").Top+++ActiveSheet.Shapes("Kundenmalli").Height,+500,+500)xlShp.SelectxlShp.Name+=+"Viiva"End+SubSub+Koe()'tiedot+voi+hakea+solustakin'Suorakaide+Range("A1"),+Range)"B1"),+Range("C1"),+Range("D1")Suorakaide+100,+100,+100,+500End+SubKeep+EXCELing@Kunde
  3. lipsahti+ekaksi+fiksaamaton+koodi+tässä+oikea...edelliset+postaukset+eivät+huomioi+sitä+,+että+jos+esim.+ne+100++lukua+,+niin+hankalaa+muistaa+mitä+lukuja+on+jo+käyttänyt+,+koska+luvut+eivät+poistu+luettelosta.Lisähaasteena+tossa+vielä+sekin,+että+jos+haluaa+muuttaa+jo+solussa+olevaa+lukua+vanha+luku+pitää+palauttaa+ja+poistaa+uusi+luku+listasta...no+tossa+koodi...nyt++kelpoisuusehto+H1:H100+ja+luvut+Ki:K100+,+muuta+sopivaksiko++taulukon+moduuliin...Dim+Vanhasolu+As+VariantDim+Uusisolu+As+VariantPublic+TyhjäSolu+As+BooleanPrivate+Sub+Worksheet_SelectionChange(ByVal+Target+As+Range)If+Not+Intersect(Range("H1:H100"),+Target)+Is+Nothing+Then++++If+Target.Count+=+1+Then++++++++If+Target+=+""+Then++++++++++++TyhjäSolu+=+True++++++++Else++++++++++++TyhjäSolu+=+False++++++++End+If++++End+IfEnd+IfEnd+SubPrivate+Sub+Worksheet_Change(ByVal+Target+As+Range)On+Error+Resume+NextApplication.EnableEvents+=+FalseApplication.ScreenUpdating+=+FalseIf+Not+Intersect(Range("H1:H100"),+Target)+Is+Nothing+And+TyhjäSolu+Then++++PoistaLuettelosta+Target++++ActiveWorkbook.Names("Lista").Delete++++vika+=+Range("K1").End(xlDown).Row++++If+Not+Range("K1")+=+""+Then++++++++ActiveWorkbook.Names.Add+Name:="Lista",+RefersTo:=Range("K1:K"+&+vika)++++Else++++++++Range("H1:H100").Validation.Delete++++End+IfElse++++If+Not+Intersect(Range("H1:H100"),+Target)+Is+Nothing+And+Not+TyhjäSolu+Then++++++++Uusisolu+=+Target.Value++++++++Application.Undo++++++++Vanhasolu+=+Target.Value++++++++ActiveWorkbook.Names("Lista").Delete++++++++vika+=+Range("K1").End(xlDown).Row++++++++Range("K"+&+vika+++1)+=+Vanhasolu++++++++ActiveWorkbook.Names.Add+Name:="Lista",+RefersTo:=Range("K1:K"+&+vika+++1)++++++++Worksheets("Sheet1").Sort.SortFields.Clear++++++++Worksheets("Sheet1").Sort.SortFields.Add+Key:=Range("K1:K"+&+vika+++1),+Order:=xlAscending++++++++With+Worksheets("Sheet1").Sort++++++++++++.SetRange+Range("K1:K"+&+vika+++1)++++++++++++.Apply++++++++End+With++++++++Target+=+Uusisolu++++++++Vanhasolu+=+Uusisolu++++++++PoistaLuettelosta+Uusisolu++++End+IfEnd+IfTyhjäSolu+=+FalseApplication.EnableEvents+=+TrueApplication.ScreenUpdating+=+TrueEnd+Subtavalliseen+moduuliin...Sub+resetoi()Application.EnableEvents+=+TrueApplication.ScreenUpdating+=+TrueTyhjäSolu+=+FalseActiveWorkbook.Names.Add+Name:="Lista",+RefersTo:=Range("K1:K100")Range("K1")+=+1Range("K2")+=+2Range("K1:K2").AutoFill+Destination:=Range("K1:K100"),+Type:=xlFillDefaultRange("H1:H100")+=+""With+Range("H1:H100").Validation++++.Delete++++.Add+Type:=xlValidateList,+AlertStyle:=xlValidAlertStop,+Operator:=+_++++++++xlBetween,+Formula1:="=$K$1:$K$100"End+WithEnd+SubSub+PoistaLuettelosta(Hakuehto+As+Variant)Worksheets("Sheet1").ActivateDim+solu+As+RangeWith+Range("K1:K100")Set+solu+=+.Find(+_What:=Hakuehto,+_LookIn:=xlValues,+_LookAt:=xlWhole,+_SearchOrder:=xlByRows,+_SearchDirection:=xlNext,+_MatchCase:=False,+_SearchFormat:=False)If+Not+solu+Is+Nothing+Thensolu.Delete+shift:=xlUpEnd+IfEnd+WithWorksheets("Sheet1").Sort.SortFields.ClearWorksheets("Sheet1").Sort.SortFields.Add+Key:=Range("K1:K100"),+Order:=xlAscendingWith+Worksheets("Sheet1").Sort++++.SetRange+Range("K1:K100")++++.ApplyEnd+WithEnd+SubKeep+EXCELing@Kunde
  4. edelliset+postaukset+eivät+huomioi+sitä+,+että+jos+esim.+ne+100++lukua+,+niin+hankalaa+muistaa+mitä+lukuja+on+jo+käyttänyt+,+koska+luvut+eivät+poistu+luettelosta.Lisähaasteena+tossa+vielä+sekin,+että+jos+haluaa+muuttaa+jo+solussa+olevaa+lukua+vanha+luku+pitää+palauttaa+ja+poistaa+uusi+luku+listasta...no+tossa+koodi...nyt++kelpoisuusehto+H1:H100+ja+luvut+Ki:K100+,+muuta+sopivaksiko++taulukon+moduuliin...Dim+Vanhasolu+As+VariantDim+Uusisolu+As+VariantPublic+TyhjäSolu+As+BooleanPrivate+Sub+Worksheet_SelectionChange(ByVal+Target+As+Range)If+Not+Intersect(Range("H1:H10"),+Target)+Is+Nothing+Then++++If+Target.Count+=+1+Then++++++++If+Target+=+""+Then++++++++++++TyhjäSolu+=+True++++++++Else++++++++++++TyhjäSolu+=+False++++++++End+If++++End+IfEnd+IfEnd+SubPrivate+Sub+Worksheet_Change(ByVal+Target+As+Range)On+Error+Resume+NextApplication.EnableEvents+=+FalseApplication.ScreenUpdating+=+FalseIf+Not+Intersect(Range("H1:H10"),+Target)+Is+Nothing+And+TyhjäSolu+Then++++PoistaLuettelosta+Target++++ActiveWorkbook.Names("Lista").Delete++++vika+=+Range("K1").End(xlDown).Row++++If+Not+Range("K1")+=+""+Then++++++++ActiveWorkbook.Names.Add+Name:="Lista",+RefersTo:=Range("K1:K"+&+vika)++++Else++++++++Range("H1:H100").Validation.Delete++++End+IfElse++++If+Not+Intersect(Range("H1:H10"),+Target)+Is+Nothing+And+Not+TyhjäSolu+Then++++++++Uusisolu+=+Target.Value++++++++Application.Undo++++++++Vanhasolu+=+Target.Value++++++++ActiveWorkbook.Names("Lista").Delete++++++++vika+=+Range("K1").End(xlDown).Row++++++++Range("K"+&+vika+++1)+=+Vanhasolu++++++++ActiveWorkbook.Names.Add+Name:="Lista",+RefersTo:=Range("K1:K"+&+vika+++1)++++++++Worksheets("Sheet1").Sort.SortFields.Clear++++++++Worksheets("Sheet1").Sort.SortFields.Add+Key:=Range("K1:K"+&+vika+++1),+Order:=xlAscending++++++++With+Worksheets("Sheet1").Sort++++++++++++.SetRange+Range("K1:K"+&+vika+++1)++++++++++++.Apply++++++++End+With++++++++Target+=+Uusisolu++++++++Vanhasolu+=+Uusisolu++++++++PoistaLuettelosta+Uusisolu++++End+IfEnd+IfTyhjäSolu+=+FalseApplication.EnableEvents+=+TrueApplication.ScreenUpdating+=+TrueEnd+Subtavalliseen+moduuliin...Sub+resetoi()Application.EnableEvents+=+TrueApplication.ScreenUpdating+=+TrueTyhjäSolu+=+FalseActiveWorkbook.Names.Add+Name:="Lista",+RefersTo:=Range("K1:K100")Range("K1")+=+1Range("K2")+=+2Range("K1:K2").AutoFill+Destination:=Range("K1:K100"),+Type:=xlFillDefaultRange("H1:H100")+=+""With+Range("H1:H100").Validation++++.Delete++++.Add+Type:=xlValidateList,+AlertStyle:=xlValidAlertStop,+Operator:=+_++++++++xlBetween,+Formula1:="=$K$1:$K$100"End+WithEnd+SubSub+PoistaLuettelosta(Hakuehto+As+Variant)Worksheets("Sheet1").ActivateDim+solu+As+RangeWith+Range("K1:K10")Set+solu+=+.Find(+_What:=Hakuehto,+_LookIn:=xlValues,+_LookAt:=xlWhole,+_SearchOrder:=xlByRows,+_SearchDirection:=xlNext,+_MatchCase:=False,+_SearchFormat:=False)If+Not+solu+Is+Nothing+Thensolu.Delete+shift:=xlUpEnd+IfEnd+WithWorksheets("Sheet1").Sort.SortFields.ClearWorksheets("Sheet1").Sort.SortFields.Add+Key:=Range("K1:K10"),+Order:=xlAscendingWith+Worksheets("Sheet1").Sort++++.SetRange+Range("K1:K10")++++.ApplyEnd+WithEnd+SubKeep+EXCELing@Kunde
  5. vaikeeta+vastata+kun+bannaa+mut+kokoajan...+tein+videon+,+missä+mun+2010++ohjelma++toimii+ihan+OkTsekkaa+ja+kokeile+alla+olevalla+koodilla+ja+jos+herjaa+jotakin,++niin+infoatossa+koodi+Private+Sub+Workbook_BeforePrint(Cancel+As+Boolean)Dim+solu+As+RangeDim+x'ohitetaan+virhetilanteetOn+Error+Resume+Next'peruutetaan+normaalitulostusCancel+=+True'estetään+Excelin+reakointi+tapahtumiin+ja+näytön+päivitysa++poisApplication.EnableEvents+=+FalseApplication.ScreenUpdating+=+False'muuta+ehto+sopivaksi'täsää+käydään+solualue+läpi+solu+kerrallaanFor+Each+solu+In+Range("F4:F100")'tarkistetaan+onko+hinta+solussa++++If+Not+IsEmpty(solu)+Or+IsEmpty(solu.Offset(0,+-1))+Then'++++piilotetaan+rivi,+jos+hinta+solussa++++++++solu.EntireRow.Hidden+=+True++++End+IfNext'kopioidaan+tiedot+alasRange("130:230").Delete'jos+et+halua+1-3++riviä+siirtää+vaihda+hipsun+paikka+allaolevilla+2++rivillä'Range("4:100").SpecialCells(xlCellTypeVisible).Copy+Range("A130")Range("1:100").SpecialCells(xlCellTypeVisible).Copy+Range("A130")'Range("4:100").SpecialCells(xlCellTypeVisible).Copy+Range("A130")'määritellään+tulostusalueActiveSheet.PageSetup.PrintArea+=+"$A$4:$F$100"'näytetään+tulostuksen+esikatseluActiveSheet.PrintPreviewx+=+MsgBox("Tulostetaanko?",+vbYesNo,+"Tulostus")If+x+=+6+Then++++'tulostetaan+sivu++++ActiveWindow.SelectedSheets.PrintOutEnd+If'palautetaan+piilotetut+rivitRows("4:100").EntireRow.Hidden+=+False'palautetaan+Excel+normaalitilaanApplication.EnableEvents+=+TrueApplication.ScreenUpdating+=+TrueEnd+SubKeep+EXCELing@Kunde
  6. Resetointi+makro+on+siltä+varalle,+jos+koodia+askel+askeleelta+suoritat+ja++koko+makroa+ei+ajeta+loppuun+syystä+tai+toisesta+eli++toi+rivi+jää+suorimattamatta,++ei+Excelsitten++reagoitapahtumiin.+Siis+ihan+helpottamaan+elämää+toi+koodi...++;-)tossa+nyt+pyytämäsi+päivityksetPrivate+Sub+Workbook_BeforePrint(Cancel+As+Boolean)Dim+solu+As+Range'ohitetaan+virhetilanteetOn+Error+Resume+Next'estetään+Excelin+reakointi+tapahtumiinApplication.EnableEvents+=+False'muuta+ehto+sopivaksi'täsää+käydään+solualue+läpi+solu+kerrallaanFor+Each+solu+In+Range("F4:F100")'tarkistetaan+onko+hinta+solussa++++If+Not+IsEmpty(solu)+Or+IsEmpty(solu.Offset(0,+-1))+Then'++++piilotetaan+rivi,+jos+hinta+solussa++++++++solu.EntireRow.Hidden+=+True++++End+IfNext'määritellään+tulostusalueActiveSheet.PageSetup.PrintArea+=+"$A$4:$F$100"'tulostetaan+sivuActiveWindow.SelectedSheets.PrintOut'palautetaan+piilotetut+rivitRows("4:100").EntireRow.Hidden+=+False'peruutetaan+normaalitulostusCancel+=+True'palautetaan+Excel+normaalitilaanApplication.EnableEvents+=+TrueEnd+SubKeep++EXCELing@Kunde