Hej, tak, można dokleić wartość tej komórki poprzez &. Tylko warto to wrzucić jeszcze w funkcję Format (działa analogicznie do excelowej funkcji Tekst). Np. ... & Format(Range("A1"), "yyyymmdd")
@@MalinaC Dzień Dobry! Dziękuję za przesłaną informację, ja zrobiłem w ten sposób: NowaNazwa = ThisWorkbook.Sheets("Kosztorys").Range("Data").Value & ", " & ThisWorkbook.Sheets("Kosztorys").Range("Adres").Value & ".xlsm" Po uruchomieniu tego makra zapisuje się arkusz z data pobraną z danej komórki i aktualna nazwą z innej komórki. Mam jednak pytanie: Czy jest sposób, aby uruchamiając np. makro skopiować bieżący arkusz do innego otwartego pliku (jako kolejna zakładka) z nazwą pobraną z komórki? Nie wiem czy jasno napisałem o co mi chodzi :) Pozdrawiam Jacek K
To chyba na moje zapytanie z 2018 powstało to nagranie^^ To rozwiązanie jest jeszcze lepsze niż zapisywanie poprzez przycisk:) Usiłuje zrobić Kill warunkowe. Działa częściowo otóż kasuje mi albo każdy poprzedni plik, albo wcale. Mam plik matka o nazwie -Wycena Gotowych - z niego powstają kolejne pliki w których jest asortyment i dane klienta (nie chce by został usuwany po zamknięciu. Ten plik znajduje się w folderze "Zwykłe") -potem kolejna wersja dostaje nową nazwę i zostaje wysłana do jednego z 4 folderów: Wycena; Produkcja; Zakończone; Rozliczenie i z tych pierwszych trzech folderów chce by pliki były kasowane. Najczęściej plik trafia z folderu "Zwykłe" do folderu "Produkcja" potem do "Zakończ" na końcu do "Rozliczenie" Czy jest możliwe by Kill było warunkowe? U mnie problem polega na tym, że plik jak wędruje do konkretnego folderu to tam otrzymuje nową nazwę. I gdy ma postawiony warunek by nie kasował pliku o nazwie "Wycena Gotowych - 2.xlsm" to nie kasuje w ogóle . A gdy tego warunku nie ma to działa ładnie lecz usuwa mi ten plik "matka"
Chodzi mi po głowie takie rozwiązanie by kill robiło pętlę za każdym razem po zamknięciu pliku i nie wywalało błędu jak nie trafi na plik do usunięcia. Coś na zasadzie Jeżeli.Błąd. Możliwe jest coś takiego do zrobienia?
Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim StaraSciezka As String, NowaSciezka As String, Sciezka As String, Nazwa As String, _ StaraNazwa As String, PierwotnaNazwa As String StaraSciezka = ThisWorkbook.Path NowaSciezka = ActiveSheet.Range("D16").Value Sciezka = ActiveSheet.Range("D16").Value & "\" Nazwa = ActiveSheet.Range("D22").Value & ".xlsm" PierwotnaNazwa = "Wycena Gotowych - 2.xlsm" StaraNazwa = ThisWorkbook.Name If NowaSciezka = StaraSciezka Then Exit Sub ThisWorkbook.SaveAs Sciezka & Nazwa If ThisWorkbook.Name "Wycena Gotowych - 2.xlsm" Then Kill StaraSciezka & "\" & StaraNazwa End Sub
Yes udało się!!! 5 dni i wieczorów i działa:). Mogłem 4 dni temu napisać to by szybciej mnie olśniło hehe. Nie wiedziałem, że po Else można podać parę linijek czynności (taki głupi błąd^^). Dzięki za materiały włącz reklamy to będę je oglądał chociaż w taki sposób zapłacę ;p If ThisWorkbook.Name = "Wycena Gotowych - 2.xlsm" Then ThisWorkbook.SaveAs Sciezka & Nazwa Else ThisWorkbook.SaveAs Sciezka & Nazwa Kill StaraSciezka & "\" & StaraNazwa End If
@@kamilgrzeszczyk1315 super, że sobie poradziłeś! Ja dopiero odczytałam. Czyli patrez: czeski błąd, ech... jaka czytałam to się zaczęłam dziwić: jak to if nie działa?! Nigdy bym na to nie wpadła na odległość :)
Dzięki, czegoś podobnego szukałem, ale to już sobie przerobię ;) EDIT: Jednak nie umiem ;/ co należy zmienić aby plik zapisywał się ale nie zamykał pliku? EDIT2: pokombinowałem i jest
Witaj Droga Malinko! Super tłumaczysz i pięknie prezentujesz . :-) Czy zechciałabyś mi podpowiedzieć jak zastosować nazwę arkusza w nazwie pliku. w kodzie VBA. Słodko Cię pozdrawiam.
@@MalinaC Malinko :-) dziękuję, że zainteresowałaś się moim zagadnieniem - tak sobie z nim poradziłem, oglądając kolejny raz Twój webinarium: Sub SentDyzur() ' ' SentDyzur Makro ' ' Dim Sciezka As String, Okres As String Dim OutMail As Object Dim arkusz As String
Sciezka = ThisWorkbook.Path & "\" arkusz = ThisWorkbook.ActiveSheet.Name If Okres = "" Then Okres = "okres" Range("N24").Select ActiveCell.FormulaR1C1 = "=SUM(R[-22]C:R[-1]C)"
Dziękuję, bardzo ułatwi mi pracę na plikach. Czy jest możliwość dopisania daty z innej komórki podczas zapisywania pliku?
Hej, tak, można dokleić wartość tej komórki poprzez &. Tylko warto to wrzucić jeszcze w funkcję Format (działa analogicznie do excelowej funkcji Tekst). Np. ... & Format(Range("A1"), "yyyymmdd")
@@MalinaC
Dzień Dobry!
Dziękuję za przesłaną informację, ja zrobiłem w ten sposób:
NowaNazwa = ThisWorkbook.Sheets("Kosztorys").Range("Data").Value & ", " & ThisWorkbook.Sheets("Kosztorys").Range("Adres").Value & ".xlsm"
Po uruchomieniu tego makra zapisuje się arkusz z data pobraną z danej komórki i aktualna nazwą z innej komórki.
Mam jednak pytanie:
Czy jest sposób, aby uruchamiając np. makro skopiować bieżący arkusz do innego otwartego pliku (jako kolejna zakładka) z nazwą pobraną z komórki?
Nie wiem czy jasno napisałem o co mi chodzi :)
Pozdrawiam
Jacek K
Super przykład do wykorzystania w codziennej pracy na arkuszach.
Cudownie! Cieszę się, że się przyda :)
To chyba na moje zapytanie z 2018 powstało to nagranie^^
To rozwiązanie jest jeszcze lepsze niż zapisywanie poprzez przycisk:)
Usiłuje zrobić Kill warunkowe. Działa częściowo otóż kasuje mi albo każdy poprzedni plik, albo wcale. Mam plik matka o nazwie
-Wycena Gotowych - z niego powstają kolejne pliki w których jest asortyment i dane klienta (nie chce by został usuwany po zamknięciu. Ten plik znajduje się w folderze "Zwykłe")
-potem kolejna wersja dostaje nową nazwę i zostaje wysłana do jednego z 4 folderów: Wycena; Produkcja; Zakończone; Rozliczenie i z tych pierwszych trzech folderów chce by pliki były kasowane. Najczęściej plik trafia z folderu "Zwykłe" do folderu "Produkcja" potem do "Zakończ" na końcu do "Rozliczenie"
Czy jest możliwe by Kill było warunkowe?
U mnie problem polega na tym, że plik jak wędruje do konkretnego folderu to tam otrzymuje nową nazwę. I gdy ma postawiony warunek by nie kasował pliku o nazwie "Wycena Gotowych - 2.xlsm" to nie kasuje w ogóle . A gdy tego warunku nie ma to działa ładnie lecz usuwa mi ten plik "matka"
Chodzi mi po głowie takie rozwiązanie by kill robiło pętlę za każdym razem po zamknięciu pliku i nie wywalało błędu jak nie trafi na plik do usunięcia.
Coś na zasadzie Jeżeli.Błąd. Możliwe jest coś takiego do zrobienia?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim StaraSciezka As String, NowaSciezka As String, Sciezka As String, Nazwa As String, _
StaraNazwa As String, PierwotnaNazwa As String
StaraSciezka = ThisWorkbook.Path
NowaSciezka = ActiveSheet.Range("D16").Value
Sciezka = ActiveSheet.Range("D16").Value & "\"
Nazwa = ActiveSheet.Range("D22").Value & ".xlsm"
PierwotnaNazwa = "Wycena Gotowych - 2.xlsm"
StaraNazwa = ThisWorkbook.Name
If NowaSciezka = StaraSciezka Then Exit Sub
ThisWorkbook.SaveAs Sciezka & Nazwa
If ThisWorkbook.Name "Wycena Gotowych - 2.xlsm" Then Kill StaraSciezka & "\" & StaraNazwa
End Sub
Yes udało się!!! 5 dni i wieczorów i działa:). Mogłem 4 dni temu napisać to by szybciej mnie olśniło hehe.
Nie wiedziałem, że po Else można podać parę linijek czynności (taki głupi błąd^^). Dzięki za materiały włącz reklamy to będę je oglądał chociaż w taki sposób zapłacę ;p
If ThisWorkbook.Name = "Wycena Gotowych - 2.xlsm" Then
ThisWorkbook.SaveAs Sciezka & Nazwa
Else
ThisWorkbook.SaveAs Sciezka & Nazwa
Kill StaraSciezka & "\" & StaraNazwa
End If
@@kamilgrzeszczyk1315 super, że sobie poradziłeś! Ja dopiero odczytałam. Czyli patrez: czeski błąd, ech... jaka czytałam to się zaczęłam dziwić: jak to if nie działa?! Nigdy bym na to nie wpadła na odległość :)
Thanks, Teammate!!!!
And thank You for continuous support :)
Dzięki, czegoś podobnego szukałem, ale to już sobie przerobię ;)
EDIT: Jednak nie umiem ;/ co należy zmienić aby plik zapisywał się ale nie zamykał pliku?
EDIT2: pokombinowałem i jest
Cieszę się, super, że sobie poradziłeś!
Witaj Droga Malinko! Super tłumaczysz i pięknie prezentujesz . :-) Czy zechciałabyś mi podpowiedzieć jak zastosować nazwę arkusza w nazwie pliku. w kodzie VBA. Słodko Cię pozdrawiam.
Stasiu, dziękuję :).
A powiedz czy chodzi o to, by zapisać plik pod nazwą, która ma w sobie nazwę konkretnego arkusza?
@@MalinaC Malinko :-) dziękuję, że zainteresowałaś się moim zagadnieniem - tak sobie z nim poradziłem, oglądając kolejny raz Twój webinarium:
Sub SentDyzur()
'
' SentDyzur Makro
'
'
Dim Sciezka As String, Okres As String
Dim OutMail As Object
Dim arkusz As String
Sciezka = ThisWorkbook.Path & "\"
arkusz = ThisWorkbook.ActiveSheet.Name
If Okres = "" Then Okres = "okres"
Range("N24").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-22]C:R[-1]C)"
Columns("D:K").Select
Range("K1").Activate
Selection.EntireColumn.Hidden = True
ActiveWindow.SmallScroll Down:=-12
Range("A1:N25").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Columns("C:L").Select
Selection.EntireColumn.Hidden = False
Range("R1").Select
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Columns("F:F").EntireColumn.AutoFit
Columns("E:E").EntireColumn.AutoFit
Columns("D:D").EntireColumn.AutoFit
Columns("C:C").EntireColumn.AutoFit
Columns("B:B").ColumnWidth = 8.57
Columns("B:B").EntireColumn.AutoFit
Columns("A:A").EntireColumn.AutoFit
Range("F2:F33").Select
Selection.NumberFormat = _
"_-* #,##0.00 [$zł-pl-PL]_-;-* #,##0.00 [$zł-pl-PL]_-;_-* ""-""?? [$zł-pl-PL]_-;_-@_-"
Application.CutCopyMode = False
ChDir "C:\Users\stako\OneDrive\Dokumenty"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\stako\OneDrive\Dokumenty\Dyżury\Wysłane\" & "Dyżur" & " " & arkusz & " " & "2021" & ".xlsx" _
Application.Dialogs(xlDialogSendMail).Show
ActiveWorkbook.Close
End Sub
pewnie nie jest to mistrzowski zapis procedury, ale spełnia moje oczekiwanie. :-)
Bardzo serdecznie Cię pozdrawiam :-)
Super film
Super, bardzo się cieszę!
Świetnie działa, fajne rozwiązanie :)
Piotrek, bardzo się cieszę, że działa i że się przyda! :)
@@MalinaC Jako pod procedura ale bardzo użyteczna :)
@@piotrjankiewicz1335 Oho, to tym lepiej, bo do wielokrotnego użycia ;)
Super przydatne
Bardzo się cieszę 🥰👍
Super! Wielkie dzięki! :-)
Cieszę się :)
Dzięki.
:) Proszę bardzo :)
Przydatne, dzięki :)
Super, bardzo się cieszę 🙂