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

Страницы: 1 2 След.
Как в книге excel запретить копировать и вставить
 
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'Application.CutCopyMode = False
End Sub
Эта конструкция не позволит ничего скопировать даже макросом, ибо будет тут же очищать буфер обмена, как только вы ткнёте в другую ячейку.
Скорректировал ваш код немного, см. вложение
При открытии файла слетает ссылка на умную таблицу, не схороняться формула с ссылкой на умную таблицу
 
Здравствуйте.
Анна, приложите ваш файл, если возможно. Или пример
Поиск позиции или значения, Есть две таблицы. В первой искомое значение, во второй ее позиция
 
JERY,

см. столбец E (по формуле МатросНаЗебре)
Поиск слов в тексте ячейки
 
Ежели я правильно представил у себя в голове то, что вы описали, то можно через связку формул счётесли и выбор. Без примера ничего конкретнее сказать неполучится
Как на VBA отправить файл с названием, взятым из ячейки по почте?, Как на VBA отправить файл с названием, взятым из ячейки по почте?
 
Цитата
написал:
FullStr = FullStr & " ,attachment=FinalFileName"
Вы передаёте в переменную имя переменной, а не её содержимое. Кавычки расставьте правильно. А ещё проверьте содержимое этой переменной: я через ТБ не отправлял ничего, но выше у вас перед путём присутствует
Цитата
написал:
file:///
Сам проверить по очевидным причинам не могу
как остортировать строчки по наиболее часто повторяющимся словам в одном столбце
 
Тоже, что предложил Ігор Гончаренко, только сортировка двухуровневая
Упрощение макроса вставки картинок по критерию
 
Первое, что приходит в голову:

Код
        For Each shp In Sheets(2).Shapes
            If shp.TopLeftCell.Address = r.Next.Address Then
                shp.Copy
                Cells(i, 2).PasteSpecial xlPasteAll
                Exit for
            End If
        Next
Если в столбце "обозначение" не повторяются значения, естественно
[VBA] ChrW вместо нужного символа выводит знак вопроса
 
Можно в нотпад писать
Код
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_SETTEXT = &HC

Private Sub test_sub()
    Dim Ret As Long, ChildRet As Long, sString As String
    sString = "test_string"
    Ret = Shell("notepad.exe", vbNormalFocus)
    DoEvents
    Ret = FindWindow(vbNullString, "Безымянный — Блокнот")
    If Ret = 0 Then
        MsgBox "Нема нотпаду"
        Exit Sub
    End If
    ChildRet = FindWindowEx(Ret, ByVal 0&, "Edit", vbNullString)
    SendMessage ChildRet, WM_SETTEXT, 0, ByVal sString
End Sub

Но лучше в файл, а потом его (файл) открывать нотпадом. Так вернее

Выскакивает окно сохранить, при обработке файла эксель, другим файлом!
 
Странно, что помогло. Events это другое по идее. В вашем же случае
Код
Application.DisplayAlerts = False 
Нужен макрос для автоматического "прожима" ячеек выделенного диапазона
 
Как я понял, проблема в том, что данные перед записью на лист были "Variant", поэтому excel непонимает, что это - даты.
Код
Sub test()
    oDates = Range("A2:A38").Value
    For i = LBound(oDates) To UBound(oDates)
        oDates(i, 1) = CDate(oDates(i, 1))
    Next i
    Range("A2:A38").Value = oDates
End Sub
Поиск по первым буквам в списке
 
rpepel, список открывается как только вы начинаете что-то вводить. Работает во всех ячейках столбца, см. код в файле выше
Разделить ячейки по разделителю ВНИЗ (по строкам), вставляя новые строки
 
Вариант:
Код
Sub SplitNames()
m1 = Sheets("Начальные данные").Range("A2:C10").Value
n = 1
For i = LBound(m1) + 1 To UBound(m1)
    A = Split(m1(i, 3), ", ")
    n = n + UBound(A) + 1
