Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Рандомная ошибка. "Run-time error '-2147417848 (80010108)' Automation error. The object invoked has disconnected from its clients"
 
Недавно тоже столкнулся с такой проблемой..
Как оказалось - из-за того что пытался менять значения ячеек на скрытом листе..
Как только перенёс строку "Sheets(Name).Range("b4").Visible = True"
Перед изменением значений, сразу всё стало нормально работать :)
Вдруг кому-то пригодится...
Сцепить значения ячеек в один порядковый номер
 
Mershik, извиняюсь, не заметил что у меня ячейка, на которую ссылался была пустая  :oops:  
Сцепить значения ячеек в один порядковый номер
 
Дальше перед кавычками ставим букву столбца...
Код
ActiveCell.Formula = "=CONCATENATE(C" & RowCounter - 1 & ")"

и получается запись вида "=СЦЕПИТЬ(C17)..  :)

Замечательно, спасибо за помощь!
Изменено: hyperion3330 - 22.04.2021 12:26:17
Сцепить значения ячеек в один порядковый номер
 
Hugo, спасибо большое! Именно то что нужно, но почему-то нигде не мог найти ответа  :)

МатросНаЗебре, спасибо за варианты, но у Hugo получается компактнее и намного проще   :oops:  
Сцепить значения ячеек в один порядковый номер
 
Коллеги, помогите пожалуйста с проблемой:
Задача по сути простая - сцепить значения ячеек в один порядковый номер
То есть в приложенном файле в ячейках B3, B7, B11, B15 должны быть сцепки ячеек D2+E2+F2+G2+H2, D3+E3+F3+G3+H3 и т.д. соответственно..
Но проблема в том, что при копировании номера строк, естественно, меняются на параллельные, а нужно чтобы были по порядку

Мысль была такая, чтобы задать переменную, определяющую номер последней заполненной строки в столбце D и подставляющей её в формулу сцепки в ActiveCell
Примерно так:
Код
Sub Fill()

Dim RowCount as Integer
RowCount = Sheets("Лист1").Range("D1:D" & Rows.Count).Cells.SpecialCells(xlCellTypeBlanks).Row
ActiveCell.Formula = "=CONCATENATE(RowCount - 1 & 4; RowCount - 1 & 5 ... RowCount - 1 & 8)

End sub
Но такое ощущение что функция Сцепить понимает только текст, и значение переменной туда никак не подставишь..
Так ли это?
Копирование определенных данных по нажатию кнопки
 
Когда все настроил под свою базу данных, перестало работать, выдавало различные ошибки..  методом научного тыка в 11 строке пришлось исправить на "numer = Me.oCmdbs.Tag
И все заработало

Грешу на то, что у меня в форме мультипейдж, потому что если кнопки просто в форме, предыдущий вариант прекрасно работает
Изменено: hyperion3330 - 26.04.2019 19:33:02
Копирование определенных данных по нажатию кнопки
 
Код
Option Explicit
Public WithEvents oCmdbs As MSForms.CommandButton
 
 
Private Sub oCmdbs_Click()

Dim number As Integer
Dim nextrow As Integer

nextrow = Range("D2:D" & Rows.count).Cells.SpecialCells(xlCellTypeBlanks).Row
numer = frmTest.ActiveControl.Tag

Sheets("Лист1").Cells(nextrow, 4).Value = Sheets("701").Cells(numer, 4).Value


End Sub

Вот так получилось связать тэги кнопок со строками базы данных..
Первая пустая строка для заполнения ищется вроде верно
В ячейку вставляются значения, соответствующие строчкам))

Я все правильно сделал? :)
Изменено: hyperion3330 - 26.04.2019 12:26:42
Копирование определенных данных по нажатию кнопки
 
Прикладываю
Копирование определенных данных по нажатию кнопки
 
Я так понимаю, у меня есть переменная, которая определяет номер кнопки на форме.. если эту переменную сделать глобальной, то можно будет и в этом модуле ее использовать?
А переменную с4 надо задать после через dim после строки private sub?
Или я ошибаюсь?
Изменено: hyperion3330 - 26.04.2019 07:08:31
Копирование определенных данных по нажатию кнопки
 
Код
Option Explicit
Public WithEvents oCmdbs As MSForms.CommandButton


