Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Привязка макроса к динамической таблице - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Привязка макроса к динамической таблице (Макросы/Sub)
Привязка макроса к динамической таблице
samojlo Дата: Среда, 15.03.2017, 02:05 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день или ночь.
Подскажите, как можно задать путь к динамической таблице в макросе?
Никогда не создавал и не писал ничего подобного, вообще ничего не писал. ))
Я вот уже второй день пытаюсь разобраться с ним, тоесть с макросом, сам я не програмист, если задаю глупый вопрос или не правильно называю действия, прошу Вас, не судите строго.

Вот я сделал определение листа таким образом "With database" можно ли как то обратить внимание именно на динамическую таблицу таким образом "With database.какоетоопределениеДТ"
*какоетоопределениеДТ - вот это значение и не могу нигде найти как правильно задать чтобы работа была именно с определенной динамической таблицей. Заранее спасибо!
 
Ответить
СообщениеДобрый день или ночь.
Подскажите, как можно задать путь к динамической таблице в макросе?
Никогда не создавал и не писал ничего подобного, вообще ничего не писал. ))
Я вот уже второй день пытаюсь разобраться с ним, тоесть с макросом, сам я не програмист, если задаю глупый вопрос или не правильно называю действия, прошу Вас, не судите строго.

Вот я сделал определение листа таким образом "With database" можно ли как то обратить внимание именно на динамическую таблицу таким образом "With database.какоетоопределениеДТ"
*какоетоопределениеДТ - вот это значение и не могу нигде найти как правильно задать чтобы работа была именно с определенной динамической таблицей. Заранее спасибо!

Автор - samojlo
Дата добавления - 15.03.2017 в 02:05
samojlo Дата: Среда, 15.03.2017, 02:06 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
файл что-то сразу не прикрепился. Или я не то нажимаю что надо?
К сообщению приложен файл: __0001.xlsm (68.4 Kb)
 
Ответить
Сообщениефайл что-то сразу не прикрепился. Или я не то нажимаю что надо?

