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

Страницы: 1 2 3 4 5 6 7 8 След.
Ошибка применения ВПР и ИНДЕКС
 
=INDEX(Базовыйпрайс!$B$2:$B$9,MATCH(B6,Базовыйпрайс!$A$2:$A$9,0),1)
или
=VLOOKUP(B7,Базовыйпрайс!A:B,2,0)
Обращение к столбцу listrow по имени
 
Код
 lst.ListRows.Add
 Range("table[Date]") = Now
так пойдет?
Закрытие без сохранения
 
afanasev_n_a, если интересно, то всё про модули можно тут почитать)
http://www.excel-vba.ru/chto-umeet-excel/chto-takoe-modul-kakie-byvayut-moduli/
Закрытие без сохранения
 
в модуль книги
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
End Sub
Подсчет процентов за квартал
 
вариант
Подсчет процентов за квартал
 
гадаем по-английски) (т.к. нет файла)
=SUM(A1:C1)/COUNTIF(A1:C1,">0")
=AVERAGE(A1:C1)
Изменено: yoozhik - 30 Окт 2015 12:00:14
Возврат ближнего верхнего непустого значения из диапазона (столбца)
 
вариант.
зеленым - проверка - умножение на столбец Е
Изменено: yoozhik - 30 Окт 2015 11:40:46
Заполнение всех последующих ячеек второй таблицы, после значения ячейки первой.
 
вариант
Обработка строк макросом в цикле до первой пустой строки, оптимизация записанного средствами Excel макроса
 
записанный макрос по двум строкам в итоге проставляет в столбец G количество значений, больших 50. К чему такие сложности?...может просто протянуть формулу?
Цикл: Вставить скопированный диапозон во все листы, Помогите с телом цикла
 
Код
Sub DoinSelectedSheets()
    Dim sh As Worksheet
    Dim rn As Range
    Dim AW As Window
    Set AW = ActiveWindow
    Set rn = Worksheets("ИТОГ").Range("2:2")
    For Each sh In AW.SelectedSheets
                sh.Select
                sh.Unprotect
 'Начало тела цикла
    rn.Copy Destination:=sh.[a2]
 'Конец тела цикла
    ActiveWindow.Zoom = 75
               sh.Protect
         
    Next
End Sub

только у Вас не во все последующие листы, а в выделенные
Выводить в конце цикла информацию о возникших ошибках
 
можно так

Код
Sub new_sh_after()
Dim i As Object
On Error Resume Next
Finalrow = Range("A1048576").End(xlUp).Row
 For Each i In Sheets("17").Range("A1:A" & Finalrow)
Err.Clear
 Sheets("Pivot").Select
    ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("ФИО"). _
        ClearAllFilters
    ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("ФИО"). _
        CurrentPage = i.Value
 If Err.Number = 0 Then
 Sheets("Pivot").Range(Range("A4"), Range("B4").End(xlDown)).Copy
   
   
  Worksheets.Add(after:=Worksheets("17")).Name = Left(i, 31)
   ActiveSheet.Range("A1").Select
     
    With Selection
 .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    End With
      
    Else
    nm = nm & i.Value & ", "
    
End If
Next i
  MsgBox "Следующих ФИО нет в базе:" & Chr(10) & nm
End Sub
Данные из месячной разбивки в табличный вид, с помощью макроса
 
если простенько, то наверное так
Копирование на скрытый лист
 
на защищенный - сначала снять защиту, потом вернуть
Код
Sub добавить()
Set rn = Range("A9:S9")
With Sheets("Лист2")
lr = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Unprotect "123"
.Range("A" & lr & ":S" & lr) = rn.Value
.Protect "123"
End With
End Sub

чтоб листы не нашли, можете и проект VBA запаролить
Изменено: yoozhik - 27 Окт 2015 12:15:47
Копирование на скрытый лист
 
Код
Sub добавить()
Range("A9:S9").Copy
With Sheets("Лист2")
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1).PasteSpecial xlValues
End With
End Sub

сделайте лист очень скрытым и все. копироваться и так будет
Разбить данные одного лист на несколько листов
 
проверяйте, так?
Код
Sub ZonaDostavki()
Application.ScreenUpdating = False
Set shMain = Sheets("Лист1")
lr = shMain.Cells(Rows.Count, "d").End(xlUp).Row
For i = 2 To lr
    If shMain.Range("d" & i) <> shMain.Range("d" & i - 1) Then
    k = 1
        'Set wb = Workbooks.Add(1):
        Set sh = Worksheets.Add
        shMain.Rows(1).Copy
        sh.Range("A1").PasteSpecial xlPasteAll
        'wb.SaveAs ThisWorkbook.Path & "\" & shMain.Range("d" & i) & " .xlsx", FileFormat:=xlOpenXMLWorkbook
        k = k + 1
        sh.Rows(k) = shMain.Rows(i).Value
        'If shMain.Range("d" & i) <> shMain.Range("d" & i + 1) Then wb.Close True
    Else
        k = k + 1
        sh.Rows(k) = shMain.Rows(i).Value
        'If shMain.Range("d" & i) <> shMain.Range("d" & i + 1) Then wb.Close True
    End If