Next i
ReDim m2(1 To n + 1, 1 To 3)
n = 1
For i = LBound(m1) To UBound(m1)
    A = Split(m1(i, 3), ", ")
    For j = LBound(A) To UBound(A)
        If A(j) <> "" Then
            For k = 1 To UBound(m1, 2)
                m2(n, k) = m1(i, k)
            Next k
            m2(n, UBound(m1, 2)) = A(j)
            n = n + 1
        End If
    Next j
Next
Sheets("Итог").Range("A2:C" & UBound(m2)).Value = m2
End Sub
Массив vba со сбором данных с листов и возвратом обратно, Оптимизация существующего кода
 
Попробуйте так:
Код
arr = Array("Az", "Bz", "Cz" ...) ' - тут 31 диапазон
for i = 1 to 31
with Worksheets(i).Range(arr(i-1)) ' arr(i-1) потому что массив начинается с 0
Ax = .Columns(7).Formula 
.Columns(7).Value = 1
'...
'некоторое действие
'...
.Columns(7).Formula = Ax
end with
next i
Вычислить коэффициент в зависимости от % выполнения плана (пвп)
 
Попробуйте так:
Код
=ЕСЛИ(O2<90%;0;ЕСЛИ(O2>110%;Q2*1,1;O2*Q2))
Импорт XML в Excel
 
Попробуйте переделать вот так:
Код
        <string1>03</string1>
        <string2>16.03.2021</string2>
        <string3>Компания 3</string3>
        <string4>20.05.2021</string4>

Поиск по первым буквам в списке
 
rpepel,
Скрытый текст
Поиск по первым буквам в списке
 
Ну ведь так и есть?
Цитата
rpepel написал:
ввести пару первых символов и выбрать из отсортированного списка требуемый пункт.
Сравнение столбцов с представлением данных в разном формате
 
Код
Sub findName()
endRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
arr = Range("A1:A" & endRow).Value
For i = LBound(arr) To UBound(arr)
    For j = i + 1 To UBound(arr)
        If Len(arr(i, 1)) < Len(arr(j, 1)) Then
            Temp = arr(j, 1)
            arr(j, 1) = arr(i, 1)
            arr(i, 1) = Temp
        End If
    Next j
Next i
arr1 = Range("C1:D" & endRow).Value
For i = LBound(arr1) To UBound(arr1)
    For j = LBound(arr) To UBound(arr)
        If InStr(1, arr1(i, 1), arr(j, 1)) > 0 Then arr1(i, 2) = arr(j, 1): Exit For
    Next j
    If arr1(i, 2) = "" Then
        For j = LBound(arr) To UBound(arr)
        DoEvents
            tmp = Split(arr(j, 1), " ")
            For m = UBound(tmp) To LBound(tmp) Step -1
                Temp = ""
                For n = LBound(tmp) To m
                    Temp = Temp & " " & tmp(n)
                Next n
                Temp = Trim(Temp)
                If InStr(1, arr1(i, 1), Temp) > 0 Then arr1(i, 2) = arr(j, 1): Exit For
            Next m
            If arr1(i, 2) <> "" Then Exit For
        Next j
    End If
Next i
Range("C1:D" & endRow).Value = arr1
End Sub

Некоторых в списке нет
Подсчет дробных значений из нескольких столбцов с чередующимися строками по диапазонам значений и текстовым критериям
 
Ярослав, потому что во-первых, значения в столбце так и остались текстовыми. Их надо либо "прощёлкать" либо все умножить на 1. Во-вторых, указанные условия в файле выводят 0 совершенно справедливо. Измените запрос
Код
=СЧЁТЕСЛИМН(Таблица1[Дробное сначение];">1,5";Таблица1[Дробное сначение];"<2";
Таблица1[Текстовый критерий1];"A";
Таблица1[Текстовый критерий2];"E";
Таблица1[Дробное значение2];">1,5";Таблица1[Дробное значение2];"<2")

Выводит 1

Подсчет дробных значений из нескольких столбцов с чередующимися строками по диапазонам значений и текстовым критериям
 
Проблема в том, что у вас столбец H в текстовом формате. Поэтому операция сравнения "больше-меньше" не может быть корректно завершена
Поиск по первым буквам в списке
 
Вариант с макросом
Вычислить Факт выполнения отгрузки на определённую сумму
 
Вариант с формулой и дополнительным столбцом
Авто-размер диалогового окна поиска под результаты
 
nails-kid,
Код
Public Declare PtrSafe Function MoveWindow Lib "user32" (ByVal hwnd As LongPtr, ByVal x As LongPtr, ByVal y As LongPtr, ByVal nWidth As LongPtr, ByVal nHeight As LongPtr, ByVal bRepaint As LongPtr) As LongPtr
Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private start As Boolean

Sub ResizeMe()
    Dim hwnd As LongPtr
    start = True
    While (start And hwnd = 0)
        DoEvents
        hwnd = FindWindow(vbNullString, "Найти и заменить")
        hwnd = MoveWindow(hwnd, 100, 100, 900, 700, 1)
    Wend
End Sub

Sub endSub()
start = False
End Sub

Запускаете макрос кнопкой "Пуск", после чего он входит в вечный цикл, проверяя наличие окна "Найти и заменить". Если находит - меняет размер. Кнопка "Стоп" для остановки "вечного" цикла. Недостатки этого способа очевидны, но, возможно, для вас это не будет проблемой.
P.S. А не лучше ли решить задачу проверки наличия данных каким-то другим способом?  
Обработка данных с сайта Zzap, Обработка данных с сайта Zzap
 
Юрий М, в правилах нет ссылки на дополнения, а по поиску куча хлама. Нашёл не сразу. Ну, ок, я - тёмная лошадка. Но по теме сабжа я не рассчитывал на заработок, чисто спортивный интерес. Если это не запрещено (а в правилах такого нет), то я поковыряю таки задачку и выложу на обозрение код
Обработка данных с сайта Zzap, Обработка данных с сайта Zzap
 
vikttur, почитал правила форума, но так и не понял: какое из них запрещает мне быть исполнителем?
Подстановка ближайшего меньшего результата по значению таблицы, Макросы/VBA
 
Заменил блок кода на:
Код
endRow = ws.UsedRange.Rows.Count
arr = ws.Range("A2:H" & endRow).Value
For i = LBound(arr) To UBound(arr)
    If arr(i, longrun_column) <> "-" And arr(i, longrun_column) <> "" Then
      If Replace(arr(i, longrun_column), ".", ":") >= Replace(Result, ".", ":") Then Points_results_4 = arr(i, 1): Exit Function
    End If
Next i

в каждой функции примерно так

Способы определения языка строки VBA
 
Цитата
БМВ написал:
 ! i l |
Вот тут приколы начинаются, если кодировку с кириллицы на юникод сменить (или другие варианты). I вполне запросто становится |. Через раз с этим сталкиваюсь при импорте данных из txt в mysql. Та ещё головная боль
Перенос данных из другого листа после копирования и смены имени листа
 
Попробуйте вот так:
Код
=ДВССЫЛ("'"&"0"&ЛЕВСИМВ(ПСТР(ЯЧЕЙКА("имяфайла";A1);НАЙТИ("]";ЯЧЕЙКА("имяфайла";A1))+1;255);2)-1&ПСТР(ЯЧЕЙКА("имяфайла";A1);НАЙТИ("]";ЯЧЕЙКА("имяфайла";A1))+3;255)&"'"&"!q23")-M23-T23
Это в ячейку Q23
Обработка данных с сайта Zzap, Обработка данных с сайта Zzap
 
Если у вас есть доступ к API zzap.ru, то это сравнительно не сложно. А вот в обход их антипарсеров - проблема
Вычислить Факт выполнения отгрузки на определённую сумму
 
Владимир Куртаев, сделайте табличку чуть побольше и сделайте пример её правильного заполнения. Непонятно: она отсортирована или значения разных регионов и\или контрагентов могут повторяться, т.е. не идти друг за другом? Решить задачку надо формулой или макросом?  
Страницы: 1 2 След.
Наверх