Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 44 След.
Точки как граница ячеек по умолчанию. Как избавиться?
 
А если обновить стили?
Код
Sub Reset_Styles()
    'удаляем все лишние стили
    For Each objStyle In ActiveWorkbook.Styles
        On Error Resume Next
        If Not objStyle.BuiltIn Then objStyle.Delete
        On Error GoTo 0
    Next objStyle
    'копируем стандартный набор стилей из новой книги
    Set wbMy = ActiveWorkbook
    Set wbNew = Workbooks.Add
    wbMy.Styles.Merge wbNew
    wbNew.Close savechanges:=False
End Sub

Код взят отсюда: http://www.planetaexcel.ru/techniques/9/211/
Точки как граница ячеек по умолчанию. Как избавиться?
 
Удалите все секретные данные из файла и выложите файл сюда (не более 300кб)
Формы выдает ошибку при переносе данных из textbox в ячейки
 
А если написать просто ActiveCell.Value = CDbl(Me.TextBox3)  ?
Изменено: New - 17 сен 2020 23:48:54
Объединить массив ячеек с данными в одну
 
gling,чуть-чуть не дотянули формулу
Код
=СцепитьЕсли($D$2:$D$35;J2&K2;$C$2:$C$36;", ")

Вместо 35 надо 36
и в остальных ячейках так же
Нужно ли отключение экрана/ событий и т.д., если приложение скрыто?
 
Ну, автор спрашивал влияет ли строка
Application.Visible = False
на быстроту работы макроса.
Мой тест показывает, что не влияет.

ps. Конечно можно увеличить скорость - заполнить массив и выгрузить его на лист. Только это к вопросу ТС не имеет отношения
Нужно ли отключение экрана/ событий и т.д., если приложение скрыто?
 
Application.Visible = False есть во 2м коде (а в первом нет его), а время выполнения 1-го и 2-го кода одинаковое - какой вывод можно сделать?

p.s. вы спрашиваете вопросы на форуме, которые сами можете протестировать на своем компьютере, в примере кода я показал, что это очень не сложно.
Изменено: New - 17 сен 2020 10:33:46
Помогите. Нужно написать "код - дание" в ячейку, и сответственно от етого появиться значение в строках (пример додаю)
 
Солидарен )
Помогите. Нужно написать "код - дание" в ячейку, и сответственно от етого появиться значение в строках (пример додаю)
 
Лучше уж на English, тут я всё пойму
Помогите. Нужно написать "код - дание" в ячейку, и сответственно от етого появиться значение в строках (пример додаю)
 
Не, давайте без украинского, я в нём ничего не понимаю
Нужно ли отключение экрана/ событий и т.д., если приложение скрыто?
 
Каждый останется при своём мнении.

P.S. Я тут как-то коллеге (мужчине 40 лет) 30 минут объяснял код (цикл)

Код
For i=1 to 100
     Cells(i,1) = 5
Next i

Он его не понял. У меня 2 высших педагогических образования  
Изменено: New - 16 сен 2020 17:52:57
Нужно ли отключение экрана/ событий и т.д., если приложение скрыто?
 
Не хочу, так как ТС новичок в VBA и ничего не поймёт из общего одного макроса и ТС не знает про Debug.Print и где его смотреть.
Я не люблю для новичков писать сложные макросы, в которых они ничего не поймут.
Если бы я писал код для вас, чтобы что-то обсудить с вами, то да. Всё логично. Но для новичка не подойдёт.

P.S. Тут постоянно приходят новички, выкладывают вот такой "урезанный/сокращённый" код и просят что-то в нём подправить и я понимаю, что какой-то профессионал с нашего форума его написал, но для ТС он вообще не понятен и он не может в нём разобраться и подправить самостоятельно код. Я стараюсь для новичков в VBA писать код более расширено и подробно, путь даже будет медленнее работать, но ТС сам сможет через месяц зайти в него и подправить под свои нужны. Чем быстро - но через месяц ТС придёт, выложит код на форум и скажет - а как тут поменять столбец в коде?
Изменено: New - 16 сен 2020 17:48:43
Помогите. Нужно написать "код - дание" в ячейку, и сответственно от етого появиться значение в строках (пример додаю)
 
