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

Страницы: 1
VBA - ввод в TextBox только цифр
 
Цитата
написал:
SlA_pls, почитайте пожалуйста  здесь

Спасибо большое!
VBA - ввод в TextBox только цифр
 
Всем привет!
Столкнулся с такой же проблемой, но с одной оговоркой. Если у меня на UserForm изначально нет TextBox и макрос динамически добавляет текст боксы на форму, куда вставить этот код, чтобы он при клике на эти новые текстовые поля срабатывал, уже все перепробовал. Вот так создаю текст бокс и он не реагирует на макрос, который здесь был описан, т.к. фактически он не находит никакого TextBox1, хотя их может быть 1 или несколько, в общем, динамично. Файл приложить не могу, к сожалению
Код
        Set tb(i) = ConertUnit.Controls.Add("forms.textbox.1")
                With tb(i)
                        .BackColor = &H80000005
                        .BackStyle = 1
                        .BorderStyle = 0
                        .ForeColor = &H80000008
                        .TextAlign = 2
                        .Font.Size = 10
                        .Font.Bold = True
                        .Font.Name = "Tahoma"
                        .Top = i * 10 + (i - 1) * 20 'От верхней границы границы формы
                        .Left = 86
                        .Height = 18
                        .Width = 78
                End With
Перевод даты из формата текстового значения в формат даты VBA
 
Можно просто выделить столбец и нажать "Данные" -> "Текст по столбцам" и готово =) Горячими клавишами очень удобно
Изменение связей источник Excel
 

Есть дополнительное готовое решение для замены связи в Pptm, запускаете макрос, выдает диалоговое окно со связью, которую будете менять, далее попросить выбрать файл, на который вы произведете замену и так для всех связей в презентации. Работает при условии, что все связи возможно заменить из указанных файлов, а также, желательно переименовать новые файлы, на которые будет ссылаться презентация.

P.S.: Если кто-то знает, как ускорить работу этого кода (работает на 200 слайдах) или как избежать ошибки при связях на не существующие книги, буду благодарен!

Код
Public Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
    Dim i
    For i = LBound(arr) To UBound(arr)
        If arr(i) = stringToBeFound Then
            IsInArray = True
            Exit Function
        End If
    Next i
    IsInArray = False
    
End Function

Sub changeLinkTargets()
Application.DisplayAlerts = False


Dim pptSlide As Slide
Dim pptShape As Shape
Dim oldlinks(10) As String
Dim newlinks(10) As String
Dim temp As String
Dim counter As Integer
counter = 0



For Each pptSlide In ActivePresentation.Slides
    For Each pptShape In pptSlide.Shapes
        If pptShape.Type = msoLinkedOLEObject Or pptShape.Type = msoLinkedPicture Then
            With pptShape.LinkFormat
                 
                        temp = Left(.SourceFullName, InStr(.SourceFullName, "!") - 1)
                   
                  If Not IsInArray(temp, oldlinks) Then
                    oldlinks(counter) = temp
                    counter = counter + 1
                End If
            End With
        End If
    'DoEvents
    Next pptShape
'DoEvents
Next pptSlide


Dim fd As FileDialog
Dim fullpath As String
Dim fileselected As Variant




Set fd = Application.FileDialog(msoFileDialogOpen)




For i = 0 To counter - 1
    MsgBox (oldlinks(i))
    With fd

    .AllowMultiSelect = False
    .Show
        
    newlinks(i) = .SelectedItems.Item(1)

    End With
    


    
    For Each pptSlide In ActivePresentation.Slides
        For Each pptShape In pptSlide.Shapes
            If pptShape.Type = msoLinkedOLEObject Or pptShape.Type = msoLinkedPicture Then
                With pptShape.LinkFormat
                
                    If InStr(1, UCase(.SourceFullName), UCase(oldlinks(i))) Then
                        .SourceFullName = Replace(.SourceFullName, oldlinks(i), newlinks(i))
                    End If
                End With
            End If
        'DoEvents
        Next pptShape
    'DoEvents
    Next pptSlide
Next i

MsgBox ("Ура, сработало!")

End Sub


'Эта часть кода обновляет данные на слайдах после замены связей
Sub UpdateLinkTargets()
Dim pptSlide As Slide
Dim pptShape As Shape

For Each pptSlide In ActivePresentation.Slides
    For Each pptShape In pptSlide.Shapes
        If pptShape.Type = msoLinkedOLEObject Or pptShape.Type = msoLinkedPicture Then
            With pptShape.LinkFormat
               .Update
            End With
        End If

    'DoEvents
    Next pptShape
'DoEvents
Next pptSlide

MsgBox ("Ура, сработало!")
End Sub
Сравнение ячеек по цвету шрифта VBA, Помогите, пожалуйста, написать на VBA функцию для сравнения ячеек по цвету шрифта
 
Добрый день!
Подскажите, возможно ли прописать функцию на VBA, которая будет сравнивать ячейки по цвету шрифта, чтобы её можно было вызвать из ячейки (по подобию RegExp)?
К примеру, мне нужно сравнить 2 ячейки с отклонениями, в одной значение выделено зеленым шрифтом, а в другой красным. Нужно, чтобы при сравнении выдавалось значение ИСТИНА/ЛОЖЬ, если цвет шрифта одинаковый/различается
Добавить вычисляемое поле в сводной таблице, которая ссылается только на текст
 
Смотрите, хотелось бы получить например долю С в А, грубо говоря, разделить столбец С в сводной таблице на А и получить долю, но при вычислении выскакивает #ДЕЛ/0, задал как раз этот вопрос, чтобы не грузить таблицы дополнительными столбцами, условно, можно добавить столбцы и проставить для А и для Б, к примеру, 1 и посчитать сумму, тогда вычисления работают, но это не подходит, т.к. придется добавлять кучу таких столбцов(
В файле пример (цветная таблица), есть ли возможность как-то обойти эти махинации?
Добавить вычисляемое поле в сводной таблице, которая ссылается только на текст
 
Добрый день!
Подскажите, можно ли как-то добавить вычисляемое поле в сводной таблице, которая ссылается только на текст?
Количество по одному полю поделить на количество по другому полю например?
Ошибка #ДЕЛ/0! в вычисляемом поле сводной таблице, при попытке вычислить процентное соотношение
 
Цитата
Дмитрий Щербаков написал:
А Вы не пробовали смотреть, какого типа данные у Вас с исходнике? Там же сплошь текст.
Дмитрий, сводная таблица не может производить вычисления, если данные текстовые? Грубо говоря, если я хочу количество по одному полю поделить на количество по другому полю, если в этих полях считается количество заполненных ячеек с текстом?
Страницы: 1
Наверх