Private Sub oCmdbs_Click()

    
    If Val(Right(oCmdbs.Name, 1)) < 5 Then
        c4 = Range("D2:D" & Rows.count).Cells.SpecialCells(xlCellTypeBlanks).Row 
        Sheets("Лист1").Cells(с4, 4).Value = Sheets("701").Cells(1, 4).Value
        
        
        MsgBox "Вы изменили значение " & oCmdbs.Name, vbInformation, "Информационное окно"
    Else
        If Len(oCmdbs.Text) > 3 Then oCmdbs.BackColor = vbRed
    End If
End Sub

Пример из статьи про классы, любезно предоставленной Sanja, переписал код под кнопки - получилось.. кнопки работают, имена в всплывающем окошке меняются как надо..
Пытался совместить коды - ничего не получилось..
Переменную с4 (которая отвечает за строку КУДА копировать (Sheets("Лист1").Cells(c4, 4).Value) он не воспринимает
Также у меня не получается задать переменную ЧТО копировать (Sheets("701").Cells(1, 4).Value).. как номер нажатой кнопки записать в переменную?

Не поможете с этим вопросом?
Изменено: hyperion3330 - 25.04.2019 18:57:34
Копирование определенных данных по нажатию кнопки
 
Только добрался до рабочего места - выкладываю файл..
В форме работают только первые три кнопки первой вкладки - остальные пока не стал трогать
Ну кнопка удаления тоже работает :)
Копирование определенных данных по нажатию кнопки
 
Спасибо, Юрий, завтра попробую  
Копирование определенных данных по нажатию кнопки
 
Чекбоксы пробовал, ещё более некрасиво выглядит..
Спасибо за статью, мне кажется подойдёт такой метод обработки..
Файл смогу завтра после обеда показать - уже уехал с работы.. может и правда умные люди подскажут как удобнее управиться с задачей :)
Копирование определенных данных по нажатию кнопки
 
Товарищи, снова здравствуйте!
На этот раз столкнулся с такой задачей:.

В userform есть multipage, на каждой вкладке которой по 15-20 кнопок, отвечающих за добавление операций в форму. Операции содержатся в виде таблицы на отдельном листе..

И вот вопрос:
можно ли как-то связать Имена кнопок (CommandButton1, CommandButton2, CommandButton3... и т.д.) с номерами строк, откуда нужно скопировать информацию?
То есть не считая шапку, чтобы при нажатии CommandButton1 копировались ячейки Cells(2, 1), Cells(2, 3) и т.д., а при нажатии CommandButton2 копировались ячейки Cells(3, 1), Cells(3, 3). Или каждой кнопке отдельно придётся прописывать задачу?
Изменено: hyperion3330 - 25.04.2019 01:24:01
Календарь на стандартных элементах, Взято из Копилки идей
 
Всем спасибо большое за помощь!
Календарь на стандартных элементах, Взято из Копилки идей
 
Мне очень стыдно, но я не понимаю о чем вы говорите :)
Календарь на стандартных элементах, Взято из Копилки идей
 
При включении выдаёт ошибку в Private Sub UserForm_Initialize()
в строчке w = [nwm__]
:(  
Календарь на стандартных элементах, Взято из Копилки идей
 
Жаль, а то по ссылке в начале топика файл в котором 4 разновидности календарей, они открываются все вместе и обычному рядовому пользователю (мне, например) не разобраться как оставить только тот, который красным обведён..
Календарь на стандартных элементах, Взято из Копилки идей
 
Юрий М, хоть теперь все и так работает, поменяю)
А вы используете календарь с последними изменениями? Там где файл с четыремя календарями изначально был?  
Календарь на стандартных элементах, Взято из Копилки идей
 
Цитата
Nordheim написал:
Если не полезете в код то ничего,
Я там ничего не понимаю) смысла лезть нету.. спасибо!)
Календарь на стандартных элементах, Взято из Копилки идей
 
Mershik, спасибо, впредь буду внимательнее :oops:  
Календарь на стандартных элементах, Взято из Копилки идей
 
Mershik, спасибо большое, я честно говоря тоже ничего не понимаю.. вторая формула помогла, первая в рабочем файле почему-то так и не заработала..

Nordheim, спасибо! А не подскажете что это даст?
Календарь на стандартных элементах, Взято из Копилки идей
 
