kunde
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 sitten
Muokkaa profiilia7 aloitusta · 1377 kommenttia
- hehheh
pystyy piirtämään viivoja ympyroitä suorakaiteita ja muotoja, mutta vaatii luokan ja ei ihan aloittelijalle aukee...
mautta tuolta koodit
http://www.andypope.info/vba/userformdraw.htm
Keep EXCELing
@Kunde - Oletko antanut textboxille arvon?
siis sen ominaisuuksissa Value
Olettaisin, että sulla ei ole arvoa ja sen takia se virhe
Keep EXCELing
@Kunde - 1. CTRL A kylläkin tarkoittaa valitse KAIKKI
ELI TOIMI JUURI NIINKUIN PITÄÄKIN!
2. Ei voi kopioida kun solu ei ole aktiivinen...
Oikea taapa toimia:
klikkaa solu tai solut ja sitten CTRL C tai CTRL X
sitten klikkaat solua mihin haluat kopioida ja CTRL V sitten uusi solu mihin haluat kopioida ja CTRL V jne.
lopioi/ leikkaa toimiinon saat sit pois ESC näppäimellä
Keep EXCELing
@Kunde - lisäämällä orvaa funktioita tarpeellinen määrä...
nyt ei väliä sit omlo iso vai pieni kirjain....
edelleen MATRIISIKAAVA
{=SUM(LEN(A1:L1)-LEN(SUBSTITUTE(UPPER(SUBSTITUTE(UPPER(A1:L1);"E";""));"S";"")))}
Keep EXCELing
@Kunde - {=SUM(LEN(A1:L1)-LEN(SUBSTITUTE(A1:L1;"E";"")))}
MATRIISIKAAVA CTRL SHIFT ENTER
ja laskee vain "E" ei ""e" merkit
Keep EXCELing
@Kunde - yleensä INDEKSI-funktiota käytetään yhdessä VASTINE- funktion kanssa ja ne korvaavat PHAkU- funktion
fiksumpi ratkaisu asiaan mun vastauksissa toi native language tapa....
http://keskustelu.suomi24.fi/node/9733832#comment-48578140
http://keskustelu.suomi24.fi/node/3808267#comment-19970135
http://keskustelu.suomi24.fi/node/3110262#comment-16074210
http://keskustelu.suomi24.fi/node/1230642#comment-5820834
Keep EXCELing
@Kunde - Niin Kunde yleensä vastaa kyssäriin ja nillä kysyjän antamilla vähäisillä tiedoilla yleensä koodi toimii(en minäkään mikään selvänlukija voi olla)...
Väitän edelleen, jos alan tekemään UDF- makroja, ne on taatusti helpompikäyttöisiä kuin apusarakkeet ja muut räpellykset (anteeksi nyt vaan tuo ilmaisu).
"Ei tarvi osata kuin kopioida ja liittää koodi mainittuun paikkaan"
Eihän tuo pidä paikkaansa, täytyyhän sitä nyt ymmärtää mitä on tekemässä, mitä ne koodikäskyt tarkoittaa ja mistä niitä löytää lisää yms. Sinä itse Kunde taatusti ihan rakennat makrosi, et pelkästään kopioi jostain.
niin tarkoitin tolla, nyt vain mun tekemiä kysyjälle palautettuja makroja, jotka tekee just sen mitä kysyjä haluaa ;-)
tyyliin = summapunaisetalueelta(A1;A10), joka kirjoitetaan soluun ja moduulissa sitten mun koodi, joka kopioidaan foorumilta ja liitetään mun ilmoiattamaan paikkaan tyyliin
moduuliin...
ThisWorkbook moduuliin..
mun mielestä paljon helpompaa kuin apusarakkeet yms?
mutta taidan olla EXCEL fossiili...
Mun harrastus on (välillä menee työksikin vaiko päinvastoin?) VBA/CAD/ CAM/CNC ja jos joku vailla cooleja sovellutuksia, niin tietää keneltä kysellä...
Kaikkeen en vastaa täällä vaikka osaankin, mutta kandee vierailla mun kotisivuilla, niin taatusti vastaan ;-)
Keep EXCELing
@Kunde - Parempi hiukan aivojumpata, kuin vaan dokata kaljaa helteessä palmun alla päivät pitkät...
Keep EXCELing
@Kunde - Kunde, vba-makroilla voi tehdä huikeita juttuja, olen niitä nähnyt käytössä ja sinä olet täällä kertonut paljon mahdollisuuksia.
Vba-makrot on siis huikea mahdollisuus
Mutta Excelissä on asioita, jotka saa helposti tehtyä ilman vba:ta
Mielestäni asiat kannattaa tehdä helpoimmalla mahdollisella tavalla, jos se toimii helposti myös tulevaisuuden muuttuneissa tilanteissa.
Sinä Kunde olet niin vahva vba-osaaja, ettet enää hahmota, mitä vba on aloittelijan tai hieman käyttäneen kannalta.
Itse osaan vba:ta vain siihen, että yhdistän nauhoittamalla tehtyjä makroja suuremmiksi kokonaisuuksiksi.
Mainitsit:
"Ei tarvi osata kuin kopioida ja liittää koodi mainittuun paikkaan"
Eihän tuo pidä paikkaansa, täytyyhän sitä nyt ymmärtää mitä on tekemässä, mitä ne koodikäskyt tarkoittaa ja mistä niitä löytää lisää yms. Sinä itse Kunde taatusti ihan rakennat makrosi, et pelkästään kopioi jostain.
Mutta sinä tarkoitit tekstisi kannustukseksi, hyvä niin.
Ja hieno juttu että autat muita. Jos näen jossain viestiketjussa nimmarin Kunde, tiedän että siellä apu on saatu. - Itse olen v.1995 alkaen Exceliä käyttänyt ja koodannut v.1997 alkaen. En voi sanoa, etteikö olisi ollut joskus ongelmia jonkun suhteen, mutta koodilla ne on hoidettu ykeensä pois päiväjärjestyksestä.
Monikielisyys tuo omia ongelmia käyttöön. Muutamia asioita ei pysty tekemään koodillakaan, mitä tartteisin, mutta eihän EXCEL olekaan mikään CAD- piirto-hojelma...
Mitä tulee VBA:n käyttöön, nin ei siinä tartte osata kuin kopioida ja liittää koodi mainittuuun paikkaan. Ulkoisesti sitten kaavamakron käyttö ei eroa tavallisesta kaavasta.
Miksiköhän se on niin vaikeaa?
Keep EXCELing
@Kunde - niin pitäisi, mutta kysymyksistä päätellen eri foorumeilla näin ei tapahdu siltikään...
VBA:lla onnistuu vaikka olisi noita ylläolevia rajoituksiakin ihan helposti. Juuri eilen tein uusimmassa projektissani lajittelua alueelle, missä oli jaettuja soluja( asiakkaan pyynnöstä-en olisi itse noin tehnyt) ja ei probleemeja.. , mutta kuka huijasi ja ketä. ;-)
hyvä ohje Excelin oletustusten varmistamiks (sisältää otsikkorivin) ja sitten toimii myös toi advanced filter ehtoalueineen mitä todennäköisemmin...
mutta otsikkorivillä ei saa olla tyhjiä soluja kuitenkaan!
Keep EXCELing
@Kunde - ensiksi oletuksena sen saa päältä pois vaan VBA koodilla johonkin tapahtumaan liitettynä.
Sitten siihen logiikkaan
Jos valitset solun sarakkeesta ja valitset lajittele laskevasti tai nousevasti niin Excel olettaa, että haluat lajitella valitun solun sarakkeen. Jos haluat lajitella useampia sarakkeita niin silloin pitää käyttää lajittele lomaketta..
Oletuksena siinä on, että sinulla on alue joka ympärillä on ainakin yksi tyhjä solu suunttaansa. Excel valitsee sen alueen tai voit itsekin valita sen alueen vastaavalla näppäinyhdistelmällä CTRL SHIFT välilyönti
Seuraavaksi Excel tutkii ekan rivin, onko siinä otsikkotietoa vaiko ei?
Onko ekarivi muotoiltu erilailla esim. lihavointi. Toisaalta taas jos ekalla rivillä on tyhjiä soluja Excel ei tunnista sitä otsikkoriviksi.
Jos tallennat työkirjan ilman ruksia ja avaat sen, niin ei kai se ruksi ole oletuksena silloin, ei pitäisi olla.
Ongelmahan on siinä, että Excel yrittää olla fiksumpi kuin käyttäjänsä...
Omakohtaiset kokemukset vähäisiä ongelmasta, koska kaikki yleensä koodilla...
Keep EXCELing
@Kunde - Apusarakkeita ym. käytetään, kun ei heti keksitä muuta. Toiseksi, tuo ratkaisu toimii Excelin lisäksi myös muilla alustoilla.
Mitas sitten kun keksitaan muuta 1min? Onko noin kiire?
Jos tuhansia riveja ja sarakkeita ja niilla kaavoja alkaa Excel hyytya ja kahvilla kerkii kaymaan...
VBA ja se on siina. Kohtuullinen ero.
Mutta valintahan on vapaa apusarakkeet ja kahville valilla - vaiko muutama sekunti ja VBA ja tiedostokoko pieni
MAI PEN RAI UP TO YOU
Keep EXCELing
@Kunde - kumma kun aina pitää olla apurivejä tai apusarakkeita...
kyllä EXCEL taipuu kaavoihin ilman niitäkin... ;-)
piilota sarake/rivi
tee apusarake jne..
tai sit VBA, joka tekee ihan saman, kuin sisäänrakennetut EXCELin omat funktiotkin?
Miksi pitäs vierastaa VBA?
Jos kirjoitat soluun SUMMA(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx) tai esim. mun tekemän funtion SUMMAX (xxxxxxx) niin , mikä tekee siitä niin vaikeen?...
Mun funktionhan voi tallentaa templateksi, jolloin se aina käytössä ?...
mutta vastausta odotellen yhä...
Keep EXCEling
@Kunde - ei oo mäkkiä, mutta eiklhän siinä oo kuiteskin samat kaavat...
laskee nyt solujen A1:A100 kirjaimet poislukien SP ja L kirjainyhdistelmät. Voit lisätä laskuissa vähennettäviä kirjainyhdistelmiä lisäämällä korvausfunktion ja korvattavat merkit aina kirjainyhdistelmälle
MATRIISIKAAVA !
{=SUM(LEN(SUBSTITUTE(SUBSTITUTE(A1:A100;"SL";"");"P";"")))} - kumpikin vastaus toimii ekaan tyhjään soluun,. mutta jos välissä onkin tyhjä solu tai useampi ei kumpikaan palauta oikeaa soluja ja jälkimmäinen palauttaa arvon eikä solun osoitetta kuten kysyjä pyyteli....
Odotellaan korjauksia ;-) - 1 makro ja siihen vuosien tilalle se comboboxin arvo...
;-) - piece of cake VBA:lla
et kertonut tuleeko tulos yhteen soluun vaiko esim. koko sarakkeeseen tai riviin
no molemmat versiot nyt tossa
yksittäisessä soluversiossa
tieto esim A1 ja tulos B1
solussa B1 laita solumuotoiluksi oma: Luku, desimaalit 0
ja kaava =Luvuksi(A1)
solualue suoria alla oleva makro LuvuksiAlie
moduuliin...
Function Luvuksi(Solu As Range) As Double
Dim sobj As Object
Set sobj = CreateObject("vbscript.regexp")
sobj.Global = True
sobj.Pattern = "[^0-9]"
'vaihda allaolevaan riviin korvattava numero nyt siis 0
Luvuksi = sobj.Replace(Solu, 0)
End Function
Sub LuvuksiALue()
Dim sobj As Object
Dim solu As Range
Set sobj = CreateObject("vbscript.regexp")
sobj.Global = True
sobj.Pattern = "[^-0-9]"
'muuta solualue sopivaksi nyt A-sarake
For Each solu In Range("A1", Range("A65536").End(xlUp))
solu = sobj.Replace(solu, 0)
solu.NumberFormat = "0"
Next solu
End Sub - Sub PoistaTyhjätKaavatKanssa()
Dim TyhjätKaavat As Range
Dim solu As Range
Range("H:H").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Range("H:H").SpecialCells(xlCellTypeFormulas).Select
For Each solu In Selection
If Len(solu) = 0 Then
If TyhjätKaavat Is Nothing Then
Set TyhjätKaavat = solu
Else
Set TyhjätKaavat = Union(TyhjätKaavat, solu)
End If
End If
Next
TyhjätKaavat.EntireRow.Delete
End Sub
Keep EXCELing
@Kunde - hakasulkujen väliin 2 mm kirjainta siis...