Alla oleva makro on nauhoitettu avaamaan csv- muodossa talletettu testi.csv tiedosto, ja piirtämään testi.csv tiedoston tietojen perusteella "käppyrä" Testitulos.xls nimiseen Excel:n tiedostoon. Miten makroa muutetaan, että se kysyy mistä csv-tiedostosta haetaan tiedot "käppyrän" piirtämiseksi, jos omat tiedostot kansiossa olisi lisäksi vaikka testi1.csv, testi2.csv jne. ???
Workbooks.Open Filename:= _
"C:\Documents and Settings\Omat tiedostot\testi.csv"
Range("A1:B10").Select
Selection.Copy
ActiveSheet.ChartObjects("Kaavio 4").Activate
Windows("Testitulos.xls").Activate
Windows("Testitulos.xls").ActivateRange("A1").Select
ActiveSheet.Paste
End Sub
Workbooks.Open Filename:= _
"C:\Documents and Settings\Omat tiedostot\testi.csv"
Range("A1:B10").Select
Selection.Copy
ActiveSheet.ChartObjects("Kaavio 4").Activate
Windows("Testitulos.xls").Activate
Windows("Testitulos.xls").ActivateRange("A1").Select
ActiveSheet.Paste
End Sub
Vastaukset 1
Vanhimmat
olisi muuttaa makroa sen verran että se hakee tietyssä solussa olevan tiedostonimen.
Esimerkissä tiedoston nimi on solussa C1:
----------------------------
Dim Tiedostonimi as String
Tiedostonimi = Range("C1")
MsgBox "Haettava tiedosto: " & Tiedostonimi
Workbooks.Open Filename:= _
"C:\Documents and Settings\Omat tiedostot\" & Tiedostonimi & ".csv"
Range("A1:B10").Select
Selection.Copy
ActiveSheet.ChartObjects("Kaavio 4").Activate
Windows("Testitulos.xls").Activate
Windows("Testitulos.xls").ActivateRange("A1").Select
ActiveSheet.Paste
End Sub
----------------------------
Jos haluaa tehdä listan kansiossa olevista tiedostoista, se onnistuu mm. seuraavalla makrolla:
----------------------------
Sub Tiedostolista()
T = Dir("C:Documents and Settings\Omat tiedostot\*.csv")
If Len(T) = 0 Then
MsgBox "Tiedostoja ei löytynyt."
Exit Sub
End If
Do While Len(T) > 0
ActiveCell.Formula = T
ActiveCell.Offset(1, 0).Select
T = Dir()
Loop
End Sub
----------------------------