Next
End Sub

лишнее просто закомментил
Формирование аналитической таблицы на основе базы данных, таблица со свернутой аналитикой по укрупненным блокам
 
сводную делать
Не выводить на печать данные ячейки
 
на событие
Private Sub Workbook_BeforePrint(Cancel As Boolean)
прописать удаление значения (или закрашивания белым), после этого все возвращать к исходному виду
не получается найти скрытый лист
 
может ссылка не на лист, а на именованный диапазон?
не получается найти скрытый лист
 
Alt+F11
там будут все Ваши листы, в том числе и "все цены", в свойствах которого Visible - xlSheetVeryHidden
если свойств не видно, дополнительно еще F4 нажмите. И поменяйте свойство Visible на xlSheetVisible
Вставка Имя автора в ячейку
 
при внесении номера добавится имя
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
Cells(Target.Row, 5).Value = Application.UserName
End Sub
Поиск слов и фраз в тексте ячейки и отображение через разделитель
 
МаркД,  UDF от МВТ удобней.  Только диапазон со списком марок фиксировать не забывайте) Все вопросы в личном сообщении уже с использованием UDF не требуют решения)
Изменено: yoozhik - 23 Окт 2015 15:46:20
Поиск слов и фраз в тексте ячейки и отображение через разделитель
 
желтым - список марок
Поиск слов и фраз в тексте ячейки и отображение через разделитель
 
в Вашем примере не хватает списка тех слов, которые надо искать (марки а/м)
Удаление частичных дублей по двум столбцам
 
что-то вроде этого?
но если данных много, лучше записывать в массив все минимальные, очищать диапазон и поверх очищенного выгружать массив не удаляя строки
Изменено: yoozhik - 23 Окт 2015 10:22:44
Дублирование данных в зависимости от содержания ячейки
 
В14=ВПР(A14;$A$3:$B$9;2;0)
и протянуть вниз
Копирование формулы с заданным смещением
 
вариант
Создание новых книг из текущей по условию
 
Код
Sub test()
Dim i As Integer
Dim ilist As Integer
Dim xlbookname As String
Dim y As Integer
Set xlbook = ActiveWorkbook
Dim rng As Range
Set rng = xlbook.Sheets("Данные").Range("A1:M4")
For i = 1 To xlbook.Sheets("Список").Cells(Rows.Count, 1).End(xlUp).Row
xlbookname = xlbook.Sheets("Список").Cells(i, 1)
y = 5
Set xlbooknew = Workbooks.Add
rng.Copy Destination:=[a1]
For ilist = 1 To xlbook.Sheets("Данные").Cells(Rows.Count, 2).End(xlUp).Row
If xlbook.Sheets("Данные").Cells(ilist, 12) = xlbookname Then
xlbook.Sheets("Данные").Rows(ilist).Copy xlbooknew.Sheets(1).Rows(y)
y = y + 1
End If
Next
xlbooknew.SaveAs xlbook.Path & "\" & xlbookname & ".xls"
xlbooknew.Close
Next
End Sub
Перебор всех возможных вариантов, VBA для этой задачи
 
нужна помощь
вышло следующее:
Код
Sub usl4()
k = 3 'негатив-нейтрал-позитив
Dim arr()
Dim a()
ReDim a(1 To k)
a(1) = "negative"
a(2) = "neutral"
a(3) = "positive"
us = Val(InputBox("сколько вариантов?"))
ReDim arr(1 To us, 1 To k ^ us + 1)
'x = 4 + 3
q = 1

For y = 1 To us
For i = 2 To k ^ us + 1

arr(y, 1) = "усл" & y

For j = i To i + k ^ (us - y) - 1
arr(y, j) = a(q)
Next
If q = 3 Then q = 1 Else q = q + 1
i = i + k ^ (us - y) - 1
Next
Next
v = MsgBox("массив вариантов сформирован. Выгрузить на лист?", vbYesNo)

Select Case v
    Case vbNo: Exit Sub
    Case vbYes
    If k ^ us > Columns.Count Then MsgBox "недостаточно места": Exit Sub
    For l = 1 To us
    For x = 1 To k ^ us + 1
        Cells(l, x).Value = arr(l, x)
    Next
    Next
End Select

End Sub

при количестве варианов 14 - Out of memory на 2003-м. Это без вариантов? или может как-то по другому можно массив записать?
Перебор всех возможных вариантов, VBA для этой задачи
 
для четырех уже готов. для пяти - us=5, x=5+3. (это последняя строка. +3 - первые три пустые). Должно вроде на любом количестве условий сработать. если места хватит.
Вместо вывода - в массив, если возможен массив на 15 строк и 3^14 столбцов
Перебор всех возможных вариантов, VBA для этой задачи
 
в последнем примере для увеличения количества вариантов надо изменить переменную, в которой количество условий, и вместо вывода в ячейки прописать запись в массив
Страницы: 1 2 3 4 5 6 7 8 След.
Наверх