Moi Expertit
Täällä on aikaisemmin ollut jonkun teistä kirjoittama makro " tallenna nimellä".
Onko mahdollista saada se uudelleen tänne ? ylläpito lienee poistanut.
Toivoisin kuitenkin muutosta jos onnistuu.
Tarve kahdelle makrolle
1. tallenna nimellä ja jos onnistuu sellainen joka toimii "template" mallipohjan kanssa ?
2. Jos mahdollista makrolla luoda toiseen asiakirjaan uusi rivi ja ja "templatesta" tuoda nimi millä tallenetaan ja päiväys.
Tavoite: Kun täytän mallipohjasta uutta asiakirjaa, täydentyy samalla toinen asiakirja (hakemisto). Kun teen uutta voin katsoa hakemistosta olenko jo tallentanut samalla nimellä.
XP officessa oli "template wizard" ominaisuus jolla pystyi luomaan database tiedoston, mutta office 2003 sitä ei ilmeisesti ole ? Template wizardilla pystyin suorittamaan yllämainitun toiminnon.
Etukäteen kiitos Teille
Täällä on aikaisemmin ollut jonkun teistä kirjoittama makro " tallenna nimellä".
Onko mahdollista saada se uudelleen tänne ? ylläpito lienee poistanut.
Toivoisin kuitenkin muutosta jos onnistuu.
Tarve kahdelle makrolle
1. tallenna nimellä ja jos onnistuu sellainen joka toimii "template" mallipohjan kanssa ?
2. Jos mahdollista makrolla luoda toiseen asiakirjaan uusi rivi ja ja "templatesta" tuoda nimi millä tallenetaan ja päiväys.
Tavoite: Kun täytän mallipohjasta uutta asiakirjaa, täydentyy samalla toinen asiakirja (hakemisto). Kun teen uutta voin katsoa hakemistosta olenko jo tallentanut samalla nimellä.
XP officessa oli "template wizard" ominaisuus jolla pystyi luomaan database tiedoston, mutta office 2003 sitä ei ilmeisesti ole ? Template wizardilla pystyin suorittamaan yllämainitun toiminnon.
Etukäteen kiitos Teille
Vastaukset 6
Vanhimmat
Joo, muistan että jossain vaiheessa laitoin listalle makron joka tallensi tiedoston soluun syötetyn tekstin nimiseksi. Ohessa makro joka tekee kyseisen toimenpiteen ja toinen makro joka tallentaa uuden tiedoston soluun syötetyn tekstin nimiseksi.
--------------------------
Sub TallennaTiedosto()
Dim Nimi As String
Nimi = Range("A1")
If Nimi = "" Then
MsgBox "Syötä nimi soluun A1"
Else
MsgBox "Tallennetaan tiedosto nimellä " & Nimi
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:="C:\" & Nimi & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End If
End Sub
Sub TallennaToinenTiedosto()
Dim Nimi As String
Nimi = Range("A2")
If Nimi = "" Then
MsgBox "Syötä nimi soluun A2"
Else
MsgBox "Luodaan uusi tiedosto ja tallennetaan tiedosto nimellä " & Nimi
Workbooks.Add
Range("A1").Select
Selection.EntireRow.Insert
MsgBox "Uusi rivi lisätty"
ActiveWorkbook.SaveAs Filename:="C:\" & Nimi & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWorkbook.Save
ActiveWorkbook.Close
End If
End Sub
Kiitos vastauksesta.
Ei vielä vastannut ihan sitä mitä kaipaan, jos mahdollista vielä saada lisäapua ?
"ykkös" makro OK.
"kakkonen" toive on.
- osaa avata "hakemisto" nimisen taulukon
- lisää uuden rivin ( esim 2 riville )
- tallentaa nimellä "hakemisto"
- sulkee "hakemisto" taulukon.
eli aina kun käytän mallipohjaa, ykkösmakro ottaa asiakirjan nimen vaikka solusta a1 (otso) ja lisää päivämäärän ( onnistuu ehkä a1&date )
ja tallentaa oletushakemistoon.
kakkosmakro avaa "hakemisto" asiakirjan ja lisää sinne uuden rivin, johon tulee soluun a2 otso, b2 päiväys.
Sub TallennaTiedosto()
Range("B1").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Range("B1").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Dim Nimi As String
Dim Päiväys As Date
Dim Oletuskansio As String
Nimi = Range("A1")
Päiväys = ActiveCell.Value
Oletuskansio = ActiveWorkbook.Path
If Nimi = "" Then
MsgBox "Syötä nimi soluun A1"
Else
MsgBox "Tallennetaan tiedosto nimellä " & Nimi & " " & Päiväys & ".xls"
Application.DisplayAlerts = False
ChDir Oletuskansio
ActiveWorkbook.SaveAs Filename:=Oletuskansio & "\" & Nimi & " " & Päiväys & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End If
End Sub
Sub TallennaToinenTiedosto()
Dim Nimi As String
Dim Oletuskansio As String
Nimi = Range("A1")
Oletuskansio = ActiveWorkbook.Path
If Nimi = "" Then
MsgBox "Syötä nimi soluun A1"
Else
ChDir Oletuskansio
Workbooks.Open Filename:=Oletuskansio & "\Hakemisto.xls"
Range("A2").Select
Selection.EntireRow.Insert
ActiveCell.FormulaR1C1 = Nimi
Range("B2").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Dim Päiväys As Date
Päiväys = ActiveCell.Value
Range("A2:B2").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
MsgBox "Lisätty rivi 2, solu A2 = " & Nimi & ", solu B2= " & Päiväys
ActiveWorkbook.Save
ActiveWorkbook.Close
Range("A1").Select
End If
End Sub
Moi ja kiitos tähänastisesta, alkaa pelittää, hiukan pientä fiksausta vielä kaipaan.
miten saan ekan makron ottamaan nimen useammasta solusta esim. a1 ja b2 ja c2....päiväyksen olen siirtänyyt d2.
tavoite : otso_pekka_pyörä_ päiväys.
eli kenelle tehty = otso ( a1)
kuka tehnyt = pekka (b2)
mitä tehnyt = pyörä (c2)
koska = päiväys (d2)
ja hakemistoon tulisi sama otso_pekka_pyörä_päiväys
Sub TallennaTiedosto()
Range("D2").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Range("D2").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Dim Nimi As String
Dim Kuka As String
Dim Mitä As String
Dim Päiväys As Date
Dim Oletuskansio As String
Nimi = Range("A1")
Kuka = Range("B2")
Mitä = Range("C2")
Päiväys = ActiveCell.Value
Oletuskansio = ActiveWorkbook.Path
If Nimi = "" Then
MsgBox "Syötä nimi soluun A1"
Else
MsgBox "Tallennetaan tiedosto nimellä " & Nimi & "_" & Kuka & "_" & Mitä & "_" & Päiväys & ".xls"
Application.DisplayAlerts = False
ChDir Oletuskansio
ActiveWorkbook.SaveAs Filename:=Oletuskansio & "\" & Nimi & "_" & Kuka & "_" & Mitä & "_" & Päiväys & ".xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End If
End Sub
Sub TallennaToinenTiedosto()
Range("D2").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Range("D2").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Dim Nimi As String
Dim Kuka As String
Dim Mitä As String
Dim Päiväys As Date
Dim Oletuskansio As String
Nimi = Range("A1")
Kuka = Range("B2")
Mitä = Range("C2")
Päiväys = ActiveCell.Value
Oletuskansio = ActiveWorkbook.Path
If Nimi = "" Then
MsgBox "Syötä nimi soluun A1"
Else
ChDir Oletuskansio
Workbooks.Open Filename:=Oletuskansio & "\Hakemisto.xls"
Range("A2").Select
Selection.EntireRow.Insert
Range("A2").Select
ActiveCell.FormulaR1C1 = Nimi & "_" & Kuka & "_" & Mitä & "_" & Päiväys
Range("A1").Select
Application.CutCopyMode = False
MsgBox "Lisätty rivi 2, solu A2 = " & Nimi & "_" & Kuka & "_" & Mitä & "_" & Päiväys
ActiveWorkbook.Save
ActiveWorkbook.Close
Range("A1").Select
End If
End Sub
Moi
Kiitos Excelitille
makro toimii, hiukan muutin solu osoitteita, mutta nyt pelittää...