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

Страницы: 1 2 След.
Как изменить текст в строке итогов?
 
Здравствуйте. Как изменить текст в строке итогов в гугл таблице? Я в редакторе сводной таблицы активирую галочку  Показывать итог, и мне выдает строку со словом Итого (и дальше столбцы с итогами).  Но нужно, чтобы вместо Итого было слово Результат. Как это реализовать? Отредактировать текст в ячейке, как обычно, не получается.
Изменено: Мария А - 18.11.2023 09:39:44
Копирование ячеек из таблицы без табуляции
 
Алексей Абраменко, теперь в числах слетели "0" после "/" (0 добавлялся, если в ячейке было значение наподобие "22/") и слетел формат даты. Копируется так:
Код
02.03.2023   Клиент1 1/1, Клиент2 1/, Клиент3 1/

А должно копироваться так:

Код
02.03 Клиент1 1/1, Клиент2 1/0, Клиент3 1/0

Табуляцию после даты убрать получилось, но при попытке поменять еще что-нибудь весь макрос перестал работать (руки-крюки у меня...).
И почему-то копируются только первые три столбца (Клиент1, Клиент2, Клиент3), а следующие игнорируются (Клиент4), хотя там есть непустая ячейка.
Изменено: Мария А - 13.05.2023 18:20:58
Копирование ячеек из таблицы без табуляции
 
Вроде написала то, что нужно. Но есть проблема: в этом макросе для того, чтобы все скопировалось правильно, надо  скопировать строки диапазоном - заголовки таблицы и следующие за ними  строки. А если попробовать выбрать заголовки и, например, не первую,  а третью строку, вообще ничего не копируется. Как это исправить?
Код
Sub CopyReports()
    Dim sText As String
    Dim rng As Range
    
    Set rng = Intersect(Selection, ActiveSheet.UsedRange)
    
    If Not rng Is Nothing Then
        sText = GetText(rng)
        CopyText sText ' Вывод в буфер обмена
        'SaveText sText ' Вывод в отдельный файл
        
        MsgBox "Отчет успешно скопирован!" , vbInformation
    Else
        MsgBox "Пожалуйста, выберите диапазон ячеек для копирования.", vbExclamation
    End If
End Sub