см. файл
1. В ячейку H15 вставляете формулу: =ВПР(G15;A:B;2;0)
2. В ячейку I15 вставляете формулу: =ВПР(G15;A:C;3;0)
3. В ячейку G15 пишите: апостроф 0 0 2 , то есть вот так '002

P.S. Не понял, что такое "дание", "додаю"
Изменено: New - 16 сен 2020 17:38:08
Переместить столбец с первой до последней заполненной строки
 
Код
Sub test5()
Dim LastRow As Long
    LastRow = Cells(Rows.Count, "A").End(xlUp).Row
    Range("A1:A" & LastRow).Copy Range("B1") 'копируем формулы и форматы
End Sub

Только значения
Код
Sub test6()
Dim LastRow As Long
    LastRow = Cells(Rows.Count, "A").End(xlUp).Row
    Range("A1:A" & LastRow).Copy
    Range("B1").PasteSpecial xlValues 'только значения
End Sub
Изменено: New - 16 сен 2020 17:30:56
Нужно ли отключение экрана/ событий и т.д., если приложение скрыто?
 
Какой вариант быстрее всего? У меня 10-9-6

Код
Sub test1()
Dim i As Long
Dim Start As Single

    Start = Timer
    
    For i = 1 To 500000
        Cells(i, 1) = i
    Next i
    
    MsgBox "Затрачено времени: " & Format((Timer - Start) / 24 / 60 / 60, "nn:ss"), vbInformation, "Конец"
End Sub
Код
Sub test2()
Dim i As Long
Dim Start As Single

    Start = Timer
    Application.Visible = False

    For i = 1 To 500000
        Cells(i, 1) = i
    Next i
    
    Application.Visible = True
    MsgBox "Затрачено времени: " & Format((Timer - Start) / 24 / 60 / 60, "nn:ss"), vbInformation, "Конец"
End Sub
Код
Sub test3()
Dim i As Long
Dim Start As Single

    Start = Timer
    
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With
    
    For i = 1 To 500000
        Cells(i, 1) = i
    Next i
    
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
    End With
    
    MsgBox "Затрачено времени: " & Format((Timer - Start) / 24 / 60 / 60, "nn:ss"), vbInformation, "Конец"
End Sub
Изменено: New - 16 сен 2020 17:00:37
Нужно ли отключение экрана/ событий и т.д., если приложение скрыто?
 
Хуже не будет, если укажете.
EnableEvents - мне кажется всё равно будет работать. Попробуйте сделать Worksheets(1).delete - если выскочит уведомление об удаление листа, то значит События работают

P.S. Я бы отключал всё
Изменено: New - 16 сен 2020 16:21:04
Не работает простой фильтр
 
Код
Sub Запись_фильтр()
    Dim DateOne As Date

    iDateOne = "09.09.2020"
    
    With ActiveSheet
        If .FilterMode = True Then .ShowAllData
        .ListObjects("Таблица1").Range.AutoFilter Field:=1, Criteria1:=">" & Format(iDateOne, "#")
    End With
End Sub
Изменено: New - 16 сен 2020 16:09:50
VBA. Как исправить ошибку Run-time error '1004' Application-defined or object-defined error
 
Переустановите офис
Настройка диалогового окна с выпадающим списком, Настройка диалогового окна с выпадающим списком с подтягиванием значений на основе выбранного элемента
 
см. файл

Код
Private Sub ComboBox1_Change()Dim Surname As String
Dim arrData
Dim i As Long

    If Me.ComboBox1.Value <> "" Then
        Surname = Me.ComboBox1.Value
    Else
        Me.TextBox1.Text = ""
        Me.TextBox2.Text = ""
    End If
        
    arrData = Worksheets("Лист1").Range("A1").CurrentRegion.Value
    For i = 1 To UBound(arrData)
        If arrData(i, 1) = Surname Then
            Me.TextBox1.Text = arrData(i, 2) 'Имя
            Me.TextBox2.Text = arrData(i, 3) 'Отчество
            Exit For
        End If
    Next i
End Sub
Изменено: New - 15 сен 2020 19:32:02
Применение параметра Delimiter для файлов*.csv
 
спасибо, посмотрю
Применение параметра Delimiter для файлов*.csv
 
давай попробую, хоть я в CSV не очень разбираюсь. Дай ссылку я попробую. А что надо просто в Excel загнать файл или что-то ещё?
Применение параметра Delimiter для файлов*.csv
 
