Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA/Haku

Teemunen [09.03.2007 03:08:29]

#

Moi!

Olisi tällainen ongelma:
Iso (työvuoro)taulukko, pitäisi saada poimittua tiettynä päivänä (sarakkeissa) työssä olevat henkilöt(riveillä, taulukon alussa).
Tietysti nämä tiedot(useita) pitäisi saada siirrettyä toiseen taulukkoon.

Iso kiitos jo näin etukäteen

T

BadSource [09.03.2007 07:07:59]

#

Onko töissäolot merkitty päivämäärällä, että tällöin töissä, vai merkki (x tai muu) sarakkeessa? Ensimmäisessä pitää tunnistaa päivämäärä, kun jälkimmäisessä erotellaan tyhjiä ja täytettyjä ruutuja.

Edit: kirotusvireitä

Teemunen [10.03.2007 00:43:12]

#

Jäi asia mainitsematta, rivillä 2 päivämäärä muodossa 7.3. menneisyyteen sekä tulevaisuuteen.
Nimet taulukon alussa, vaihtelevasti aakkosjärjestyksessä.
Työaika on muodossa 8.00 - 16.00 solussa esim F25.
Mikäli ei töitä, ei kellonaikaa, mutta pelkkien ei tyhjien hakeminen ei onnistu kun lomalla olevat on merkitty L tai X jne.

Toivottavasti tämä selvensi

T

neau33 [10.03.2007 05:22:19]

#

Heippa Teemunen!

Miksi siirrellä tietoja taulusta toiseen?

oletettaan, että olet laittanut pari nappia sekä tekstiruudun tauluun (vaikkapa: suodata, palauta & pvm) ja, että sarakkeessa 1 on päivämäärät ja sarakkeessa 2 työssäolijat on merkitty x:llä ja olet kirjoitellut tekstiruutuun jonkun päivämäärän niin...

Private Sub suodata_Click()
'Piilotetaan kaikki laskurissa määritellyt rivit, joissa sarake 1 sisältää arvon paitsi ne joissa sarakkeen 1 arvo on sama, kuin tekstiruudun päivämäärä ja joissa sarakeen 2 arvo on yhtäsuuri kuin "x". Jos sarakeen 1 kenttä on tyhjä aliohjelma keskeytyy.
For j& = 1 To 65536 'vaihda ykkösen tilalle sen rivin numero, josta data alkaa
If Sheets("Taul1").Cells(j&, 1) <> pvm.Text Or Sheets("Taul1").Cells(j&, 2).Value <> "x" Then
 Sheets("Taul1").Cells(j&, 1).Select
 Selection.EntireRow.Hidden = True
End If
If IsEmpty(Sheets("Taul1").Cells(j&, 1)) Then Exit Sub
Next j&
End Sub

Private Sub palauta_Click()
'näyteään kaikki rivit
For j& = 1 To 65536
 Sheets("Taul1").Cells(j&, 1).Select
 Selection.EntireRow.Hidden = False
 If IsEmpty(Sheets("Taul1").Cells(j&, 1)) Then Exit Sub
Next j&
End Sub

Määriteltynä päivämääränä poissaolijat saat selville vaihtamalla <> "x" -> = "x" ja pikku kikkailulla voit myös automatisoida tulostusalueen määräytymisen niin etteivät nappulat, tekstiruutu eivätkä turhat otsikot näy tulosteessa.

Teemunen [12.03.2007 02:35:50]

#

Moi!

Kiitos Nea
Tiedot on kahdessa eri tiedostossa.
Täytyy laittaa mietintä myssy päähän, miten päin tehdä.

T

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta