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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 273 След.
Разбивка файла на несколько по условию
 
Цитата
не сохраняет ширину столбцов
При копировании используйте
Код
PasteSpecial xlPasteColumnWidths
Генерация и сохранение QR кода
 
Цитата
Когда перенес это на новый компьютер
Какие версии Excel используются на обоих компьютерах?
Как убрать отмеченные радио-кнопки и checkbox, Как с помощью VB убрать с листа отмеченные радио-кнопки
 
У вас присутствуют на листе Group Box, Option Button, Check Box
Убрать Check Box
Код
Sub ClearForm()
 Dim ws As Worksheet
 Dim sh As Shape
    Set ws = ThisWorkbook.Sheets("start")
    For Each sh In ActiveSheet.Shapes
       If sh.Name Like "Check Box *" Then
            sh.Delete
        End If
    Next sh
End Sub
Изменено: Kuzmich - 01.04.2025 22:44:33
Как скопировать значение без правил условного форматирования.
 
Цитата
Где копать?
PasteSpecial
Как сделать чтобы с календарем вносилось и время
 
Задайте вопрос автору
' Module        : Date_and_Time
' Автор     : EducatedFool  (Игорь)                    Дата: 30.06.2010
' Разработка макросов для Excel, Word, CorelDRAW. Быстро, профессионально, недорого.
' http://excelvba.ru/          ICQ: 5836318           Skype: ExcelVBA.ru
выделение строк при форматировании ячейки макросом
 
Если нужно при
Цитата
при переходе в любые другие ячейки не из ст.Р,
убирать выделение, то добавьте строки
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub 'выделено больше одной ячейки
  If Not Intersect(Target, Columns("P")) Is Nothing Then
    Cells.Interior.ColorIndex = xlColorIndexNone
    Range(Cells(Target.Row, 1), Cells(Target.Row, 30)).Interior.Color = RGB(234, 244, 234) 'светло-зеленый
  Else
    Cells.Interior.ColorIndex = xlColorIndexNone
  End If
End Sub
выделение строк при форматировании ячейки макросом
 
Цитата
он не очищает за собой ранее выделенные строки.
Вставьте строку
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub 'выделено больше одной ячейки
  If Not Intersect(Target, Columns("P")) Is Nothing Then
    Cells.Interior.ColorIndex = xlColorIndexNone
    Range(Cells(Target.Row, 1), Cells(Target.Row, 30)).Interior.Color = RGB(234, 244, 234) 'светло-зеленый
  End If
End Sub

Удачи!
выделение строк при форматировании ячейки макросом
 
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub 'выделено больше одной ячейки
  If Not Intersect(Target, Columns("P")) Is Nothing Then
    Range(Cells(Target.Row, 1), Cells(Target.Row, 30)).Interior.Color = RGB(234, 244, 234) 'светло-зеленый
  End If
End Sub
выделение строк при форматировании ячейки макросом
 
Цитата
только при перемещении по ячейкам из столбца P, а не по всем ячейкам листа.
Код
If Target.Cells.Count > 1 Then Exit Sub 'выделено больше одной ячейки
    If Not Intersect(Target, Columns("P")) Is Nothing Then

Цитата
Только первые 30 ячеек строки
Код
Range(Cells(Target.Row,1), Cells(Target.Row,30)).Interior.Color = RGB(234, 244, 234) 'светло-зеленый
Поиск данных в контексте, Как найти точные данные находящиеся в масиве?
 
Цитата
вытащить цену со второго листа исходя из VIN на первом
При активном листе Лист2
Код
Sub ifound()
Dim FoundCell As Range
Dim List1 As Worksheet
Dim Tsena As Double
Set List1 = ThisWorkbook.Worksheets("Лист1")
    Set FoundCell = Columns("A").Find(List1.Range("E4"), , xlValues, xlPart)
    List1.Range("S4") = Cells(FoundCell.Row, "L")
    MsgBox "Значение VIN " & List1.Range("E4") & " находится в строке: " & FoundCell.Row
End Sub
суммировать данные из нескольких выпадающих списков в одной ячейке
 
=СЧЁТЕСЛИ($B$3:$L$13;"Минус")
Проверка наличия пароля книги., Макрос должен проверять есть ли пароль на открытие книги (после того как книгу уже открыли)
 
А так
Код
If ActiveWorkbookt.ProtectContents = True Then
Удалить последние скобки с содержанием
 
UDF
Код
Function LastSkobki(cell$) As String
Dim mo As Object
Dim n As Integer
 With CreateObject("VBScript.RegExp")
   .Global = True
   .Pattern = "\((.+?)\)"
   Set mo = .Execute(cell)
     LastSkobki = Replace(cell, mo(mo.Count - 1), "")
 End With
End Function
Помогите переделать полное ФИО в инициалы
 
UDF
Код
'Иванов Иван Иванович               Выделить И.О.Фамилия
Function iFIO(cell As String) As String
 With CreateObject("VBScript.RegExp")
     .Global = True
     .IgnoreCase = False
     .Pattern = "([А-ЯЁ][а-яё ]+)([А-ЯЁ])[а-яё ]+([А-ЯЁ])[а-яё ]+"
     If .test(cell) Then
       iFIO = .Replace(cell, "$2.$3. $1")
     End If
 End With
End Function
Поиск определенной группы чисел и копирование в соседнюю ячейку
 
=ПСТР(F1;7;6)
Квк сохранить картинку в Excel на листе
 
Цитата
как сделать так, чтобы картинка сохранялась на листе?
Попробуйте заменить
Код
ActiveSheet.Pictures.Insert

на
Код
ActiveSheet.Pictures.Add
Как сделать автоматическую ширину в последней колонке
 
Код
Columns(iLastCol).AutoFit
Как сделать автоматическую ширину в последней колонке
 
Цитата
но показывает ошибку
Переменная не определена
Как сделать автоматическую ширину в последней колонке
 
Конечно!
Как сделать автоматическую ширину в последней колонке
 
добавьте в код
Код
Cells(4, iLastCol).EntireColumn.AutoFit
Изменено: Kuzmich - 25.01.2025 16:06:15
Как сделать автоматическую ширину в последней колонке
 
У вас по 4-ой строке
Код
Dim iLastCol As Integer
iLastCol = Cells(4 , Columns.Count).End(xlToLeft).Column
Вставка даты введя только день месяца
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
If Target.Count > 1 Then Exit Sub
  If Target.Value > 0 And Target.Value < =31 Then
    Target = DateSerial(Year(Now), Month(Now), Target)
    Target.NumberFormat = "dd.mm.yyyy"
  Else
    Target = ""
  End If
      Application.EnableEvents = True
End Sub
Изменено: Kuzmich - 23.01.2025 22:24:24
Замена формул значениями в определенном массиве по заданным параметрам VBA, Найти определенный массив и заменить в нем формулы значениями
 
Может это поможет https://www.planetaexcel.ru/techniques/25/215/
Запись каждой строки в отдельный файл
 
Кросс http://www.excelworld.ru/forum/10-54109-1
Разнесение данных с сводных таблиц по отдельным документам
 
Thadeus, написал
Цитата
Да, это так, их более 200..., работа хоть и разовая, но будет выполнятся каждый год и с новыми сводными таблицами. Первый раз с подобной обработкой информации столкнулся, поэтому пытаюсь по возможности как-то автоматизировать процесс.
Посмотрите в файле Образец я написал макрос, позволяющий создать эти 200 файлов с разным количеством листов в той же папке, где и сходный файл.
Думаю, что в купе с вышеприведенным макросом это поможет существенно автоматизировать рабочий процесс, удачи!
Разнесение данных с сводных таблиц по отдельным документам
 
BodkhiSatva, написал
Цитата
надо бы расшить макрос, добавить в проверку наличия файла и листа года в нем
Проверка на наличие файла в макросе есть, а если делать все проверки,  то ТС делать будет нечего
Разнесение данных с сводных таблиц по отдельным документам
 
Thadeus,
Попробуйте такой вариант.
Все исходные файлы в одной папке.
В файлы 2022, 2023 и 2024 вставить стандартный модуль и поочередно запустить макрос
Код
Option Explicit

Sub iName_a1()
Dim i As Long
Dim iLastRow As Long
Dim iLR As Long
Dim iName As String
Dim iListName As String
Dim Wb As Workbook
Dim iSh As Worksheet
  With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    iLastRow = Cells(Rows.Count, "B").End(xlUp).Row
    Range("M1:M" & iLastRow).Clear
    Range("B2:B" & iLastRow).AdvancedFilter xlFilterCopy, CopyToRange:=Range("M2"), Unique:=True
    Range("M2") = "Уникальные номера"
    iListName = Split(ActiveWorkbook.Name, ".")(0)  'лист по названию активной книги
     Set iSh = ThisWorkbook.Worksheets("Лист1")
   For i = 3 To Cells(Rows.Count, "M").End(xlUp).Row
     iName = Cells(i, "M")
       'проверяем есть файл с таким именем в папке с текущим файлом
     If FileExists(ThisWorkbook.Path & "\" & iName & ".xlsx") Then     'есть такой файл
        If ActiveSheet.AutoFilterMode = False Then
            Range("B2:K2").AutoFilter
        Else
            If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
        End If
      Set Wb = Workbooks.Open(FileName:=ThisWorkbook.Path & "\" & iName & ".xlsx")
        Wb.Worksheets(iListName).Activate
          iLR = Cells(Rows.Count, "B").End(xlUp).Row + 1
          With iSh.AutoFilter.Range
            .Range("B2").AutoFilter Field:=1, Criteria1:=iName
            .Offset(1).SpecialCells(xlCellTypeVisible).Copy Cells(iLR, 2)
          End With
        Wb.Close saveChanges:=True
        If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
     Else
       MsgBox "В папке с исходным файлом нет файла: " & ThisWorkbook.Path & "\" & iName & ".xlsx"
     End If
   Next
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
  End With
End Sub


'Проверка существования файла
Function FileExists(ByVal FileName As String) As Boolean
   FileExists = Len(Dir(FileName)) > 0
End Function
Автофильтр по нескольким условиям в одном столбце
 
Цитата
кирпичный
5 этаж
1 комната
ремонт
это разные это условия по выбору
Может собрать эти условия в столбец, например С, а дальше выбираете нужную ячейку
и ищете это условие в столбце В
Код
Sub test()
Dim arr
Dim dic As Object
Dim i As Long
Dim j As Long
Dim iLastRow As Long
    iLastRow = Cells(Rows.Count, "B").End(xlUp).Row
     Set dic = CreateObject("Scripting.Dictionary"): dic.comparemode = 1
  For i = 2 To iLastRow
     arr = Split(Range("B" & i).Value, ", ")
    For j = 0 To UBound(arr)
      dic.Item(arr(j)) = dic.Item(arr(j))
    Next j
  Next i
   Range("C1").Resize(dic.Count, 1) = Application.Transpose(dic.keys)
End Sub
VBA. Метод Range.Find (Excel). + .FindNext, Поиск всех значений по части текста в ячейках диапазона по диапазону переменных
 
Код
Option Explicit
Sub FindValue()
Dim c As Range
Dim i As Long
Dim firstAddress As String
Dim ek As Range
    With Worksheets(1).Range("A1:A16")
      For i = 1 To Cells(Rows.Count, "G").End(xlUp).Row
        Set ek = Worksheets(1).Range("G" & i)
        Set c = .Find(ek, LookIn:=xlValues, Lookat:=xlPart)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.Value = ek
                'i = i + 1
                Set c = .FindNext(c)
            'Loop While Not c Is Nothing
            Loop While c.Address <> firstAddress
        End If
      Next
    End With
End Sub
Суммирование блока ячеек внутри массива по условию, Сумма блока ячеек внутри массива по условию
 
Если в столбце С числа (не формулы)
Код
Sub iSum()
Dim Rng As Range
  For Each Rng In Range("C3:C" & Cells(Rows.Count, "C").End(xlUp).Row).SpecialCells(2, 1).Areas
    Rng.Cells(0, 2) = WorksheetFunction.Sum(Rng)
    Rng.Cells(0, 2).NumberFormat = "#,##0"
  Next
End Sub
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 273 След.
Наверх