Private Sub SaveText(sText As String)
    ' Вывод в отдельный файл
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    Dim sFull As String
    sFull = ThisWorkbook.FullName & ".txt"
    
    With fso.CreateTextFile(sFull, True)
        .WriteLine sText
        .Close
    End With
    
    Shell "explorer.exe """ & sFull & """", 1
End Sub

Private Function GetText(rr As Range) As String
    Dim arr As Variant
    Dim txt As String
    Dim yy As Long
    Dim xx As Long
    Dim ra As Range
    Dim isFirstDate As Boolean
    Dim columnNames As Variant ' Массив с именами столбцов
     
    For Each ra In rr.Areas
        If ra.Cells.CountLarge = 1 Then
            ReDim arr(1 To 1, 1 To 1)
            arr(1, 1) = ra.value
        Else
            arr = ra.value
        End If
         
        ' Заполняем массив с именами столбцов
        ReDim columnNames(1 To UBound(arr, 2))
        For xx = 2 To UBound(arr, 2)
            columnNames(xx) = ra.Cells(1, xx).value
        Next xx
         
        isFirstDate = True
        For yy = 2 To UBound(arr, 1)
            If Not isFirstDate Then
                txt = txt & vbCrLf ' Перенос строки перед каждой датой
            Else
                isFirstDate = False
            End If
             
            ' Изменяем формат даты на "ДД.ММ"
            txt = txt & Format(arr(yy, 1), "dd.mm")
             
            For xx = 2 To UBound(arr, 2)
                Dim value As Variant
                value = arr(yy, xx)
                 
                ' Проверяем, является ли значение после "/" числом
                If InStr(1, value, "/") > 0 Then
                    Dim parts As Variant
                    parts = Split(value, "/")
                     
                    ' Проверяем, является ли вторая часть (после "/") числом
                    If IsNumeric(parts(1)) Then
                        ' Добавляем имя клиента и значение
                        txt = txt & " " & columnNames(xx) & " " & value & ","
                    Else
                        ' Добавляем имя клиента и значение с "0" в конце
                        txt = txt & " " & columnNames(xx) & " " & parts(0) & "/0" & ","
                    End If
                Else
                    If Not IsEmpty(value) Then
                        txt = txt & " " & value
                    End If
                End If
            Next xx
             
            ' Удаление лишней запятой в конце строки
            If Right(txt, 1) = "," Then
                txt = Left(txt, Len(txt) - 1)
            End If
        Next yy
    Next ra
     
    GetText = Trim(txt)
End Function


Sub CopyText(Text As String)
    'VBA Macro using late binding to copy text to clipboard.
    'By Justin Kay, 8/15/2014
    Dim MSForms_DataObject As Object
    Set MSForms_DataObject = 
CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    MSForms_DataObject.SetText Text
    MSForms_DataObject.PutInClipboard
    Set MSForms_DataObject = Nothing
End Sub
Изменено: Мария А - 13.05.2023 15:35:07
Копирование ячеек из таблицы без табуляции
 
Юрий, я пробовала это сделать до того, как написала сюда. ChatGPT уже сдался))) Чат по предложенной вами ссылке только ошибок в код добавил, но это я и без него могу))
Копирование ячеек из таблицы без табуляции
 
Здравствуйте. Есть сводная таблица (в приложенном файле это Лист3). По умолчанию все выбранные значения копируются с табуляцией:
Код
28.02.2023   1/2   1/1   
02.03.2023   1/1   1/   1/1
04.03.2023         1/   1/1

А нужно, чтобы они выборочно копировались (например, если строк в сводной таблицей 50, но выделены только строки 20, 30 и 40) и вставлялись в любое текстовое поле так:

Цитата

28.02 Клиент_1 1/2, Клиент_2 1/1
02.03 Клиент_1 1/1, Клиент_2 1/0, Клиент_3 1/1
04.03 Клиент_2 1/0, Клиент_3 1/1

Пробовала написать код по подобию того, который размещен на Листе1 - теперь копируется вот так:
Цитата
28.02 Клиент_1 1/1, Клиент_2 1/1,
02.03 Клиент_1 1/1, Клиент_2 1/, Клиент_3 1/1
04.03 Клиент_2 1/, Клиент_3 1/1

Есть две проблемы - лишние запятые в конце строк не нужны, и значения наподобие "1/0" отображаются как "1/". Как убрать лишнюю запятую в конце строк для решения первой проблемы, я так и не придумала... Для решения второй проблемы пробовала вставить фрагменты из кода, находящегося на Листе1, а именно "Проверяем, является ли значение после "/" числом" и "Проверяем, является ли вторая часть (после "/") числом". После этого перестали отображаться названия столбцов (Клиент_1, Клиент_2 и т.д.). Как это исправить?
Сам код Листа3:

Код
Sub CopyReport()
    Dim sText As String
    Dim rng As Range
    
    Set rng = Intersect(Selection, ActiveSheet.UsedRange)
    
    If Not rng Is Nothing Then
        sText = GetText(rng)
        CopyText sText ' Вывод в буфер обмена
        'SaveText sText ' Вывод в отдельный файл
        
        MsgBox "Отчет успешно скопирован!"
    Else
        MsgBox "Пожалуйста, выберите диапазон ячеек для копирования.", vbExclamation
    End If
End Sub

Private Sub SaveText(sText As String)
    ' Вывод в отдельный файл
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    Dim sFull As String
    sFull = ThisWorkbook.FullName & ".txt"
    
    With fso.CreateTextFile(sFull, True)
        .WriteLine sText
        .Close
    End With
    
    Shell "explorer.exe """ & sFull & """", 1
End Sub

Private Function GetText(rr As Range) As String
    Dim arr As Variant
    Dim txt As String
    Dim yy As Long
    Dim xx As Long
    Dim ra As Range
    Dim isFirstDate As Boolean
    
    For Each ra In rr.Areas
        If ra.Cells.CountLarge = 1 Then
            ReDim arr(1 To 1, 1 To 1)
            arr(1, 1) = ra.value
        Else
            arr = ra.value
        End If
        
        isFirstDate = True
        For yy = 1 To UBound(arr, 1)
            If Not isFirstDate Then
                txt = txt & vbCrLf
            Else
                isFirstDate = False
            End If
            
            ' Проверяем, является ли область таблицей2
            If ra.Columns.Count > 1 Then
                ' Обработка Таблицы2
                Dim dateValue As Variant
                dateValue = arr(yy, 1)
                
                txt = txt & Format(dateValue, "dd.mm") ' Дата
                
                For xx = 2 To UBound(arr, 2)
                    Dim value As Variant
                    value = arr(yy, xx)
                    
                    If Not IsEmpty(value) Then
                        Dim crmValue As Variant
                        crmValue = ra.Cells(1, xx).Offset(-1).value
                        
                        txt = txt & " " & crmValue & " " & IIf(value = 0, "0", Replace(value, ".", "/"))
                        If xx < UBound(arr, 2) Then
                            txt = txt & ","
                        End If
                    End If
                Next xx
            End If
        Next yy
    Next ra
    
    GetText = Trim(txt)
End Function

Sub CopyText(Text As String)
    'VBA Macro using late binding to copy text to clipboard.
    'By Justin Kay, 8/15/2014
    Dim MSForms_DataObject As Object
    Set MSForms_DataObject = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    MSForms_DataObject.SetText Text
    MSForms_DataObject.PutInClipboard
    Set MSForms_DataObject = Nothing
End Sub

Изменено: Мария А - 13.05.2023 00:16:59
Как переместить таблицу на другое место на листе?
 
Здравствуйте.
Есть документ с основной и сводной таблицами (в приложенном файле Лист1). Основная таблица находится на столбцах A, B, C, D, E. Сводная - на столбцах G, H. Хотела поменять их местами - переместить сводную на столбцы A, B, а основную переместить на столбцы E, F, G, H, I. В коде страницы и коде формы там, где указаны старые диапазоны, поменяла на соответствующие им новые. Название листа осталось прежним, названия таблиц тоже. Так у меня все макросы и формы посыпались. Форма то не видит названия столбцов, то заполняет ячейки вне таблицы, то выдает ошибки. Макросы с листа вообще перестали работать. Уже просто едет крыша...  Что я делаю не так?
Как копировать ячейки из таблицы без табуляции и одной строкой?
 
Все, вопрос снят. Поменяла эту часть макроса:
Код
Private Function GetText(rr As Range) As String
    Dim arr As Variant
    Dim txt As String
    Dim yy As Long
    Dim xx As Long
    Dim ra As Range
    Dim isFirstDate As Boolean
    
    For Each ra In rr.Areas
        If ra.Cells.CountLarge = 1 Then
            ReDim arr(1 To 1, 1 To 1)
            arr(1, 1) = ra.value
        Else
            arr = ra.value
        End If
        
        isFirstDate = True
        For yy = 1 To UBound(arr, 1)
            If Not isFirstDate Then
                txt = txt & ","
            Else
                isFirstDate = False
            End If
            
            ' Изменяем формат даты на "ДД.ММ"
            txt = txt & " " & Format(arr(yy, 1), "dd.mm")
            
            For xx = 2 To UBound(arr, 2)
                Dim value As Variant
                value = arr(yy, xx)
                
                ' Проверяем, является ли значение после "/" числом
                If InStr(1, value, "/") > 0 Then
                    Dim parts As Variant
                    parts = Split(value, "/")
                    
                    ' Проверяем, является ли вторая часть (после "/") числом
                    If IsNumeric(parts(1)) Then
                        txt = txt & " " & value
                    Else
                        txt = txt & " " & parts(0) & "/0"
                    End If
                Else
                    txt = txt & " " & value
                End If
            Next xx
        Next yy
    Next ra
    
    GetText = Trim(Mid(txt, 2))
End Function
Теперь строка отображается так, как и нужно было. МатросНаЗебре, большое спасибо за помощь!
Как копировать ячейки из таблицы без табуляции и одной строкой?
 
МатросНаЗебре, спасибо! Но есть проблема - дата вставляется не в формате ДД.ММ, а в формате "ДД.ММ.ГГГГ" (как в фильтре, который подчиняется другому макросу - тот ищет самую свежую дату в основной таблице и выбирает ее). И после даты почему-то тоже ставится запятая. Можно ли как-то отсечь часть ".ГГГГ,"?
Копируется так:
Код
04.03.2023, Клиент_1 1/1, Клиент_2 1/1, Клиент_3 1/1
А должно быть так:
Код
04.03 Клиент_1 1/1, Клиент_2 1/1, Клиент_3 1/1
Изменено: Мария А - 11.05.2023 18:08:55
Как копировать ячейки из таблицы без табуляции и одной строкой?
 
Цитата
написал:
Так можно выделять ячейку.
МатросНаЗебре, а что тогда здесь менять, чтобы просто копировалось в буфер обмена (без вставки в Блокнот)?
Как копировать ячейки из таблицы без табуляции и одной строкой?
 
Тимофеев, использовать определенные диапазоны - не вариант, т.к. там сводная таблица. В один день в ней может быть 4 строки, в другой - 20.
Как копировать ячейки из таблицы без табуляции и одной строкой?
 
МатросНаЗебре, это то, что нужно! Вопрос: а можно ли перед этим текстом, который появляется в Блокноте (или копируется в буфер обмена) как-то автоматически добавлять дату, указанную в фильтре сводной таблицы, в формате ДД.ММ? Если выбирать всю таблицу (кроме строки итогов) - получается такой текст:
Код
Отчет за смену 04.03.2023,  , Клиент Заказы, Клиент_1 1/2, Клиент_2 1/1, Клиент_3 1/1, Клиент_4 1/2,
А должно быть так:
Код
04.03 Клиент_1 1/2, Клиент_2 1/1, Клиент_3 1/1, Клиент_4 1/2
Пробовала вместе с выделенным диапазоном с данными выделить еще и ячейку с датой отдельно - выдает ошибку "Type mismatch".
Изменено: Мария А - 11.05.2023 16:31:30
Как копировать ячейки из таблицы без табуляции и одной строкой?
 
Здравствуйте.
Есть сводная таблица со столбцами "Клиент" и "Заказы" (в приложенном файле это таблица "Отчет за смену" на Листе1. Проблема: когда я пытаюсь скопировать эту таблицу в текстовое поле (например, в Блокнот), скопированное вставляется со знаками табуляции между значениями ячеек, и каждая строка сводной таблицы начинается с абзаца. Копируется и вставляется так:
Код
Клиент_1   1/2
Клиент_2   1/1
Клиент_3   1/1
Клиент_4   1/2
А нужно, чтобы копировалось и вставлялось в любое текстовое поле так:
Код
Клиент_1 1/2, Клиент_2 1/1, Клиент_3 1/1, Клиент_4 1/2
Возможно ли это реализовать?
Изменено: Мария А - 11.05.2023 15:22:49
Как объединить два итога в одном столбце сводной таблицы?
 
Дмитрий(The_Prist) Щербаков,  спасибо, помогло!
Изменено: Мария А - 03.04.2023 20:40:27
Как объединить два итога в одном столбце сводной таблицы?
 
Здравствуйте!

Есть сводная таблица (в прикрепленном файле Лист3). Нужно, чтобы итоги для строк писались в одном столбце, а не в двух. Т.е. вместо столбцов "Итог Всего" и "Итог Допы" должен быть столбец "Результат", в котором будет написаны числа "Итог Всего / Итог Допы" за каждую дату и в общем. Например, за 28.02 в столбце "Результат" должно быть "3/3", за 02.03 - "3/2", за 04.03 - "6/4", и в итоговой строке - "12/9". Как это реализовать?

Пробовала создать такую меру - выбивает ошибку, что формула недопустима:
Код
=COUNTX('Таблица1';'Таблица1'[Доп. продажи])+"/"+COUNTX('Таблица1';'Таблица1'[Сумма])
Как создать в Эксель кнопки-стрелки для прокрутки таблицы влево-вправо?
 
Ігор Гончаренко, а какие из них нужно назначать на кнопки - стрелки вправо-влево?
Изменено: Мария А - 24.03.2023 16:22:05
Как создать в Эксель кнопки-стрелки для прокрутки таблицы влево-вправо?
 
Здравствуйте! Есть документ Эксель с таблицей, где очень много столбцов (которые просто не помещаются на одном экране). Есть ли возможность перемещаться в крайний правый и крайний левый столбец таблицы с помощью макросов? Количество столбцов непостоянно, т.к. это сводная таблица - в один день может быть 20 столбцов, в другой 50. На листе уже есть кнопки вверх-вниз со следующими макросами:
Код
Sub TableDown()

Application.SendKeys ("^{END}") 'перемещает в низ таблицы

End Sub
Sub TableUp()

Application.SendKeys ("^{HOME}") 'перемещает в верх таблицы

End Sub
Есть ли возможность подобным образом реализовать прокрутку в левый и правый края таблицы?
Изменено: Мария А - 23.03.2023 22:18:08
Как разрешить вводить в TextBox только числа больше 0, в противном случае - делать автозамену?
 
Здравствуйте!
Есть пользовательская форма для заполнения таблицы. Нужно, чтобы в TextBox5 (например), вводились только числа и только больше 0. TextBox5 позволяет заполнить ячейку в столбце таблицы E (столбец 5). При нажатии кнопки "Добавить" (CommandButton1) должна выполняться проверка TextBox5 и добавляться новая строка со значениями из других полей (TextBox1, 2, 3 и т.д.). Если в TextBox5 введено 0 (именно 0, а не 100/200/300 и пр.), то новая строка должна добавляться с пустой ячейкой в столбце 5 (т.е. вместо значения "0" должно быть ""). Как это реализовать?
Изменено: Мария А - 10.03.2023 17:28:28
Как объединить два значения в форме в гиперссылку?
 
MikeVol, большое спасибо, это прямо то, что нужно! :*
Форма работает, вопросов больше не имею))
Изменено: Мария А - 07.03.2023 09:58:58
Как объединить два значения в форме в гиперссылку?
 
MikeVol, а есть вариант, чтобы два столбца со ссылками превращались просто в гиперссылки, без TextToDisplay? Чтобы для этого не заполнялись другие столбцы на листе? Мне очень понравилось, как работает макрос из сообщения #7, но хотелось бы, чтобы аналогичные действия выполнялись не только в столбце C, но и в столбце F
Как объединить два значения в форме в гиперссылку?
 
MikeVol, а как поменять столбец для ввода? По вашему коду только "Ссылка" вносится в колонку "Ссылка". В колонке "Документы" почему-то вставляется гиперссылка без ссылки, а сама гиперссылка через один столбец (в столбце H за пределами таблицы, хотя должна быть в столбце F). И то это копия гиперссылки из Ссылки, а не гиперссылка из Документов. Пробовала поменять rF на rE, rD (и диапазоны соответственно на E:E, D:D) - пишет "Variable not defined". Пробовала менять Cell.Offset(0,2) на Cell.Offset(0,0), чтобы изменения выполнялись в том же столбце - макрос вообще переставал работать на этом столбце (в гиперссылке в Документах оставалось только http://"
Изменено: Мария А - 06.03.2023 13:20:49
Как объединить два значения в форме в гиперссылку?
 
MikeVol, большое спасибо, работает!
Как объединить два значения в форме в гиперссылку?
 
Нашла вариант макроса со вставкой только ссылки:

Код
Private Sub Worksheet_Change(ByVal Target As Range)Dim cell As Range, ra As Range    Application.ScreenUpdating = False
    Set ra = Range([C2], Range("C" & Rows.Count).End(xlUp))
For Each cell In ra.Cells
    If Len(cell) Then
    cell.Hyperlinks.Add cell, cell
End If    
Next cell
    Application.ScreenUpdating = True
End Sub

Есть два вопроса. Первый: возможно ли тут добавление TextToDisplay, и если да, то как это сделать? Второй: как сделать такой же макрос на этот же лист, но для столбца F? Два макроса подряд и третий с "Call Макрос1, Call Макрос2" не прокатили.
Как объединить два значения в форме в гиперссылку?
 
Пытливый,
Цитата
написал:
Разберитесь с синтаксисом сначала, что должно быть какого типа на каком месте - это подробно в справке описано.
Эту часть кода я пыталась написать сама, перед этим полдня "курила" справку...((
Итог - наглядная демонстрация моих рук из ..., которую вы наблюдали в этом коде
Цитата
написал:
("C:C")  - это объект?
Я не знаю, как указать объект, если здесь таблица, а не просто ячейка. По идее, Anchor макрос должен брать из пересечения столбца C и строки, которую только что добавила форма. Пробовала написать "[Ссылка]", пробовала "Лист2!Таблица2[Ссылка]" - Эксель в ответ ругается и сыпет ошибками.
Цитата
написал:
Ещё, как вариант, включите макрорекордер, добавьте гиперссылку руками, потом разберитесь с кодом как какой параметр задается
Пробовала добавить ссылку через форму. Потом ПКМ - Ссылка... Эксель эту добавленную ссылку распознает как Текст. Т.е. надо вырезать и вставлять ее в Адрес и в Тексте писать вручную "Клиент4 - рабочий сайт". В получившемся макросе пробовала менять "Клиент4" на TextBox2.Value & " - рабочий сайт" - макрос ругается на синтаксис
Как объединить два значения в форме в гиперссылку?
 
Пытливый, выбивает ошибку "Member or data member not found. И выделяет ".Range"
*может, я изначально выбрала неправильный метод, и здесь нужен не Hyperlinks.Add?.. тогда буду благодарна за пинок в нужном направлении
Изменено: Мария А - 05.03.2023 17:14:25
Как объединить два значения в форме в гиперссылку?
 
Здравствуйте!
Есть пользовательская форма. В прикрепленном примере - Лист2. Нужно сделать так, чтобы в поле Ссылка нужно было вводить только ссылку, но в таблицу она добавлялась уже как гиперссылка с заданным именем. Например, если добавляем Клиента4 (TextBox2) и его ссылку www.example.com (TextBox3), в столбце Ссылка должна появиться гиперссылка с адресом www.example.com и именем "Клиент4 - рабочий сайт". Часть имени " - рабочий сайт" должна добавляться автоматически, она постоянная для всех клиентов. Я знаю, как это делать вручную в ячейках формулой ГИПЕРССЫЛКА или через ПКМ - "Ссылка". Но как сделать так, чтобы форма автоматически создавала такие гиперссылки?..

Пробовала добавить в код формы перед "End if" это - выбивает ошибку.
Код
With Worksheets
    .Hyperlinks.Add Anchor:=.Range("C:C"), _
    Address:=TextBox3.Value, _
    TextToDisplay:="TextBox2.Value - рабочий сайт"
End With
Изменено: Мария А - 05.03.2023 15:36:21
Как заполнить значениями ComboBox в форме?
 
MikeVol, большое спасибо за помощь!
Как заставить таблицу при работе с формой заполняться в фоновом режиме?
 
Здравствуйте!
На двух листах есть две таблицы - Таблица1 и Таблица2. Каждая заполняется с помощью соответствующих пользовательских форм (кнопки для перехода на них есть на листах). Отличие таблиц в том, что в Таблице1 еще с помощью макроса происходит автоматическое заполнение даты при заполнении номера заказа. Код Листа1:
Код
'Макрос1 - автозаполнение Даты при добавлении информации в Номер заказа
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim WorkRng As Range
    Dim Rng As Range
    Dim xOffsetColumn As Integer
    Application.ScreenUpdating = False
    Set WorkRng = Intersect(Лист1.Range("C:C"), Target)
    xOffsetColumn = -1
    If Not WorkRng Is Nothing Then
        Application.EnableEvents = False
        For Each Rng In WorkRng
            If Not VBA.IsEmpty(Rng.Value) Then
                Rng.Offset(0, xOffsetColumn).Value = VBA.Date
                Rng.Offset(0, xOffsetColumn).NumberFormat = "DD.MM.YYYY"
            Else
                Rng.Offset(0, xOffsetColumn).ClearContents
            End If
        Next
        Application.EnableEvents = True
    End If
End Sub

'Макрос2 - показ пользовательской формы
Sub UserFormShow()
    UserForm1.Show
End Sub

'Макрос3 - автоматическая вставка максимальной даты в фильтр СводнойТаблицы1 (находится рядом на том же листе)
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    Dim oTbl As ListObject, maxdate As Date
    Set oTbl = ThisWorkbook.Worksheets("Лист1").ListObjects("Таблица1")
    maxdate = Application.Max(oTbl.ListColumns("Дата").Range)
    Application.EnableEvents = False
    Target.PivotFields("[Таблица1].[Дата].[Дата]").ClearAllFilters
    Target.PivotFields("[Таблица1].[Дата].[Дата]").CurrentPageName = "[Таблица1].[Дата].&[" & Format(maxdate, "YYYY-MM-DD") & "T00:00:00]"
    Application.EnableEvents = True
End Sub

На Листе2 - только Макрос2 для UserForm2

Проблема - Таблица1 не заполняется одновременно с добавлением информации в Форму1. Когда заполняю Таблицу2 через Форму2, я вижу, как одновременно  с заполнением полей в форме заполняются и ячейки в таблице. В случае с Таблицей1 я могу, как и там, добавить несколько записей подряд, но в Таблице1 они отображаются только после выхода из Формы1. Вопрос: можно ли сделать так, чтобы Таблица1 заполнялась постепенно при добавлении информации в каждую ячейку, как Таблица2? И при этом не затрагивалась работа Макроса3

Изменено: Мария А - 04.03.2023 12:29:17
Как заполнить значениями ComboBox в форме?
 
MikeVol, спасибо! Методом тыка выяснила, что вместо "ИмяВашегоЛиста" надо ставить лист, где находится диапазон для комбобокса, а не основная таблица. В моем случае это Лист2. И спасибо за ликбез))
Как заполнить значениями ComboBox в форме?
 
MikeVol, с Кариной (?..) не знакома точно.
Просто не очень поняла, как работать с вашим кодом.
Лист1 - здесь находится таблица со списком заказов, Таблица1. Лист2 - здесь находится таблица со списком клиентов, Таблица2. Именно таблица, диапазон указывать не вариант, т.к. в любой момент туда может быть добавлен клиент (не хотелось бы каждый раз лезть в код после добавления).
Цитата
написал:
ThisWorkbook.Sheets("ИмяВашегоЛиста")
Сюда пишу "Лист1" (наверное...)
Цитата
написал:
Range("A2:L"
Как здесь оформить именно колонку таблицы, находящейся на Листе2? Пробовала Range ("Лист2!Таблица2[Клиент]") - выдавало ошибку.
Извините за дурацкие вопросы, просто я в этой теме полный чайник и пытаюсь разобраться, как такие формы пишутся и как работают. Видео с Ютуба не особо помогают с моими кривыми руками
Как заполнить значениями ComboBox в форме?
 
MikeVol, я пыталась использовать такой вариант. Но как быть, если диапазон находится на другом листе и в отдельной таблице? Как его оформлять?.. Вариант ("Лист2!Таблица2[Клиент]") у меня не прошел, выбивало ошибку. Вариант с ListObject, который предложил Behruz A.N., будет более удобным
Изменено: Мария А - 03.03.2023 21:13:04
Страницы: 1 2 След.
Наверх