Макросы Excel или постер на прокачку.

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28
Доброго времени суток.
=
Эта статья посвещена теме "как с минимальными усилиями забить данные для постинга объявлений в файл Excel, для последущего использования их в пользовательском шаблоне ZennoPoster5 ".
=
Наверное не многие заметили, что в ZennoPoster 5 - Билд 5.5.0.0 появились поддержка *.xlsm формата таблиц.
Что же такое *.xlsm и чем отличается от старого доброго *.xlsx?
=
Расширение XLSM – это лист экселя с поддержкой макросов, написанных на языке Visual Basic для приложений (VBA), сохраняется в новом формате Open XML, который появился в Microsoft Office 2007. XLSM файлы очень похожи на XLSX файлы, но включена поддержка макросов. Они могут быть открыты с помощью Excel 2007 или выше, или в предыдущих версиях Excel, если установлен Пакет обеспечения совместимости Microsoft Office для форматов файлов Word, Excel и PowerPoint. По соображениям безопасности, Excel не позволяет открывать макросы по умолчанию.
Примечание: Microsoft Excel не будет выполнять макросы в файлах XLSX, даже если они содержат код макроса. Из-за безопасности файлы с макросом должны быть сохранены в файле с расширением XLSM.
=
Итак, с помощью Visual Basic for Applications(VBA) создадим интуитивно понятный даже для ребёнка интерфейс забивки объявлений.
=
Начнём мы с настройки Excel.(Хоть 2007 версия отлично работает с макросами, я всё же рекомендую работать на 2010). По умолчанию в Excel макросы отключены(из соображений безопасности). Но настоящие пираты красного моря не боятся xD. Врубаем.
=
Шаг1.

=
Шаг2.

=
Шаг3.

=

Всё. Инструмент готов. Чтобы начать заниматься программаторством надо открыть код листа.

=========================================

Давайте посмотрим в каких типичных ситуациях нам может пригодиться стандартный функционал Excel и макросы VBA:
=
Пример1.(Создание выпадающих списков городов и метро/районов)
=
Тут я показываю как создавать выпадающие списки:
Тут как вставлять их в любую ячейку:
=
А теперь применим маленький VBA код который не даст пользователю свалять дурака и случайно заполнить метро/район в городе в котором отсутствует метро/район.
Код:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A2:A1000")) Is Nothing Then
        If Target = "Саратов" Then
            Target.Offset(0, 1).Activate
            Else
             Target.Offset(0, 1) = ""
        End If
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("B2:B1000")) Is Nothing Then
        Application.EnableEvents = False
        If Target.Offset(0, -1) <> "Саратов" Then Target.Offset(0, -1).Activate
    End If
    Application.EnableEvents = True
End Sub
Тут как это должно работать:
=
Пример2.(Автоматизируем вставку пути к фото)
=
Стандартная ситуация. В ячейку надо вставить имя папки или всю директорию по которой лежат наши фотки. Кто часто работает с Excel поймёт как может напрягать сворачивание программы, поиск директории с фото, копирование, вставка имени директории в нужную ячейку.
Упростим это. Накидаем код который по событию(дабл клик по любой ячейке в нужном нам столбце), вызывает окно проводника и вставляет имя выбранной папки с фото.
Код:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Arr
On Error GoTo 0
    If Intersect(Target, Columns("A:A")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
    With Application.FileDialog(msoFileDialogFolderPicker)
         .AllowMultiSelect = False
         .Show
        If .SelectedItems.Count <> 1 Then Exit Sub
        Arr = Split(.SelectedItems(1), "\")
        Target = Arr(UBound(Arr))
    End With
    Cancel = True
End Sub
=
Тут как это должно работать:
=
Фух!!! Сегодня мы уже достаточно попрактиковались в программаторстве на VBA, и даже проголодались. Пора переходить к десерту!:by:
=
Пример3.(Шаблон нашпигованный сладкими макросами под соусом Avito-Недвижимость)
=
Этот шаблон я делал лично для себя. Он не претендует на серьёзное использование в сфере постинга объявлений, но я надеюсь кому нибудь на форуме он может оказаться весьма полезным.
Переделать его под другую категорию или под использование на другом сайте не составит большого труда.
=
Принцип работы шаблона:
На листе1 данные которые мы будем заполнять для постинга объявлений.
На листе2 схема категорий(Её под свои нужды можно редактировать)
На листе3 хранятся все выпадающие списки(Их тоже можно редактировать)
=
Какие макросы присутствуют в шаблоне:
-Макрос на проверку Город район/метро.
-Макрос на загрузку фото.
-Макрос на выбор подкатегории недвижимости-авито.
-Макрос на подсветку зелёным/красным что надо/ненадо заполнять.
-Макрос на выделение пунктиром строки
-Макрос на умную шапку(При щелчке по строкам разных категорий будет меняться шапка)
-Макрос на сортировку(При дабл клике на ячейке шапки сортирует от A-Z и в обратном порядке значения всей строки, по заданному столбцу.)
=
Видео работы шаблона:
=
Конец:bt:
Не стесняемся с идеями, что можно еще добавить в шаблон, буду рад послушать.
Всем спасибо за просмотр и удачи в новом году, голосуйте за прокачанный постер!!!)
 
Тема статьи
Другое
Номер конкурса статей
Второй конкурс статей

Вложения

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

apart96

Новичок
Регистрация
18.04.2015
Сообщения
3
Благодарностей
0
Баллы
1
вызывает окно проводника и вставляет имя выбранной папки с фото.
Добрый день!

Вопрос а как сделать чтоб полный путь отображался в ячейке?
 

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28
Я еще в январе-феврале переосмыслил програмку, и переписал её заново.
Теперь там не в ячейках все заполняешь, а выплывает удобная форма и через форму идет заполнение объявления. Это сделало в разы удобнее пользоваться экселем.
Может быть выложу на осенний конкурс статей. (на весенний я уже не успел)
 
  • Спасибо
Реакции: AlisaZ

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)