Автор - samojlo
Дата добавления - 15.03.2017 в 02:06
_Boroda_ Дата: Среда, 15.03.2017, 03:38 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Добрый!
Не совсем понял, Вы про вот это?
[vba]
Код
Лист1.[БАЗА[#All]].Select
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДобрый!
Не совсем понял, Вы про вот это?
[vba]
Код
Лист1.[БАЗА[#All]].Select
[/vba]

Автор - _Boroda_
Дата добавления - 15.03.2017 в 03:38
samojlo Дата: Среда, 15.03.2017, 06:04 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Походу да.
 
Ответить
СообщениеПоходу да.

Автор - samojlo
Дата добавления - 15.03.2017 в 06:04
samojlo Дата: Среда, 15.03.2017, 06:07 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Это значение привязывается ко всей таблице, на сколько я понял. Можно ли определенно привязывать и столбцы так же по названию?


Сообщение отредактировал samojlo - Среда, 15.03.2017, 06:08
 
Ответить
СообщениеЭто значение привязывается ко всей таблице, на сколько я понял. Можно ли определенно привязывать и столбцы так же по названию?

Автор - samojlo
Дата добавления - 15.03.2017 в 06:07
samojlo Дата: Среда, 15.03.2017, 06:14 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добавив его к значению, мне написало "невозможно получить свойство Selekt класса Range" я так понимаю дальше немного нужно мне подредактировать по другому?
 
Ответить
СообщениеДобавив его к значению, мне написало "невозможно получить свойство Selekt класса Range" я так понимаю дальше немного нужно мне подредактировать по другому?

Автор - samojlo
Дата добавления - 15.03.2017 в 06:14
samojlo Дата: Среда, 15.03.2017, 11:33 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Дорогие программисты помогите мне решить эту задачу. Стопорнулся на ней и не могу продвигаться дальше.
 
Ответить
СообщениеДорогие программисты помогите мне решить эту задачу. Стопорнулся на ней и не могу продвигаться дальше.

Автор - samojlo
Дата добавления - 15.03.2017 в 11:33
_Boroda_ Дата: Среда, 15.03.2017, 11:56 | Сообщение № 8
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
    Лист1.[БАЗА[Емкость №5]].Select 'без шапки
    Лист1.[БАЗА[[#All],[Емкость №5]]].Select 'с шапкой
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
    Лист1.[БАЗА[Емкость №5]].Select 'без шапки
    Лист1.[БАЗА[[#All],[Емкость №5]]].Select 'с шапкой
[/vba]

Автор - _Boroda_
Дата добавления - 15.03.2017 в 11:56
samojlo Дата: Среда, 15.03.2017, 12:06 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Так, только когда я привязал его к "With database.[БАЗА[#All]].Select" (database - это название листа) оно мне выдало ошибку "невозможно получить свойство Selekt класса Range".

Вот мой код:
[vba]
Код

Sub CommandButton_зберегти_Click()
    Dim nextRow As Long
    'Считаем количество строк в таблице. отсчитываем по 3-й колонке на листе
    nextRow = Sheets("База").Cells(Sheets("База").Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    
    'копируем данные из таблицы ввода в в таблицу
    With database
    
        'Проверка для правильного подсчета строк в пустой таблице
        If .Range("A2").Value = "" And .Range("B2") = "" Then
            nextRow = nextRow - 1
        End If
               
            'Проверяем правильность заполнения данных в вводной форме
            If Not IsNumeric(Me.TextBox_тара) Or _
                Not IsNumeric(Me.TextBox_брутто) Or _
                Not IsNumeric(Me.TextBox_плот) Or _
                Not IsNumeric(Me.TextBox_темп) Or _
                Not IsNumeric(Me.TextBox_вага) Or _
                Not IsNumeric(Me.TextBox_докплот) Or _
                Not IsNumeric(Me.TextBox_доктемп) Or _
                Not IsDate(Me.TextBox_дата) Then
                MsgBox "Не корректно заполненная форма!!!!", 48, " Опять ошибка!"
                Exit Sub
            
            End If
        'Заполняем ячейку с наименованием товара
        Sheets("База").Cells(nextRow, 1) = CDate(Me.TextBox_дата)
        Sheets("База").Cells(nextRow, 10) = CDbl(Me.TextBox_тара)
        Sheets("База").Cells(nextRow, 11) = CDbl(Me.TextBox_брутто)
        Sheets("База").Cells(nextRow, 13) = CDbl(Me.TextBox_плот)
        Sheets("База").Cells(nextRow, 14) = CDbl(Me.TextBox_темп)
        Sheets("База").Cells(nextRow, 17) = CDbl(Me.TextBox_вага)
        Sheets("База").Cells(nextRow, 18) = CDbl(Me.TextBox_докплот)
        Sheets("База").Cells(nextRow, 19) = CDbl(Me.TextBox_доктемп)
        Sheets("База").Cells(nextRow, 3) = "Авто"
        Sheets("База").Cells(nextRow, 4) = Me.ComboBox_приход
        Sheets("База").Cells(nextRow, 5) = Me.ComboBox_ресурс
        Sheets("База").Cells(nextRow, 6) = Me.TextBox_завантаж
        Sheets("База").Cells(nextRow, 7) = Me.TextBox_тягач
        Sheets("База").Cells(nextRow, 8) = Me.TextBox_причіп
        Sheets("База").Cells(nextRow, 9) = Me.TextBox_водій
        Sheets("База").Cells(nextRow, 15) = Me.CheckBox_переміщ
        Sheets("База").Cells(nextRow, 16) = Me.TextBox_докномер
        Sheets("База").Cells(nextRow, 20) = Me.TextBox_розвантаж
            
        
    End With
    
    'заполняем значиниямы из вводной формы форму ТТН
    Sheets("Форма").Range("AE7") = CDate(Me.TextBox_дата)
    Sheets("Форма").Range("BH53") = CDbl(Me.TextBox_брутто)
    Sheets("Форма").Range("AA53") = CDbl(Me.TextBox_вага)
    Sheets("Форма").Range("I9") = Me.TextBox_тягач
    Sheets("Форма").Range("AE9") = Me.TextBox_причіп
    Sheets("Форма").Range("AS12") = Me.TextBox_водій
    Sheets("Форма").Range("AB7") = Me.TextBox_докномер
    Sheets("Форма").Range("AO23") = Me.TextBox_розвантаж
    Sheets("Списки").Range("M1") = Me.ComboBox_ресурс
    
    'проверяем на наличие данных в списках
    
    
    Unload Me
End Sub
[/vba]


Сообщение отредактировал samojlo - Среда, 15.03.2017, 12:12
 
Ответить
СообщениеТак, только когда я привязал его к "With database.[БАЗА[#All]].Select" (database - это название листа) оно мне выдало ошибку "невозможно получить свойство Selekt класса Range".

Вот мой код:
[vba]
Код

Sub CommandButton_зберегти_Click()
    Dim nextRow As Long
    'Считаем количество строк в таблице. отсчитываем по 3-й колонке на листе
    nextRow = Sheets("База").Cells(Sheets("База").Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    
    'копируем данные из таблицы ввода в в таблицу
    With database
    
        'Проверка для правильного подсчета строк в пустой таблице
        If .Range("A2").Value = "" And .Range("B2") = "" Then
            nextRow = nextRow - 1
        End If
               
            'Проверяем правильность заполнения данных в вводной форме
            If Not IsNumeric(Me.TextBox_тара) Or _
                Not IsNumeric(Me.TextBox_брутто) Or _
                Not IsNumeric(Me.TextBox_плот) Or _
                Not IsNumeric(Me.TextBox_темп) Or _
                Not IsNumeric(Me.TextBox_вага) Or _
                Not IsNumeric(Me.TextBox_докплот) Or _
                Not IsNumeric(Me.TextBox_доктемп) Or _
                Not IsDate(Me.TextBox_дата) Then
                MsgBox "Не корректно заполненная форма!!!!", 48, " Опять ошибка!"
                Exit Sub
            
            End If
        'Заполняем ячейку с наименованием товара
        Sheets("База").Cells(nextRow, 1) = CDate(Me.TextBox_дата)
        Sheets("База").Cells(nextRow, 10) = CDbl(Me.TextBox_тара)
        Sheets("База").Cells(nextRow, 11) = CDbl(Me.TextBox_брутто)
        Sheets("База").Cells(nextRow, 13) = CDbl(Me.TextBox_плот)
        Sheets("База").Cells(nextRow, 14) = CDbl(Me.TextBox_темп)
        Sheets("База").Cells(nextRow, 17) = CDbl(Me.TextBox_вага)
        Sheets("База").Cells(nextRow, 18) = CDbl(Me.TextBox_докплот)
        Sheets("База").Cells(nextRow, 19) = CDbl(Me.TextBox_доктемп)
        Sheets("База").Cells(nextRow, 3) = "Авто"
        Sheets("База").Cells(nextRow, 4) = Me.ComboBox_приход
        Sheets("База").Cells(nextRow, 5) = Me.ComboBox_ресурс
        Sheets("База").Cells(nextRow, 6) = Me.TextBox_завантаж
        Sheets("База").Cells(nextRow, 7) = Me.TextBox_тягач
        Sheets("База").Cells(nextRow, 8) = Me.TextBox_причіп
        Sheets("База").Cells(nextRow, 9) = Me.TextBox_водій
        Sheets("База").Cells(nextRow, 15) = Me.CheckBox_переміщ
        Sheets("База").Cells(nextRow, 16) = Me.TextBox_докномер
        Sheets("База").Cells(nextRow, 20) = Me.TextBox_розвантаж
            
        
    End With
    
    'заполняем значиниямы из вводной формы форму ТТН
    Sheets("Форма").Range("AE7") = CDate(Me.TextBox_дата)
    Sheets("Форма").Range("BH53") = CDbl(Me.TextBox_брутто)
    Sheets("Форма").Range("AA53") = CDbl(Me.TextBox_вага)
    Sheets("Форма").Range("I9") = Me.TextBox_тягач
    Sheets("Форма").Range("AE9") = Me.TextBox_причіп
    Sheets("Форма").Range("AS12") = Me.TextBox_водій
    Sheets("Форма").Range("AB7") = Me.TextBox_докномер
    Sheets("Форма").Range("AO23") = Me.TextBox_розвантаж
    Sheets("Списки").Range("M1") = Me.ComboBox_ресурс
    
    'проверяем на наличие данных в списках
    
    
    Unload Me
End Sub
[/vba]

Автор - samojlo
Дата добавления - 15.03.2017 в 12:06
_Boroda_ Дата: Среда, 15.03.2017, 12:09 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Правьте свой пост согласно Правилам форума.Поправили, вижу
А чтобы кракозябр не было - в момент копирования из VBA нужно, чтобы там была русская раскладка
И вообще - зачем нам весь Ваш макрос и все Ваши листы с таблицами? Составьте маленький пример, напишите маленький код, в котором и обозначьте "Вот эта строка не получается".


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995


Сообщение отредактировал _Boroda_ - Среда, 15.03.2017, 12:12
 
Ответить
СообщениеПравьте свой пост согласно Правилам форума.Поправили, вижу
А чтобы кракозябр не было - в момент копирования из VBA нужно, чтобы там была русская раскладка
И вообще - зачем нам весь Ваш макрос и все Ваши листы с таблицами? Составьте маленький пример, напишите маленький код, в котором и обозначьте "Вот эта строка не получается".

Автор - _Boroda_
Дата добавления - 15.03.2017 в 12:09
samojlo Дата: Среда, 15.03.2017, 12:15 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Хорошо сейчас напишу маленький пример. Просто я первый раз за написание програми сел.))
 
Ответить
СообщениеХорошо сейчас напишу маленький пример. Просто я первый раз за написание програми сел.))

Автор - samojlo
Дата добавления - 15.03.2017 в 12:15
samojlo Дата: Среда, 15.03.2017, 12:33 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 9
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Вот пример. Он работает. Но когда добавляю в таблице столбец, значения вводятся уже не правильно. А когда я привязал его к "With database.[БАЗА[#All]].Select" оно мне выдало ошибку "невозможно получить свойство Selekt класса Range".
К сообщению приложен файл: 6699657.xlsm (22.8 Kb)


Сообщение отредактировал samojlo - Среда, 15.03.2017, 12:39
 
Ответить
СообщениеВот пример. Он работает. Но когда добавляю в таблице столбец, значения вводятся уже не правильно. А когда я привязал его к "With database.[БАЗА[#All]].Select" оно мне выдало ошибку "невозможно получить свойство Selekt класса Range".

Автор - samojlo
Дата добавления - 15.03.2017 в 12:33
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Привязка макроса к динамической таблице (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!