Tallenna+juokseva numero

AnnaKaisa

Haluaisin Excelin tallentavan avatun työkirjan automaattisesti ja nimeävän sen määrätyn solun ja juoksevan numeron mukaan. (esim työkirja 1, työkirja 2 jne.)

Kiitos.

7

5578

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • remec

      Tossa vaikka tommonen viritys, saat sen toimiin ku teet "taul2" laskentataulukkoon juoksevan numeroinnin , eli a1 = 1 a2 = 2 ..... a10000 =10000. nythän se käy hakemassa nimen tiedostolle laskentataulukon "taul1" a1 solusta
      ja juoksevan numeron "taul2" taulukon a1- a65000 soluista, ts. sieltä asti kun olet juoksevaa numerointia sinne määritellyt.

      Sub Makro2()


      Sheets("Taul2").Select
      Rows("1:1").Select
      Selection.Delete Shift:=xlUp
      tieto = Range("a1")
      Sheets("Taul1").Select
      ActiveWorkbook.SaveAs Filename:= _
      "C:\" & Range("a1") & tieto & ".xls", FileFormat:= _
      xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
      , CreateBackup:=False
      End Sub

      aika purkka viritys eikö =)

      • noviisi

        Tervehdys!

        Miten tuon virityksen saisi toimimaan lisäksi niin, että kyseinen juokseva numero siirtyy myös tiettyyn soluun. Esim. Taul1:n A1?


      • Kunde
        noviisi kirjoitti:

        Tervehdys!

        Miten tuon virityksen saisi toimimaan lisäksi niin, että kyseinen juokseva numero siirtyy myös tiettyyn soluun. Esim. Taul1:n A1?

        vähän fiksummin...

        Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        Dim Numero As String
        On Error GoTo virhe
        Application.EnableEvents = False
        Cancel = True
        Numero = HaeNumero(Range("A1"))
        ActiveWorkbook.SaveAs Filename:="C:\" & Range("a1") & ".xls"
        Range("A1") = "työkirja " & (Numero 1)
        poistu:
        Application.EnableEvents = True
        Exit Sub
        virhe:
        Resume poistu
        End Sub

        Function HaeNumero(Teksti As String)
        Dim i As Integer
        Dim sana As String
        i = 1
        Do Until sana Like (" *")
        sana = Right(Teksti, i)
        i = i 1
        Loop
        HaeNumero = Trim(sana)
        End Function


      • noviisi
        Kunde kirjoitti:

        vähän fiksummin...

        Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        Dim Numero As String
        On Error GoTo virhe
        Application.EnableEvents = False
        Cancel = True
        Numero = HaeNumero(Range("A1"))
        ActiveWorkbook.SaveAs Filename:="C:\" & Range("a1") & ".xls"
        Range("A1") = "työkirja " & (Numero 1)
        poistu:
        Application.EnableEvents = True
        Exit Sub
        virhe:
        Resume poistu
        End Sub

        Function HaeNumero(Teksti As String)
        Dim i As Integer
        Dim sana As String
        i = 1
        Do Until sana Like (" *")
        sana = Right(Teksti, i)
        i = i 1
        Loop
        HaeNumero = Trim(sana)
        End Function

        Voisinko vielä sen verran vaivata, että en osannut ottaa tuota Kunden systeemiä käyttöön...
        Makroilla sain edellisen ohjeen mukaan tehtyä, mutta tätä en saanut toimimaan.
        Eli minne tuo teksti pitää kopioida ja pitäisikö se pystyä liittämään toimintopainikkeeseen?

        Olen tehnyt siis laskupohjan, jossa solussa B4 on laskunumero. Tuo laskunumero pitäisi saada siis juoksevaksi ja automaattisesti vaihtuvaksi (tallennettaessa). Tallennus ja tulostus tapahtuu makroon liitetyllä painikkeella.


      • Kunde
        noviisi kirjoitti:

        Voisinko vielä sen verran vaivata, että en osannut ottaa tuota Kunden systeemiä käyttöön...
        Makroilla sain edellisen ohjeen mukaan tehtyä, mutta tätä en saanut toimimaan.
        Eli minne tuo teksti pitää kopioida ja pitäisikö se pystyä liittämään toimintopainikkeeseen?

        Olen tehnyt siis laskupohjan, jossa solussa B4 on laskunumero. Tuo laskunumero pitäisi saada siis juoksevaksi ja automaattisesti vaihtuvaksi (tallennettaessa). Tallennus ja tulostus tapahtuu makroon liitetyllä painikkeella.

        itselle aina niin itsestäänselvyys noi moduulit, että unohtuu mainita. Joten kopioi koodi ThisWorkook moduuliin. Et tarvitse mitään erillistä makronappulaa. Toimii ihan normaaleilla tallennusjutuilla. Nyt siis hakee A1 solusta nimen esim. työkirja 1 (pitää olla väli) ja tallentaa ja muuttaa A1 arvoksi työkirja 2 jne...
        muuta A1--->> B4 niin toimii.
        Jos haluat vain pelkästään numerolla tallentaa B4 mukaan niin

        Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        On Error GoTo virhe
        Application.EnableEvents = False
        Cancel = True
        ActiveWorkbook.SaveAs Filename:="C:\" & Range("B4")& ".xls"
        Range("B4") = Range("B4") 1
        poistu:
        Application.EnableEvents = True
        Exit Sub
        virhe:
        Resume poistu
        End Sub


      • noviisi
        Kunde kirjoitti:

        itselle aina niin itsestäänselvyys noi moduulit, että unohtuu mainita. Joten kopioi koodi ThisWorkook moduuliin. Et tarvitse mitään erillistä makronappulaa. Toimii ihan normaaleilla tallennusjutuilla. Nyt siis hakee A1 solusta nimen esim. työkirja 1 (pitää olla väli) ja tallentaa ja muuttaa A1 arvoksi työkirja 2 jne...
        muuta A1--->> B4 niin toimii.
        Jos haluat vain pelkästään numerolla tallentaa B4 mukaan niin

        Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        On Error GoTo virhe
        Application.EnableEvents = False
        Cancel = True
        ActiveWorkbook.SaveAs Filename:="C:\" & Range("B4")& ".xls"
        Range("B4") = Range("B4") 1
        poistu:
        Application.EnableEvents = True
        Exit Sub
        virhe:
        Resume poistu
        End Sub

        Upeeta hei!
        On se hienoa, että täältä löytyy asian osaavia ja aina vielä valmiina auttamaan. Suuret kiitokset sinulle Kunde, nyt se toimii. :-)


      • Bakayaro
        Kunde kirjoitti:

        itselle aina niin itsestäänselvyys noi moduulit, että unohtuu mainita. Joten kopioi koodi ThisWorkook moduuliin. Et tarvitse mitään erillistä makronappulaa. Toimii ihan normaaleilla tallennusjutuilla. Nyt siis hakee A1 solusta nimen esim. työkirja 1 (pitää olla väli) ja tallentaa ja muuttaa A1 arvoksi työkirja 2 jne...
        muuta A1--->> B4 niin toimii.
        Jos haluat vain pelkästään numerolla tallentaa B4 mukaan niin

        Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        On Error GoTo virhe
        Application.EnableEvents = False
        Cancel = True
        ActiveWorkbook.SaveAs Filename:="C:\" & Range("B4")& ".xls"
        Range("B4") = Range("B4") 1
        poistu:
        Application.EnableEvents = True
        Exit Sub
        virhe:
        Resume poistu
        End Sub

        Eli itsellä olisi semmonen ongelma, että tarvis saada pohja, joka muistaa ohjelman sammutamisen jälkeen, mikä oli viimesen tiedoston numero.
        Toisin sanoen pohja olisi taas "tyhjä", mutta työkirjan numero olisi se mihin jäätiin.

        Tällä VBE ohjeella sain omanikin toimiin muuten, mutta se ei muista sitä viimesintä tiedoston numeroa, joten tästä ei silleen ole apua näin.

        Mutta suuri kiitos, jos joku VBE tms. taitoinen pyöräyttäisi semmosen pätkän scriptiä vielä, joka saisi tuon "muistamisen" aikaan.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mieleni harhailee sinussa

      Uskon että tykkäät minusta. On vain yksi elämä. Silti jään paikoilleni ja odotan että jokin muuttuu. Menin palasiksi, ei
      Tunteet
      13
      2596
    2. Jännitän sinua J mies

      Ei tästä tulee mitään. Tuskin kaikki olis mennyt näin moneen solmuun, jos olis tarkoitettu meidät yhteen.
      Ikävä
      122
      1267
    3. Toivotko, että

      hän tulisi juttelemaan sinulle, vai lähestytkö mieluummin itse?
      Ikävä
      89
      1195
    4. Orpo suunnittelee palestiinalaislasten Suomeen siirtoa

      "Sairaalahoitoa tarvitsevien lasten ottaminen Suomeen on lisäksi selvityksessä, Orpo sanoo. – Jos meillä on mahdolli
      Maailman menoa
      245
      1024
    5. Kuinka kauan kesti että ihastuit

      Kaivattuusi? Jos lasketaan siitä hetkestä alkaen kun näit hänet ensi kerran. Oliko jokin tilanne tai tapahtuma, joka voi
      Ikävä
      51
      1013
    6. Olen käyttäytynyt sinua kohtaan väärin toistuvasti

      Puolustuksekseni täytyy sanoa, että ei ole ollut tahallista vaan seurausta harhaisista luuloista ja ajatuksista. Esimerk
      Ikävä
      63
      924
    7. Tunneälyä testaamaan!

      Testi pitää sisällään viisi osa-aluetta. Itse sain täydet tuosta ensimmäisestä eli 25/25. Kokonaispistemäärä oli 100/125
      Lesbot
      3
      826
    8. Vaikutat tosi mielenkiintoiselta ja

      paksulta. 😂 m - n
      Ikävä
      84
      796
    9. Taposta murhaksi

      Mitä tästä tapauksesta tiedetään?
      Kajaani
      41
      722
    10. solmussa solmussa

      Tilanne solmussa. Umpisommussa🫢
      Ikävä
      35
      719
    Aihe