Хм, всего 21000 строк. Странно что макросом не удалось. Эх.. придётся нам с тобой PQ учить (( ... а потом PP, BI, DAX....
Изменено: New - 15 сен 2020 19:16:37
Применение параметра Delimiter для файлов*.csv
 
Цитата
Hugo написал:
А лучше PQ!
Игорь! Это что за бунт на корабле? )) Неужели ты хочешь променять наш с тобой любимый VBA на PQ!!! Что за измена Родины?))
Изменено: New - 15 сен 2020 19:12:13
Автоматическое генерирование номера заявки при вводе данных UserForm
 
См. файл
Нумерация актов по порядку на разных листах, Нумерация ячеек
 
См. файл
Сейчас макрос выводить общую сумму всех актов. А как вы хотите, чтобы макрос показал сумму каждого Акта?
Это тогда на лист куда-то надо сумму каждого акта выгружать.
Изменено: New - 15 сен 2020 19:05:18
Автоматическое генерирование номера заявки при вводе данных UserForm
 
Анастасия... Форма у вас красивая получилось...
Советы:
1. Заголовок формы лучше заменить. Сейчас у вас это UserForm4 (изменить можно в свойствах или так в модуле формы Me.Caption = "Добавление заявок")
2. Вот такие строки в коде желательно удалять - это вы записывали код макрорекордером и делали скроллинг колёсиком мышки по листу вверх-вниз. Они не нужны в коде
Код
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 8

3. Объявление "Option Explicit" должно быть указано самой первой строкой в модуле

4. В коде лучше не использовать TextBox1, TextBox2, TextBox3 - вы не знаете что это такое (неосмысленные название контролов). Поменяйте название, например, на такое
TextBox1 замените название на TextBox_GPNomer
TextBox2 замените название на TextBox_Zakazchik
TextBox3 замените на TextBox_Address
и т.д

5. В коде с данными на листе лучше работать вот так
Код
    With Worksheets("Управление")
         'тут считываете и записываете данные на лист. Но обязательно нужно ставить точку перед адресом ячейки
         iLastRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1 'вот тут стоит точно перед Cells 
   End With

Ответ на ваш вопрос - я предлагаю такой

Код
Private Sub UserForm_Initialize()
    Dim iLastRow As Long
    Dim LastGPNumber As String, NewGPNumber As String
       
    With Worksheets("Управление")
        iLastRow = .Cells(Rows.Count, 2).End(xlUp).Row + 1
        LastGPNumber = .Cells(iLastRow - 2, 2) 'последний записанный номер Серии ГП
    End With
    
    NewGPNumber = CLng(Split(LastGPNumber, "-")(1)) + 1 'выдёргиваем цифру номера и прибавляем 1 к номеру
    NewGPNumber = Format(NewGPNumber, "01-00000") 'форматируем новый номер в нужном вам формате
    Me.TextBox1.Text = NewGPNumber 'подставляем новый номер в Форму

End Sub
Изменено: New - 15 сен 2020 21:31:24
Найти текст (отдельные буквы) среди множества ячеек в строке
 
Эх, был бы от вас пример в Excel файле, можно было бы написать макрос для вас... Нажимаете кнопочку и нужном вам столбце будут ваши буквы, а так ....

P.S. А у вас буквы могут быть внутри цифр? Например, 09492а040230 - так ? Нужно достать эту букву "а" ?
Изменено: New - 15 сен 2020 13:41:49
Нумерация актов по порядку на разных листах, Нумерация ячеек
 
См. файл
UserForm имя нажатой кнопки
 
ещё иногда используют свойство Tag у кнопки, записывая туда название кнопки
Почему в VBA ThisWorkbook.Name воспринимается как переменная.
 
Код
= "=VLOOKUP(RC[-1],'[" & ThisWorkbook.Name & "]E-mail'!C1:C2,2,0)"
Копировать текст и вставить в другую ячейку (в конец), в которой уже есть текст, команды макроса
 
Код
'скопировать текст активной ячейки
str = activecell.value
'переносим текст в ячейку С2
[c2] = [c2] & " " & str
Изменено: New - 11 сен 2020 16:57:50
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 44 След.
Наверх