Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2015, 17:02   #1
Екатерина Попкова
Пользователь
 
Регистрация: 15.03.2014
Сообщений: 34
По умолчанию Cоздание папок VBA Excel

Добрый день!Пожалуйста помогите с VBA Exсel
1.При начале нового дня создать новую папку с именем даты .Например:27.05.2015г.
2.При начале нового дня создать в этой же папке (напр.27.05.2015г.),новые папки с фамилиями сотрудников кто работает в данный день.График работы на рисунке
Изображения
Тип файла: jpg 1.jpg (23.3 Кб, 125 просмотров)
Екатерина Попкова вне форума Ответить с цитированием
Старый 26.03.2015, 17:17   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

MkDir Вам в помощь!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.03.2015, 17:21   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код:
Option Explicit

Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

Sub tt()
    Const ROOT = "d:\"    'заменить на свой путь
    Dim c, strDate$
    strDate = Format(Now, "dd.mm.yyyy" & "г.")
    Set c = [b2:af2].Find(Day(Now))
    Debug.Print c.Address
    For Each c In Range(Cells(3, c.Column), Cells(Rows.Count, c.Column).End(xlUp)).Cells
        If c.Row > 2 Then
            If c.Value Then
                MakeSureDirectoryPathExists ROOT & strDate & "\" & Cells(c.Row, 1).Value & "\"
            End If
        End If
    Next
End Sub
Вы проверяйте что на других форумах уже отвечено...
Или ищите возможность выбора? Используйте MkDir
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 29.03.2015, 17:33   #4
Екатерина Попкова
Пользователь
 
Регистрация: 15.03.2014
Сообщений: 34
По умолчанию

Hugo121,На других форумах ответа не было,решила на этом написать))
Поскажите,пожалуйста, Set c = [b2:af2].Find(Day(Now)) -это что,?ссылается на ошибку((
Екатерина Попкова вне форума Ответить с цитированием
Старый 29.03.2015, 17:41   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Это ищем ячейку сегодняшнего дня. В примере ошибки быть не должно - там есть все числа от 1 до 31. Если у Вас файл не как показали - вините себя.
Да, строка
Код:
Debug.Print c.Address
лишняя, забыл убрать.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 29.03.2015, 18:25   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Игорь, может там во 2 строке дата с форматом ДД?
Можно так:
Код:
Set c = cells(2, Day(Now)+1)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 29.03.2015, 18:32   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Я код проверил на файле, он был на другом форуме.
Там в ячейках были просто числа от 1 до 31.
Форум вспомнил - кибер. Кто знает, может поискать - название темы такое же. Ссылку не дам - они ссылки режут

Да, чтоб было почти "при начале нового дня" нужно этот код поставить на событие открытия файла. Будет конечно не на каждое начало нового дня - но если в течение дня файл откроют, то папки создадутся.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 29.03.2015 в 18:43.
Hugo121 вне форума Ответить с цитированием
Старый 29.03.2015, 18:49   #8
Екатерина Попкова
Пользователь
 
Регистрация: 15.03.2014
Сообщений: 34
По умолчанию

А что если брать ячейки из этого листа...(на рисунке)на 29 число
Необходимо только взять из этих ячеек на 29 число адреса эл.почт и создать новые папки.Как правильно прописать?(
Изображения
Тип файла: jpg 1.jpg (83.0 Кб, 115 просмотров)
Екатерина Попкова вне форума Ответить с цитированием
Старый 29.03.2015, 19:35   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Т.е. я тратил своё время зря?...
Следующий...
Хотя в моём коде уже всё нужное есть - его нужно всего лишь понять и совсем чуть подправить.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание папок по списку в Excel jungo Microsoft Office Excel 9 04.12.2013 16:50
Совместимость Excel 2007 VBA - Excel 2010 VBA Genas Microsoft Office Excel 2 28.11.2012 15:33
Копирование картинок и создание папок VBA STYDENT13 Microsoft Office Excel 5 24.05.2012 01:05
VBA Word,VBA Excel решить 2 задачи fafolo4ka Фриланс 6 05.03.2012 01:15
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 kovalevskivf Microsoft Office Excel 2 15.05.2009 16:47