Страницы: 1 2 След.
RSS
Макрос создание папок и подпапок
 

Есть небольшой макрос. Суть такова, один раз создалась папка(если её нет) с названием "кассовый отчёт" на рабочем столе и каждый день в неё копируется и сохраняется этот файл с названием текущей даты. Очень нужна помощь в корректировке макроса, чтобы после его срабатывания, в папке кассовый отчёт создавалась папка с текущим годом, а уже в этой папке, папка с текущим месяцем. И в папку с текущим месяцем сохранялась копия этого файла    

Код
Private Sub CommandButton5_Click()Dim fso As Object
    Set fso = CreateObject("Scripting.FilesystemObject")
        If Not fso.FolderExists(Environ("USERPROFILE") & "\Desktop\" & "Кассовые отчёты") Then
            fso.CreateFolder (Environ("USERPROFILE") & "\Desktop\" & "Кассовые отчёты")
        End If
Dim FileN$
FileN = Environ("USERPROFILE") & "\Desktop\Кассовые отчёты\" & Date & ".xls"
ThisWorkbook.Sheets("Шаблон").Copy
ActiveWorkbook.SaveCopyAs FileN
ActiveWorkbook.Close SaveChanges:=False
Sheets("Шаблон").PrintOut
MsgBox "Кассовый отчёт успешно сохранён и распечатан теперь отправь меня на почту"
End Sub

Изменено: Александр Растеряев - 01.08.2021 22:40:02
 
Цитата
Александр Растеряев написал:
Очень нужна помощь
а помощь какого плана? Что именно не получается? Использовать функцию MkDir? Или уже прописанную в коде fso.CreateFolder по образу и подобию? Или что? Вы хоть напишите что уже пробовали и что именно не получается. Потому что все, что нужно для решения задачи у Вас есть и пока похоже на то, что разобраться Вы даже не пытались и Вам просто нужно не помочь, а сделать все за Вас.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Александр Растеряев, код следует оформлять соответствующим тегм. Ищите кнопку <...> и исправьте своё сообщение.
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
а помощь какого плана?
помощь в корректировке макроса, чтобы после его срабатывания, в папке кассовый отчёт создавалась папка с текущим годом, а уже в этой папке, папка с текущим месяцем. И в папку с текущим месяцем сохранялась копия этого файла
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Что именно не получается?
после его срабатывания, в папке кассовый отчёт создавалась папка с текущим годом, а уже в этой папке, папка с текущим месяцем. И в папку с текущим месяцем сохранялась копия этого файла
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Использовать функцию MkDir? Или уже прописанную в коде fso.CreateFolder по образу и подобию? Или что?
Я не знаю, что это за функции. Код был склеен частями, а части нашёл в интернете
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Потому что все, что нужно для решения задачи у Вас есть и пока похоже на то, что разобраться
это уже хорошо, знал бы как сделать, за помощью не обращался  
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Вы даже не пытались и Вам просто нужно не помочь, а сделать все за Вас.
Пытался найти уже готовый макрос в интернете и склеить с этим, но увы не получилось  
 
Юрий М, исправил  
 
Александр Растеряев, все ответы Дмитрию можно было уместить в одно сообщение. Зачем их множить?
 
Юрий М,Как смог, так и ответил. Если так критично это для Вас удалите пож-та тему. Одни вопросы ко мне. Настроение подпорчено, таким отношением. Наверное во мне видно Гуру экселя и уверенного пользователя вашего форума. Спасибо за ваше уделённое время ко мне.
 
Цитата
Александр Растеряев написал:
Настроение подпорчено, таким отношением
Да каким ТАКИМ отношением? Мне теперь что - нельзя и замечание Вам сделать?
И причём тут знание Excel, если я про чисто оформительские дела?
 
Код
Sub CreateFolders1()
    Dim fso As Object, FileN As String
    Set fso = CreateObject("Scripting.FilesystemObject")
        
        'Если папки "Кассовые отчёты" нету на рабочем столе, то создаем её
        If Not fso.FolderExists(Environ("USERPROFILE") & "\Desktop\" & "Кассовые отчёты") Then
            fso.CreateFolder (Environ("USERPROFILE") & "\Desktop\" & "Кассовые отчёты")
        End If
        
        'Если папки с текущим годом нету в папке "Кассовые отчёты", то создаем её
        If Not fso.FolderExists(Environ("USERPROFILE") & "\Desktop\" & "Кассовые отчёты" & "\" & Year(Date)) Then
            fso.CreateFolder (Environ("USERPROFILE") & "\Desktop\" & "Кассовые отчёты" & "\" & Year(Date))
        End If
        
        'Если в папке с текущим годом нету в папки с текущим месяцем, то создаем её
        If Not fso.FolderExists(Environ("USERPROFILE") & "\Desktop\" & "Кассовые отчёты" & "\" & Year(Date) & "\" & Month(Date)) Then
            fso.CreateFolder (Environ("USERPROFILE") & "\Desktop\" & "Кассовые отчёты" & "\" & Year(Date) & "\" & Month(Date))
        End If
        
    'Полный путь файлу
    FileN = Environ("USERPROFILE") & "\Desktop\" & "Кассовые отчёты" & "\" & Year(Date) & "\" & Month(Date) & "\" & Date & ".xls"
    
    ThisWorkbook.Sheets("Шаблон").Copy
    ActiveWorkbook.SaveCopyAs FileN
    ActiveWorkbook.Close SaveChanges:=False
    Sheets("Шаблон").PrintOut
    MsgBox "Кассовый отчёт успешно сохранён и распечатан теперь отправь меня на почту"
End Sub
 
DANIKOLA,Огромнейшее спасибо, всё как нужно работает.
 
Зашел, насорил, получил помощь, а потом нагадил - удалил вопрос из первого сообщения!
Верните вопрос на место. Тема не Ваша личная собственность, решение может пригодиться кому-то еще.
Не будет реакции - получите бан за такое потребительское отношение.
Изменено: vikttur - 31.07.2021 23:35:45
 
vikttur,чем же я насорил? и нагадил? На почту уже письма три как минимум пришло с баном
 
Александр Растеряев, форум ведь не для Вас одного. Зачем удаляли стартовое сообщение? Ведь ещё кому-нибудь пригодится тема...А в стартовом сообщении: "Тема закрыта" - это нормально?
 
Юрий М, т.е. для Вас поведение Дмитрия нормально? После ваших сообщений я попросил удалить тему, меня проигнорили! Теперь меня выставляют животным которое гадит модератору ещё сорю где-то наверное в квартире у него. И стращать меня баном, сначала временным, а теперь уж постоянным за такое потребительское отношение. Это самый выход и ситуации. А тему закрыл из-за сообщения Дмитрия. Т.е. поведение других людей норм, а тех кто обращается за помощью можно с ними как угодно вести? Согласитесь такими крылатыми выражениями можно под каждым постом отвечать "Вы даже не пытались и Вам просто нужно не помочь, а сделать все за Вас". Люди новички и так поддерживать их ну не знаю может я чего то в жизни не понимаю и притом что этот человек ведёт тренинги для таких же новичков... Большинство людей сюда обращаются за помощью. В экселе я новичок и очень благодарен человеку, который мне помог, ведь истина была рядом, склеить макрос с формулой даты, ксажелению я не нашёл такую формулу в инете. Если я не прав в чём-то можете меня банить, единственное я извинюсь за спам, растянутый в сообщениях и за закрытую тему, а в остальном я считаю нельзя так общаться с людьми, хотя для кого-то и слова Дмитрия являются и нормальным бытом  
Изменено: Александр Растеряев - 01.08.2021 23:40:44
 
Цитата
Александр Растеряев написал:
А тему закрыл из-за сообщения Дмитрия
правда, что ли? Ну хоть виноватого нашли и то радость :) Я написал свое мнение и как выглядит Ваша просьба. И никаких оскорблений, призывов или наездов там не было. Вы ответили на мое сообщение несколько раз, а потом и свое сообщение стерли. Отсюда все проблемы. Не надо на меня вешать свои косяки. Если Вы не знаете как решить проблему и как даже начать - так и надо писать сразу "не знаю, не умею, люди добрые подкиньте решение". А раз Вы написали "помогите" - то надо писать что пробовали и что именно не получается, чтобы те, кто решит помочь не предлагали то, что Вы уже возможно пробовали и что Вам по каким-либо причинам не подходит. Поверьте, такое не редкость.
Цитата
Александр Растеряев написал:
Люди новички и так поддерживать их ну не знаю может я чего то в жизни не понимаю
Нянчиться с Вами и со слюнявчиками за Вами бегать здесь никто не обязан - предполагается, что люди собрались адекватные и зрелые, чтобы сопли им не подтирать при каждом их чихе.
Цитата
Александр Растеряев написал:
и притом что этот человек ведёт тренинги для таких же новичков
не надо мешать мух и котлеты. Писать Вам тут код с нуля по одному только Вашему желанию никто не обязан и делают все это из собственных побуждений(кто ради интереса, кто ради тренировки, а кто-то просто от безделья). Если Вы например, строите дома и я к Вам обратился за такой же помощью: "Я тут дом решил построить и у меня есть его фото - помогите мне его построить, а я посмотрю на процесс со стороны". Как думаете, Вы обязаны мне его построить без лишних вопросов?
Поэтому свои обиды оставьте при себе и научитесь обстановку адекватно расценивать. Тот факт, что я веду тренинги ни в коем разе не обязывает меня писать коды и программы каждому, кто сам этого не умеет, но очень хочет получить. Если будете на каждое сообщение смотреть обиженными глазами Вам быстро перестанут даже отвечать на всех форумах. Стоит принять за правило тот факт, что ни на одном форуме Вам(как собственно и мне и всем остальным) никто ничем не обязан.
Цитата
Александр Растеряев написал:
считаю нельзя так общаться с людьми
поясните как именно нельзя общаться? И как тогда можно? Раз уж это камень в мой огород исключительно, ведь я виновник всему в этой теме(кроме решения, конечно).
Изменено: Дмитрий(The_Prist) Щербаков - 02.08.2021 12:12:45
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Добрый день!
Цитата
Дмитрий(The_Prist) Щербаков написал:
Ну хоть виноватого нашли
А как вы хотели? Думаете ТС легко, нужно придумать проблему, описать её на языке понятном не только ему. Они (ТС) очень ранимые и то, что Вы не понимаете его косноязычное объяснение, это Ваши проблемы, он сам пять раз перечитал своё задание и ему всё понятно. А раз уж Вы зашли и прочитали его требования то не нужно уточнять, что нужно сделать, как нужно сделать и главное, что уже он сам пробовал, это очень оскорбительно. Я думаю скоро нужно будет вводить правило, если не помогающий не понимает о чем речь, то ему БАН.  :D  :D  :D  
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
что разобраться Вы даже не пытались и Вам просто нужно не помочь, а сделать все за Вас.
Ешё раз подведу к этой фразе! Я так понимаю, что такое общение это норма? Не просил за меня что-то делать ни Вас, ни кого либо. Обращался к форуму, а не к Вам. И мне лично не нужно от Вас писать коды с нуля и т.п. ещё раз повторю я этого не просил. Нянчитесь со своими детьми и слюнявчики меняйте им тоже или что-то подобное в вашей фразе, я вас так же не просил об этом. Бегать за мной так же не просил. Видимо Вы очень много себе нафантазировали.  Повторю ещё раз я не прошу делать всё за меня и помощь мне заключалась в коррекции кода, но не более того. А Ваша фраза не уместна ко мне
 
Цитата
Александр Растеряев написал:
помощь мне заключалась в коррекции кода
код из стартового сообщения не делает того, что описано в "хотелке". Нужно не корректировать, а писать с нуля, т.е не "помочь", а сделать за вас. Вам на это и указали. А уж как вы это воспринимаете - вопрос сугубо филосовский.
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
buchlotnik написал:
Нужно не корректировать, а писать с нуля, т.е не "помочь", а сделать за вас.
Я правильно понимаю, что код в решение от DANIKOLA написан код с нуля? Или он всё таки подкорректирован?  
 
Цитата
Александр Растеряев написал:
Не просил за меня что-то делать ни Вас, ни кого либо
Повторюсь - в изначальном сообщении именно про "сделайте" и читалось. Своих попыток Вы не озвучили, что именно не получается и в чем именно помочь не написали. Возможно, там делов было на пару минут. А возможно и нет, т.к. неясно было в чем проблема, т.к. если Вы уже написали стартовый код, но неясно было почему не можете реализовать дальше. Плюс, если посмотреть на дату редактирования первого сообщения, то отчетливо видно, что оно отредактировано ПОСЛЕ написания моего. Притом весьма значительно - более суток. Ни о каких корректировках изначально там написано не было - это уже появилось в одном из последующих сообщений. Было написано есть вот такой код, а мне нужен другой, который делает вот это и это. Зачем было вообще удалять свое первоначальное сообщение? Сейчас такие действия выглядят еще хуже, чем если бы сообщение было не тронутым...Согласитесь, детский сад какой-то. Я ведь сейчас тоже могу отредактировать свои сообщения так, что все Ваши на этом фоне вообще глупо будут смотреться. Но я же этого не делаю, т.к. не вижу в этом смысла. Так и будем редактировать, пока полная каша не получится :)
Цитата
Александр Растеряев написал:
Видимо Вы очень много себе нафантазировали
Не вижу чего я тут фантазировал. Я отвечал на Ваше сообщение, в котором даже тему из-за моего сообщения закрыли. Прочитайте без всяких обид и предрассудков мое и свои сообщения. Потом делайте выводы. Поверьте, никто не собирается Вас здесь унижать, гнобить и т.д. Никому это не надо. И мне в том числе.
Цитата
Дмитрий(The_Prist) Щербаков написал:
Вы хоть напишите что уже пробовали и что именно не получается. Потому что все, что нужно для решения задачи у Вас есть и пока похоже на то, что разобраться Вы даже не пытались и Вам просто нужно не помочь, а сделать все за Вас
Если именно без эмоций прочтете, то увидите, что в моем сообщении ничего обидного нет. Я просто указал как именно выглядело Ваше сообщение на тот момент. Скорее Вы все себе сами впоследствии надумали и накрутили из-за фразы, что сообщение похоже на то, будто надо за Вас сделать, а не "помочь". Написали бы просто: "да пробовал я, но ничего не получается, ибо не смыслю совсем". Собственно, Вы примерно так и сделали сначала - написали в ответных сообщениях, что нужна корректировка кода и с функциями озвученными Вы не знакомы. По сути оставалось только ждать решения и Вы его получили (возможно даже именно потому, что конкретизировали что не хватает знаний решить самостоятельно). Правда, я уже был не в сети, ответить ничего не мог и далее вмешались модераторы, чьи замечания Вас и оскорбили в итоге (если проследить хронологию).
Цитата
Александр Растеряев написал:
Одни вопросы ко мне. Настроение подпорчено, таким отношением. Наверное во мне видно Гуру экселя и уверенного пользователя вашего форума.
Но обидеться Вы почему-то решили именно на меня. Странно, не думаете? Ведь в изначальных ответах Вам мое сообщение не показалось столь обидным и Вы про это даже не упомянули.

Цитата
Александр Растеряев написал:
Люди новички и так поддерживать их
Вы на форуме с марта :) Да и это не важно, в общем-то. Почему здесь должны кого-то поддерживать и выражения подбирать, чтобы случайно не обидеть(откровенное хамство не в счет)? Мы же не форум психологической поддержки и даже не поддержка Microsoft :) Здесь все стараются помогать по мере сил и возможностей. Вы же не хотите, чтобы вместо решений и наводящих вопросов писали нечто вежливое вроде "Не расстраивайтесь, Ваша проблема очень важна для нас. Как только освободится один из специалистов, он обязательно вникнет в Вашу проблему". А потом тишина... Согласитесь, это не лучший вариант. Здесь же всем нужно ехать, а не шашечки :)
Предлагаю закопать топор войны и проще относиться к сообщениям вроде моего и модераторов. От всех обид этих никому пока лучше не стало, как и от всяких срачей, вроде того, что в этой теме развели.
Изменено: Дмитрий(The_Prist) Щербаков - 02.08.2021 18:01:43
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Александр Растеряев, хватит уже переливать из пустое в порожнее: я всего лишь попросил Вас навести красоту в стартовом сообщении (оформить код тегом) и не создавать кучу сообщения, растягивая тему, а писать ответы в одном сообщении - так это Вас ужасно расстроило, у Вас испортилось настроение. Начали рассказывать, что Вы плохо разбираетесь в Excel - а причём тут Excel?
Новичок, говорите? Так Вам, как новичку,  яи объяснил, КАК нужно вести себя на форуме. Корректно написал. А у Вас, видите ли настроение испортилось. Тему попросили удалить - а о других подумали?
Сами накосячили, но виноваты модераторы и Дмитрий. Кстати, ничего обидного в сообщении Дмитрия нет.
 
Дим, это как раз тот случай: "Сама придумала - сама и обиделась" ))
 
Цитата
Александр Растеряев написал:
Я правильно понимаю, что код в решение от  DANIKOLA  написан код с нуля? Или он всё таки подкорректирован?  
Естественно, что подкорректирован(накопипастил), там ведь почти все было готово.

P.S. Люди, которые долго на этом форуме и знающие VBA с Excel выше среднего, неужели вы не привыкли, что очень часто слово "помочь", напечатанное новичком означает - сделать вместо него, потому что он вообще не в теме. Намного быстрее было бы накопипастить того кода, чем уточнять значения слов или предложений. И что из этого получилось - груда текстового мусора и испорченное настроение у спрашивающего.
+ ответ Юрий М
Выше писаный "P.S." адресован не модераторам, вы делаете правильные, справедливые замечания.
Цитата
И не надо иди на поводу у таких посетителей.
На поводу стараюсь не ходить ни у кого, но почему бы не помочь человеку(или сделать все вместо него), когда есть время и настроение, так ведь и задача была всего на 10 минут.
+ ответ Дмитрий(The_Prist) Щербаков
Цитата
исходное сообщение было написано чуть иначе, чем сейчас и было реально  непонятно, что именно не получается и были ли попытки вообще
Лично я понял, что он полный ноль в VBA и будет быстрее все сделать самому, чем что-либо спрашивать. Задача ведь была простой и понятной.
Изменено: DANIKOLA - 02.08.2021 19:59:56 (добавил ответы Юрию и Димитрию)
 
DANIKOLA, если человеку не объяснить - он так и будет считать работу за него ПОМОЩЬЮ.
И не надо иди на поводу у таких посетителей.
 
Цитата
DANIKOLA написал:
неужели вы не привыкли, что очень часто слово "помочь", напечатанное новичком означает - сделать вместо него
привыкли. Но так же не вижу причин, чтобы решать человеку задачу, если он сам ничего для этого не сделал, кроме как в форум написал. Все же это больше ему надо и я считаю, что можно было бы и написать по честному - пробовал прикрутить и так и эдак, но чушь получается. Это хотя бы говорит о попытках решить свою задачу, а не о потребительском "дайте". Все.
Так, исходное сообщение было написано чуть иначе, чем сейчас и было реально непонятно, что именно не получается и были ли попытки вообще - ведь почти весь код есть и скорректировать под нужды не сложно. И выглядело именно так, будто человек либо даже не пытался сделать что-то сам, либо задача с подковыркой и свои попытки чем-то не устроили. Это я и уточнял. Тратить время и писать код, чтобы потом услышать что-то вроде "да я это уже пробовал, что Вы думаете, я совсем ничего не понимаю? Мне надо вот так и вот так, чтобы еще вот это тут было!" вообще нет желания. А это тоже в таких темах совсем не редкость. Кто ж знал, что обычными для форума вопросами можно вызвать такую страшную обиду? :)
Цитата
DANIKOLA написал:
груда текстового мусора и испорченное настроение у спрашивающего
ну настроение он сам себе испортил. Не вижу, чтобы кто-то его тут страшно прям обижал, кричал, унижал. Я спросил, Юрий М намекнул на то, что сообщения можно и в одно перекинуть, чтобы не растягивать тему. Не вижу вообще никаких причин для обид. Ну не дали решение сходу - так и не обязаны, чего обижаться-то? Подожди и будет решение, зачем какие-то обиды выдумывать? Все ж не малые дети вроде в этой теме, чтобы из-за подобного обижаться.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
DANIKOLA: Намного быстрее было бы накопипастить того кода, чем уточнять значения слов или предложений
ну тут уже я не могу не ответить…

Дмитрий(The_Prist) Щербаков, был и всегда является максимально тактичным человеком, который помог огромному количеству людей. И в этой теме я также не вижу ни намёка на нетактичность

Своими действиями вы, может быть, и "помогли" одному случайному пользователю, но я вижу только поощрение подобного поведения "обижалки" и "осуждалки" местных, хотя он ТУТ никто и звать его никак

Помощь можно разделить на 2 категории: СДЕЛАТЬ за ТСа (это ваш пример тут) и ПОМОЧЬ ТСу разобраться, чтобы он сам мог минимально поддерживать решение
Я стараюсь именно ПОМОГАТЬ, потому что меня бесит "очень сложно, я глупый, помогите" и я не хочу угадывать, переделывать и вообще как-либо поддерживать бесплатное решение

Имя Ибрагим вам о чём-нибудь говорит?  Помогите человеку уже — он вас надолго займёт  ;)
Изменено: Jack Famous - 03.08.2021 10:35:10
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1 2 След.
Наверх