Товарищи, помогите пожалуйста разобраться с проблемой:
Вставил в книгу календарь, из древней темы https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=8&TID=36375 от разработчика Slan..
Все работает (Excel 2010, Win7, x64), но есть проблема с которой я никак не могу разобраться..
Календарь работает при помощи макроса
Дата вставляется в ячейки определенного столбца, и последнее значение идет дальше в работу..
Проблема заключается в том, что дата вставляется в иностранном формате месяц/день/год
А хотелось бы в нашем стандартном день.месяц.год
Этого удается достичь применяя формат ячеек "Общий" или "Дата".. но тогда формула ПРОСМОТР (неважно яяяя стоит или 9999) просто перестает воспринимать эти значения..
Если формат текстовый - то все работает, но в иностранном формате..

Пытался что-то найти в коде календаря (хоть что-то похожее на формат отображения) но потерпел полное фиаско..

Может быть кто-то поможет разобраться в данной проблеме?

Пример файла с календарем прилагаю..
Сдвиг по строкам блока (строк, ячеек) при заполнении таблицы
 
Я проверил, просто хотелось уточнить правильно ли я понял логику работы формулы в целом
Сдвиг по строкам блока (строк, ячеек) при заполнении таблицы
 
То есть мы берем диапазон (все строки листа Данные) это понятно..
Следующий аргумент - строка поиска..
Получается текущая строка (листа Форма где в данный момент выделена ячейка) минус СТРОКА 7 (на листе Форма, то есть строчки 1-6 мы в расчет не берем?) плюс СТРОКА 1 (на листе Данные это заголовок)
Следующий аргумент - столбец, ну тут понятно - 3 (третий)

То есть если выделена ячейка С12, то расчет такой - 12-7+1=6
И на листе Данные мы ищем значение на пересечении строки 6 и столбца 3?

И соответственно если тянуть формулу вниз, значение будет изменяться на +1 ?
Сдвиг по строкам блока (строк, ячеек) при заполнении таблицы
 
А можно для несведущих разобрать формулу?
Код
=ИНДЕКС(Данные!$1:$1048576;СТРОКА()-СТРОКА($7:$7)+СТРОКА(Данные!$1:$1);3)

С листа Данные берем какой-то диапазон? 1:104.. что это за числа?
Почему потом СТРОКА без индекса, а потом от неё отнимают сумму строк с индексами?
Столбец 3 - это я понял :)
Сдвиг по строкам блока (строк, ячеек) при заполнении таблицы
 
Цитата
JayBhagavan написал:
выделили добавленные строки и последнюю строку таблицы, нажали Ctrl+D
К сожалению пишет "ячейки должны иметь одинаковый размер"

Цитата
JayBhagavan написал:
Ваши ссылки пропустят 2ю строку исходных данных
И правда - спасибо, почитаю поподробнее про эту связку..


А формула для нахождения последней заполненной ячейки в диапазоне (с учетом того что в них формулы) только плана  ЧСТРОК()-СЧЁТЕСЛИ() получится? Я где-то на форуме видел обсуждение
Сдвиг по строкам блока (строк, ячеек) при заполнении таблицы
 
То есть кроме как вручную никак не получится?

А чем ИНДЕКС+ПОИСКПОЗ лучше чем было? Если не сложно, объясните пожалуйста
Сдвиг по строкам блока (строк, ячеек) при заполнении таблицы
 
Цитата
JayBhagavan написал:
показанная таблица - это результат, а источник
Так и есть, просто не думал что это нужно..

Прикладываю для полной картины происходящего..
Сдвиг по строкам блока (строк, ячеек) при заполнении таблицы
 
Сначала мысль была считать количество заполненных строк и каким-то образом отступив от них две вниз вставлять блок подписей, но не смог связать все это воедино :(
Можно конечно в ручном режиме копировать-вставлять после заполнения таблицы, или назначить макрос на копирование с другого листа, например, но опять же надо как-то выделять ячейку куда вставлять блок, а как в макросе прописать ЧСТРОК и СЧЁТЕСЛИ и прочее для вычисления я не знаю..
Опять же в таблице столбцы шириной миллиметр, а в подписях по-другому.. если просто вставлять - сломается..
Страницы: 1 2 След.
Наверх