Cześć, dopiero zaczynam swoją przygodę z VBA :) Próbuję stworzyć kod, który pozwoli na:
- Otwarcie przeglądarki na konkretnym folderze i wybór pliku Excel z konkretnego katalogu
- Następnie skopiowanie danych z owego pliku
Za każdym razem użytkownik miałby możliwość wyboru innego pliku Excel, w zależności od potrzeby. Wszystkie pliki mają jednak identyczną strukturę, stąd dana formuła pozostałaby bez zmian, zmianie uległaby jedynie nazwa pliku. Mam jednak pytanie, jak go zdefiniować w kodzie, aby potem móc wprowadzać w nim zmiany?
Poniżej proponowany kod:
Sub PobierzDane()
Dim str_folder As String
str_folder = "C:\Users\LEN\Desktop\tech" ' folder to open
Call Shell("explorer.exe " & str_folder, vbNormalFocus)
ActiveWorkbook = ActiveWorkbook.AW
Windows("AW").Activate
Range("G4").Select
Selection.Copy
Windows("Zlecenie produkcyjne_makra.xlsm").Activate
Range("H5:H6").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Windows("ActiveWorkbook").Activate
Selection.Copy
Windows("Zlecenie produkcyjne_makra.xlsm").Activate
ActiveSheet.Paste
Windows("ActiveWorkbook").Activate
Windows("Zlecenie produkcyjne_makra.xlsm").Activate
Range("A7:B9").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("H5:H6").Select
Selection.Copy
Range("A7:B9").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("A7:B9").Select
ActiveCell.FormulaR1C1 = ""
Range("H5:H6").Select
Selection.Copy
Range("A7:B9").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("H5:H6").Select
Selection.Copy
Range("A7:B9").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("A5:B6").Select
ActiveCell.FormulaR1C1 = ""
Range("A7:B9").Select
ActiveCell.FormulaR1C1 = ""
Range("H5:H6").Select
ActiveCell.FormulaR1C1 = "*03007"
Range("A7:B9").Select
ActiveCell.FormulaR1C1 = "*03007"
Windows("ActiveWorkbook").Activate
Range("E3").Select
Selection.Copy
Windows("Zlecenie produkcyjne_makra.xlsm").Activate
Range("A5:B6").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Windows("ActiveWorkbook").Activate
Selection.Copy
Windows("Zlecenie produkcyjne_makra.xlsm").Activate
Range("A5:B6").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Windows("ActiveWorkbook").Activate
Selection.Copy
Windows("Zlecenie produkcyjne_makra.xlsm").Activate
Range("A5:B6").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("A5:B6").Select
Windows("ActiveWorkbook").Activate
Selection.Copy
Windows("Zlecenie produkcyjne_makra.xlsm").Activate
ActiveSheet.Paste
Windows("ActiveWorkbook").Activate
Range("C2").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Zlecenie produkcyjne_makra.xlsm").Activate
Range("I5:I6").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Windows("ActiveWorkbook").Activate
ActiveCell.FormulaR1C1 = "1/11/1996"
Windows("Zlecenie produkcyjne_makra.xlsm").Activate
Range("I5:I6").Select
ActiveCell.FormulaR1C1 = "1/11/1996"
Windows("ActiveWorkbook").Activate
Range("B10:B49").Select
Selection.Copy
Windows("Zlecenie produkcyjne_makra.xlsm").Activate
ActiveWindow.SmallScroll Down:=9
Range("A32:F32").Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Windows("ActiveWorkbook").Activate
ActiveWindow.SmallScroll Down:=-42
Range("D10:E49").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Zlecenie produkcyjne_makra.xlsm").Activate
Range("G32").Select
Windows("ActiveWorkbook").Activate
Application.CutCopyMode = False
Selection.Copy
Windows("Zlecenie produkcyjne_makra.xlsm").Activate
Range("G32:H53").Select
Windows("ActiveWorkbook").Activate
ActiveWindow.SmallScroll Down:=-27
Range("D10:E35").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Zlecenie produkcyjne_makra.xlsm").Activate
ActiveSheet.Paste Link:=True
Range("P37").Select
End Sub