Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Записи участника (krosav4ig) - Мир MS Excel

Результаты поиска
krosav4ig Дата: Понедельник, 20.07.2015, 22:37 | Сообщение № 821 | Тема: Изменение АВТОРА в свойствах файлов
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
думается мне, что без открывания каждого файла в Excel'е будет как-то побыстрее.
для работы кода нужна библиотека DSOFile

[vba]
Код
Sub sdf()
      Dim strFolder$
r:  With Application.FileDialog(msoFileDialogFolderPicker)
          If .Show Then
              strFolder$ = .SelectedItems(1)
          ElseIf MsgBox("Ничего не выбрано. Повторить?", 36, "Ну так как?") = 6 Then
              GoTo r
          Else: Exit Sub
          End If
      End With
      Dim strFile$
      With CreateObject("DSOFile.OleDocumentProperties")
          strFile = Dir$(strFolder & "\*.xls*")
          Do While Len(strFile)
              .Open strFolder & "\" & strFile, , 2
              With .SummaryProperties
                  .Author = "Новый автор"
                  .lastsavedby = "Новый автор"
              End With
              .Save: .Close
              strFile = Dir$
          Loop
      End With
End Sub
[/vba]

[p.s.]дата изменения фалов при работе макроса будет заменяться на текущую системную, если она должна оставаться без изменений, то нужно будет потанцевать с бубном (WINAPI)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 20.07.2015, 22:44
 
Ответить
Сообщениедумается мне, что без открывания каждого файла в Excel'е будет как-то побыстрее.
для работы кода нужна библиотека DSOFile

[vba]
Код
Sub sdf()
      Dim strFolder$
r:  With Application.FileDialog(msoFileDialogFolderPicker)
          If .Show Then
              strFolder$ = .SelectedItems(1)
          ElseIf MsgBox("Ничего не выбрано. Повторить?", 36, "Ну так как?") = 6 Then
              GoTo r
          Else: Exit Sub
          End If
      End With
      Dim strFile$
      With CreateObject("DSOFile.OleDocumentProperties")
          strFile = Dir$(strFolder & "\*.xls*")
          Do While Len(strFile)
              .Open strFolder & "\" & strFile, , 2
              With .SummaryProperties
                  .Author = "Новый автор"
                  .lastsavedby = "Новый автор"
              End With
              .Save: .Close
              strFile = Dir$
          Loop
      End With
End Sub
[/vba]

[p.s.]дата изменения фалов при работе макроса будет заменяться на текущую системную, если она должна оставаться без изменений, то нужно будет потанцевать с бубном (WINAPI)

Автор - krosav4ig
Дата добавления - 20.07.2015 в 22:37
krosav4ig Дата: Вторник, 21.07.2015, 17:27 | Сообщение № 822 | Тема: Выбор данных из списка
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
ds102061, пробуйте так

[vba]
Код
    Dim StrSql As String
       Dim rs As ADODB.Recordset

Private Sub cmbFunc_AfterUpdate()
       g_Func = Trim(cmbFunc)
End Sub
Private Sub cmbFunc_Change()
       g_Func = Trim(cmbFunc)
End Sub

Private Sub cmbGRNDate1_AfterUpdate()
        cmbGRNDate1.Value = form_date(cmbGRNDate1.Value)
        g_GRNDate1 = Trim(cmbGRNDate1.Value)
End Sub

Private Sub cmbGRNDate2_AfterUpdate()
        cmbGRNDate2.Value = form_date(cmbGRNDate2.Value)
        g_GRNDate2 = Trim(cmbGRNDate2.Value)
End Sub

Private Sub cmbManfac_AfterUpdate()
       g_Manfac = Trim(cmbManfac)
End Sub

Private Sub txtDateFrom_AfterUpdate()
       txtDateFrom.Value = form_date(txtDateFrom.Value)
       g_DateFrom = form_date(txtDateFrom.Value)
End Sub

Private Sub txtDateTo_AfterUpdate()
       txtDateTo.Value = form_date(txtDateTo.Value)
       g_DateTo = form_date(txtDateTo.Value)
End Sub

Private Sub cmbCancel_Click()
       g_Cancel = True
       Unload Me
End Sub

Private Sub cmbOk_Click()
       Save_params
       Unload Me
End Sub

Private Sub cmbTabN_AfterUpdate()
       g_TabN = cmbTabN.Value
End Sub

Public Sub UserForm_Activate()
       If cmbManfac.ListCount <= 0 Then
           If Not rs Is Nothing Then If rs.State Then rs.Close
           cmbManfac.AddItem "*"
           StrSql = " SELECT DISTINCT usotr.usotr_manfac " & _
                    " FROM zeie:maxmast.usotr usotr"
           Set rs = dbdll.rec(client, Forward, StrSql)
           With cmbManfac
              .List = Application.Transpose(rs.GetRows)
              .AddItem "*", 0
              .Value = g_Manfac
           End With
       End If
        '-------------
       cmbFunc.List = Array("*", "pu10", "pu10", "pu10", "pu12", "nv00", "oe", "nv17", "nv13", _
                            "nv17", "pv12", "nv15", "oe", "nv00", "nv10", "pv12", "nv12", 0)
       '------------
       g_Func = cmbFunc.Value
End Sub
Private Sub cmbTabN_Change()
       FilterFio Array(array("usotr_manfac", g_Manfac))
       Application.SendKeys "{right}"
End Sub
Private Sub cmbTabN_Change()
       Application.SendKeys "{right}"
End Sub
Private Sub FilterFio(criteria As Variant)
       StrSql = " SELECT distinct usotr.usotr_manfac,usotr.usotr_tabnum, " & _
                            "trim(" & IIf(criteria(1) = "*", "usotr.usotr_manfac&' - '&", "") & _
                            "usotr.usotr_tabnum&' - '&usotr.usotr_fio) as F1" & _
                            " FROM zeie:maxmast.usotr usotr order by usotr.usotr_manfac,usotr.usotr_tabnum"
       Set rs = dbdll.rec(client, Forward, StrSql)
       rs.Filter = IIf(criteria(1) = "*", 0, criteria(0) & " like '" & criteria(1) & "'")
       With cmbTabN
           .List = Application.Transpose(rs.GetRows(-1, 0, 2))
           .AddItem "*", 0
           .Listindex = 0
       End With
       rs.Close
End Sub
[/vba][sub]
upd.
Исправил небольшую ошибку


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 21.07.2015, 19:39
 
Ответить
Сообщениеds102061, пробуйте так

[vba]
Код
    Dim StrSql As String
       Dim rs As ADODB.Recordset

Private Sub cmbFunc_AfterUpdate()
       g_Func = Trim(cmbFunc)
End Sub
Private Sub cmbFunc_Change()
       g_Func = Trim(cmbFunc)
End Sub

Private Sub cmbGRNDate1_AfterUpdate()
        cmbGRNDate1.Value = form_date(cmbGRNDate1.Value)
        g_GRNDate1 = Trim(cmbGRNDate1.Value)
End Sub

Private Sub cmbGRNDate2_AfterUpdate()
        cmbGRNDate2.Value = form_date(cmbGRNDate2.Value)
        g_GRNDate2 = Trim(cmbGRNDate2.Value)
End Sub

Private Sub cmbManfac_AfterUpdate()
       g_Manfac = Trim(cmbManfac)
End Sub

Private Sub txtDateFrom_AfterUpdate()
       txtDateFrom.Value = form_date(txtDateFrom.Value)
       g_DateFrom = form_date(txtDateFrom.Value)
End Sub

Private Sub txtDateTo_AfterUpdate()
       txtDateTo.Value = form_date(txtDateTo.Value)
       g_DateTo = form_date(txtDateTo.Value)
End Sub

Private Sub cmbCancel_Click()
       g_Cancel = True
       Unload Me
End Sub

Private Sub cmbOk_Click()
       Save_params
       Unload Me
End Sub

Private Sub cmbTabN_AfterUpdate()
       g_TabN = cmbTabN.Value
End Sub

Public Sub UserForm_Activate()
       If cmbManfac.ListCount <= 0 Then
           If Not rs Is Nothing Then If rs.State Then rs.Close
           cmbManfac.AddItem "*"
           StrSql = " SELECT DISTINCT usotr.usotr_manfac " & _
                    " FROM zeie:maxmast.usotr usotr"
           Set rs = dbdll.rec(client, Forward, StrSql)
           With cmbManfac
              .List = Application.Transpose(rs.GetRows)
              .AddItem "*", 0
              .Value = g_Manfac
           End With
       End If
        '-------------
       cmbFunc.List = Array("*", "pu10", "pu10", "pu10", "pu12", "nv00", "oe", "nv17", "nv13", _
                            "nv17", "pv12", "nv15", "oe", "nv00", "nv10", "pv12", "nv12", 0)
       '------------
       g_Func = cmbFunc.Value
End Sub
Private Sub cmbTabN_Change()
       FilterFio Array(array("usotr_manfac", g_Manfac))
       Application.SendKeys "{right}"
End Sub
Private Sub cmbTabN_Change()
       Application.SendKeys "{right}"
End Sub
Private Sub FilterFio(criteria As Variant)
       StrSql = " SELECT distinct usotr.usotr_manfac,usotr.usotr_tabnum, " & _
                            "trim(" & IIf(criteria(1) = "*", "usotr.usotr_manfac&' - '&", "") & _
                            "usotr.usotr_tabnum&' - '&usotr.usotr_fio) as F1" & _
                            " FROM zeie:maxmast.usotr usotr order by usotr.usotr_manfac,usotr.usotr_tabnum"
       Set rs = dbdll.rec(client, Forward, StrSql)
       rs.Filter = IIf(criteria(1) = "*", 0, criteria(0) & " like '" & criteria(1) & "'")
       With cmbTabN
           .List = Application.Transpose(rs.GetRows(-1, 0, 2))
           .AddItem "*", 0
           .Listindex = 0
       End With
       rs.Close
End Sub
[/vba][sub]
upd.
Исправил небольшую ошибку

Автор - krosav4ig
Дата добавления - 21.07.2015 в 17:27
krosav4ig Дата: Среда, 22.07.2015, 18:25 | Сообщение № 823 | Тема: Перечень всех листов книги в Combo box-e (UserForm)
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
пример в студию rules


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениепример в студию rules

Автор - krosav4ig
Дата добавления - 22.07.2015 в 18:25
krosav4ig Дата: Среда, 22.07.2015, 19:07 | Сообщение № 824 | Тема: Остаток товара не должен меняться.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Ярик, смотрите, вдруг правильно
[vba]
Код
=ЕСЛИОШИБКА(ПРОСМОТР(;-1/(Таблица10[[#Заголовки];[склад]]:C1=C2)/(Таблица10[[#Заголовки];[товар]]:D1=D2);Таблица10[[#Заголовки];[остаток]]:H1);ЕСЛИОШИБКА(ПРОСМОТР(;-1/(Таблица1[склад]=C2)/(Таблица1[товар]=D2);Таблица1[кол-во]);))
[/vba]
К сообщению приложен файл: 9353566.xlsb (22.2 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 22.07.2015, 19:08
 
Ответить
СообщениеЯрик, смотрите, вдруг правильно
[vba]
Код
=ЕСЛИОШИБКА(ПРОСМОТР(;-1/(Таблица10[[#Заголовки];[склад]]:C1=C2)/(Таблица10[[#Заголовки];[товар]]:D1=D2);Таблица10[[#Заголовки];[остаток]]:H1);ЕСЛИОШИБКА(ПРОСМОТР(;-1/(Таблица1[склад]=C2)/(Таблица1[товар]=D2);Таблица1[кол-во]);))
[/vba]

Автор - krosav4ig
Дата добавления - 22.07.2015 в 19:07
krosav4ig Дата: Среда, 22.07.2015, 19:22 | Сообщение № 825 | Тема: выстраивание в порядке убывания используя функцию если
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а у мну чего-то монстр получился :D
Т - таблица
Код
=ЕСЛИОШИБКА(ПРОСМОТР(ИНДЕКС(НАИМЕНЬШИЙ(ЕСЛИ(Т[3]>$D$17;СТРОКА(Т);"");СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17))));ПОИСКПОЗ(НАИМЕНЬШИЙ(МУМНОЖ(Ч(ПРОСМОТР(НАИМЕНЬШИЙ(ЕСЛИ(Т[3]>$D$17;СТРОКА(Т);"");СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17))));СТРОКА(Т);Т[2]+СТРОКА(Т)%%%)>=ТРАНСП(ПРОСМОТР(НАИМЕНЬШИЙ(ЕСЛИ(Т[3]>$D$17;СТРОКА(Т);"");СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17))));СТРОКА(Т);Т[2]+СТРОКА(Т)%%%)));СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17)))^0);СТРОКА(A1));МУМНОЖ(Ч(ПРОСМОТР(НАИМЕНЬШИЙ(ЕСЛИ(Т[3]>$D$17;СТРОКА(Т);"");СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17))));СТРОКА(Т);Т[2]+СТРОКА(Т)%%%)>=ТРАНСП(ПРОСМОТР(НАИМЕНЬШИЙ(ЕСЛИ(Т[3]>$D$17;СТРОКА(Т);"");СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17))));СТРОКА(Т);Т[2]+СТРОКА(Т)%%%)));СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17)))^0);));СТРОКА(Т);Т[1]);"")


К сообщению приложен файл: _1-1-.xlsx (11.1 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 22.07.2015, 19:23
 
Ответить
Сообщениеа у мну чего-то монстр получился :D
Т - таблица
Код
=ЕСЛИОШИБКА(ПРОСМОТР(ИНДЕКС(НАИМЕНЬШИЙ(ЕСЛИ(Т[3]>$D$17;СТРОКА(Т);"");СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17))));ПОИСКПОЗ(НАИМЕНЬШИЙ(МУМНОЖ(Ч(ПРОСМОТР(НАИМЕНЬШИЙ(ЕСЛИ(Т[3]>$D$17;СТРОКА(Т);"");СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17))));СТРОКА(Т);Т[2]+СТРОКА(Т)%%%)>=ТРАНСП(ПРОСМОТР(НАИМЕНЬШИЙ(ЕСЛИ(Т[3]>$D$17;СТРОКА(Т);"");СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17))));СТРОКА(Т);Т[2]+СТРОКА(Т)%%%)));СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17)))^0);СТРОКА(A1));МУМНОЖ(Ч(ПРОСМОТР(НАИМЕНЬШИЙ(ЕСЛИ(Т[3]>$D$17;СТРОКА(Т);"");СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17))));СТРОКА(Т);Т[2]+СТРОКА(Т)%%%)>=ТРАНСП(ПРОСМОТР(НАИМЕНЬШИЙ(ЕСЛИ(Т[3]>$D$17;СТРОКА(Т);"");СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17))));СТРОКА(Т);Т[2]+СТРОКА(Т)%%%)));СТРОКА($A$1:ИНДЕКС($A:$A;СЧЁТЕСЛИ(Т[3];">"&$D$17)))^0);));СТРОКА(Т);Т[1]);"")



Автор - krosav4ig
Дата добавления - 22.07.2015 в 19:22
krosav4ig Дата: Среда, 22.07.2015, 20:20 | Сообщение № 826 | Тема: Как сделать вставку строк с текстом
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
blackeangel, так нужно?
[vba]
Код
Sub Insert_Rows2()
     Dim lLastRow As Long, li As Long, i As Range ' переменные
     Application.ScreenUpdating = 0 'заморозим экран от изменений
     lLastRow = Cells(Rows.Count, 1).End(xlUp).Row 'переменной присваивается последняя строка
     For li = lLastRow To 3 Step -1 'ПЕРЕБИРАЕМ С последней до первой строки с шагом -1
     With ActiveSheet.UsedRange.Rows(li).Resize(2)
     .Insert 'добавляем 2 строки до нужной нам
         With .Offset(-2)
             .Value = .Offset(2).Resize(1).Value
             .Columns(6) = 0: Intersect(.Cells, [H:H,J:L]) = Empty
             .Cells(1, 1) = .Cells(1, 1) - 10: .Cells(2, 1) = .Cells(1, 1) + 5
             .Columns(2) = Application.Substitute(.Columns(2), "св", Application.Transpose(Array("мз", "об")))
         End With
     End With
     ' если заменить Resize(2) на Resize(1) то будет вставляться только одна строка
     Next li
     Application.ScreenUpdating = 1 'разморозили экран и он обновился
End Sub
[/vba]
К сообщению приложен файл: 31212132.xls (86.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеblackeangel, так нужно?
[vba]
Код
Sub Insert_Rows2()
     Dim lLastRow As Long, li As Long, i As Range ' переменные
     Application.ScreenUpdating = 0 'заморозим экран от изменений
     lLastRow = Cells(Rows.Count, 1).End(xlUp).Row 'переменной присваивается последняя строка
     For li = lLastRow To 3 Step -1 'ПЕРЕБИРАЕМ С последней до первой строки с шагом -1
     With ActiveSheet.UsedRange.Rows(li).Resize(2)
     .Insert 'добавляем 2 строки до нужной нам
         With .Offset(-2)
             .Value = .Offset(2).Resize(1).Value
             .Columns(6) = 0: Intersect(.Cells, [H:H,J:L]) = Empty
             .Cells(1, 1) = .Cells(1, 1) - 10: .Cells(2, 1) = .Cells(1, 1) + 5
             .Columns(2) = Application.Substitute(.Columns(2), "св", Application.Transpose(Array("мз", "об")))
         End With
     End With
     ' если заменить Resize(2) на Resize(1) то будет вставляться только одна строка
     Next li
     Application.ScreenUpdating = 1 'разморозили экран и он обновился
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 22.07.2015 в 20:20
krosav4ig Дата: Четверг, 23.07.2015, 19:06 | Сообщение № 827 | Тема: Подскажите как открыть 2а файла экселя 2010 на 2х мониторах.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Emiral, почитайте тут
куча ссылок


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Четверг, 23.07.2015, 19:10
 
Ответить
СообщениеEmiral, почитайте тут
куча ссылок

Автор - krosav4ig
Дата добавления - 23.07.2015 в 19:06
krosav4ig Дата: Пятница, 24.07.2015, 15:17 | Сообщение № 828 | Тема: Фильтр по дате: выбрать все даты ДО прошлого месяца
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
ActiveSheet.Range("$A$1:$U$3473").AutoFilter 18, "<=" & Application.EoMonth(Date, -2)
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение[vba]
Код
ActiveSheet.Range("$A$1:$U$3473").AutoFilter 18, "<=" & Application.EoMonth(Date, -2)
[/vba]

Автор - krosav4ig
Дата добавления - 24.07.2015 в 15:17
krosav4ig Дата: Пятница, 24.07.2015, 16:13 | Сообщение № 829 | Тема: Столбец, фильтрующийся на основе ячейки
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
вариант с расширенным фильтром, таблица на листе1 фильтруется по всем значениям введенным на листе2
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     With [criteria[#All]]
         If Not Intersect(Target, .Resize(.Rows.Count + 1)) Is Nothing Then _
             [Таблица2[#All]].AdvancedFilter 1, .Rows(1).Resize(Application.CountA(.Columns(1))), 0
     End With
End Sub
[/vba]
К сообщению приложен файл: 0774544.xlsm (17.9 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениевариант с расширенным фильтром, таблица на листе1 фильтруется по всем значениям введенным на листе2
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     With [criteria[#All]]
         If Not Intersect(Target, .Resize(.Rows.Count + 1)) Is Nothing Then _
             [Таблица2[#All]].AdvancedFilter 1, .Rows(1).Resize(Application.CountA(.Columns(1))), 0
     End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 24.07.2015 в 16:13
krosav4ig Дата: Пятница, 24.07.2015, 18:16 | Сообщение № 830 | Тема: Столбец, фильтрующийся на основе ячейки
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
вариант с допстолбцом и сводной со срезом
К сообщению приложен файл: 2132463.xlsx (69.3 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениевариант с допстолбцом и сводной со срезом

Автор - krosav4ig
Дата добавления - 24.07.2015 в 18:16
krosav4ig Дата: Пятница, 24.07.2015, 18:57 | Сообщение № 831 | Тема: Хитрое автоматическое транспонирование
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
еще вариант, без допстолбцов, летучие формулы
Код
=СМЕЩ(AA;ПРОСМОТР(СТРОКА(A1)-1;CC;СТРОКА(AA)-1)-1;СТРОКА(A5)-ПРОСМОТР(СТРОКА(A1)-1;CC);1)
Код
=ПРОСМОТР(СТРОКА(A1)-1;CC;AA)

К сообщению приложен файл: 4988391.xlsx (10.9 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 24.07.2015, 18:59
 
Ответить
Сообщениееще вариант, без допстолбцов, летучие формулы
Код
=СМЕЩ(AA;ПРОСМОТР(СТРОКА(A1)-1;CC;СТРОКА(AA)-1)-1;СТРОКА(A5)-ПРОСМОТР(СТРОКА(A1)-1;CC);1)
Код
=ПРОСМОТР(СТРОКА(A1)-1;CC;AA)


Автор - krosav4ig
Дата добавления - 24.07.2015 в 18:57
krosav4ig Дата: Понедельник, 27.07.2015, 19:08 | Сообщение № 832 | Тема: Подскажите как открыть 2а файла экселя 2010 на 2х мониторах.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Emiral, а во втором методе из статьи по первой ссылке по-вашему про что написано?


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеEmiral, а во втором методе из статьи по первой ссылке по-вашему про что написано?

Автор - krosav4ig
Дата добавления - 27.07.2015 в 19:08
krosav4ig Дата: Среда, 29.07.2015, 12:47 | Сообщение № 833 | Тема: Замена или решение типа Ф.ТЕКСТ в Excel 2010
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
rogert, а у мну Ф.ТЕКСТ работает :p
как теперь данный получаемый текст формулы заставить воспринимать экселем как формулу

макрофункция ВЫЧИСЛИТЬ()
К сообщению приложен файл: 6481601.xls (31.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеrogert, а у мну Ф.ТЕКСТ работает :p
как теперь данный получаемый текст формулы заставить воспринимать экселем как формулу

макрофункция ВЫЧИСЛИТЬ()

Автор - krosav4ig
Дата добавления - 29.07.2015 в 12:47
krosav4ig Дата: Среда, 29.07.2015, 19:54 | Сообщение № 834 | Тема: Управление мышкой макросом
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Rioran, привет. По поводу отсутствия sleep я, конечно, погорячился, ибо даже задержка в 1 мс в этом коде сводит загрузку цп (процессом excel) чуть ли не к 0, и sleep не помешает в обоих циклах. А тут
так имхо надежнее будет
я имел в виду вложенный цикл с ожиданием отжатия кнопки.


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 29.07.2015, 19:55
 
Ответить
СообщениеRioran, привет. По поводу отсутствия sleep я, конечно, погорячился, ибо даже задержка в 1 мс в этом коде сводит загрузку цп (процессом excel) чуть ли не к 0, и sleep не помешает в обоих циклах. А тут
так имхо надежнее будет
я имел в виду вложенный цикл с ожиданием отжатия кнопки.

Автор - krosav4ig
Дата добавления - 29.07.2015 в 19:54
krosav4ig Дата: Четверг, 30.07.2015, 18:01 | Сообщение № 835 | Тема: Управление мышкой макросом
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
опоздал :(
Rioran,
единица

это все потому, что я страшный лентяй и не люблю объявлять константы, если они используются в коде один раз :(
И все, что я могу добавить к исчерпывающему ответу AndreTM, это то, что если бы все-таки можно было 100% ориентироваться на младший бит, то можно было бы избавиться от вложенного цикла если отслеживать "псевдо-отжатие"
[vba]
Код
Private Type POINTAPI
           x As Long
           y As Long
End Type
Private Declare Function GetCursorPos Lib "user32.dll" (lpPoint As POINTAPI) As Long
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Const KEY_PRESSED = &H8000
Private Const KEY_RELEASED = &H1
Private Const VK_LButton = &H1

Sub clickpos()
       Dim i%, curpos As POINTAPI
       GetAsyncKeyState VK_LButton
       Do
           If (GetAsyncKeyState(VK_LButton) And KEY_RELEASED) Then
               GetCursorPos curpos
               [A1].Offset(i) = curpos.x
               [A1].Offset(i, 1) = curpos.y
               i = i + 1
           End If
           Sleep 30
           DoEvents
       Loop Until i = 3
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Четверг, 30.07.2015, 18:13
 
Ответить
Сообщениеопоздал :(
Rioran,
единица

это все потому, что я страшный лентяй и не люблю объявлять константы, если они используются в коде один раз :(
И все, что я могу добавить к исчерпывающему ответу AndreTM, это то, что если бы все-таки можно было 100% ориентироваться на младший бит, то можно было бы избавиться от вложенного цикла если отслеживать "псевдо-отжатие"
[vba]
Код
Private Type POINTAPI
           x As Long
           y As Long
End Type
Private Declare Function GetCursorPos Lib "user32.dll" (lpPoint As POINTAPI) As Long
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Const KEY_PRESSED = &H8000
Private Const KEY_RELEASED = &H1
Private Const VK_LButton = &H1

Sub clickpos()
       Dim i%, curpos As POINTAPI
       GetAsyncKeyState VK_LButton
       Do
           If (GetAsyncKeyState(VK_LButton) And KEY_RELEASED) Then
               GetCursorPos curpos
               [A1].Offset(i) = curpos.x
               [A1].Offset(i, 1) = curpos.y
               i = i + 1
           End If
           Sleep 30
           DoEvents
       Loop Until i = 3
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 30.07.2015 в 18:01
krosav4ig Дата: Пятница, 31.07.2015, 17:34 | Сообщение № 836 | Тема: Как удалить столбцы с нулевыми значениями: без цифр и слов?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как вариант Выделяем строки 2:20
Жмем комбинации (буквы руские, раскладка должна быть русской, 0 - цифра)
F5>ALT+ВК>Enter>Ctrl+0>Ctrl+Shift+пробел>F5>Alt+ВЫ>Ctrl+->Enter>Shift+пробел>Ctrl+Sift+0>Home


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениекак вариант Выделяем строки 2:20
Жмем комбинации (буквы руские, раскладка должна быть русской, 0 - цифра)
F5>ALT+ВК>Enter>Ctrl+0>Ctrl+Shift+пробел>F5>Alt+ВЫ>Ctrl+->Enter>Shift+пробел>Ctrl+Sift+0>Home

Автор - krosav4ig
Дата добавления - 31.07.2015 в 17:34
krosav4ig Дата: Пятница, 31.07.2015, 21:47 | Сообщение № 837 | Тема: макрос для удаления всех символов до первого 0.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
А может так можно?[vba]
Код
Sub F()
      With Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)
          .NumberFormat = "general"
          .Replace " ", Empty, xlPart
          .Replace "*-", Empty, xlPart
          .Formula = .Value
      End With
End Sub
[/vba]
[p.s.]просто предположил, писал с телефона, проверить работу возможности нет. Если что, сильно не ругайте ^_^[/p.s.]

upd.
дополз до компа, проверил, исправил

upd.
для файла из 13 поста
[vba]
Код
Sub upd()
     Dim arr() As Variant
     With Range("C3:C" & Cells(Rows.Count, "C").End(xlUp).Row)
         arr = .Value
         With Intersect(.EntireRow, [I:I])
             .NumberFormat = "general"
             .Formula = arr
             .Replace " ", Empty, xlPart
             .Replace "*-", Empty, xlPart
         End With
     End With
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Суббота, 01.08.2015, 14:10
 
Ответить
СообщениеА может так можно?[vba]
Код
Sub F()
      With Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)
          .NumberFormat = "general"
          .Replace " ", Empty, xlPart
          .Replace "*-", Empty, xlPart
          .Formula = .Value
      End With
End Sub
[/vba]
[p.s.]просто предположил, писал с телефона, проверить работу возможности нет. Если что, сильно не ругайте ^_^[/p.s.]

upd.
дополз до компа, проверил, исправил

upd.
для файла из 13 поста
[vba]
Код
Sub upd()
     Dim arr() As Variant
     With Range("C3:C" & Cells(Rows.Count, "C").End(xlUp).Row)
         arr = .Value
         With Intersect(.EntireRow, [I:I])
             .NumberFormat = "general"
             .Formula = arr
             .Replace " ", Empty, xlPart
             .Replace "*-", Empty, xlPart
         End With
     End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 31.07.2015 в 21:47
krosav4ig Дата: Суббота, 01.08.2015, 14:32 | Сообщение № 838 | Тема: Как удалить столбцы с нулевыми значениями: без цифр и слов?
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[offtop]
это как же можно такое запомнить?

Игорь, это укороченный вариант, в исходном варианте вместо F5>ALT+В было ALT+ЯФВГ :) [/offtop]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение[offtop]
это как же можно такое запомнить?

Игорь, это укороченный вариант, в исходном варианте вместо F5>ALT+В было ALT+ЯФВГ :) [/offtop]

Автор - krosav4ig
Дата добавления - 01.08.2015 в 14:32
krosav4ig Дата: Воскресенье, 02.08.2015, 18:09 | Сообщение № 839 | Тема: Нумерация строк в сводной таблице
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[offtop]
программисты убивают, а сисадмины - закапывают

так вот что значит разделение труда и делегирование административных прав![/offtop]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Воскресенье, 02.08.2015, 18:10
 
Ответить
Сообщение[offtop]
программисты убивают, а сисадмины - закапывают

так вот что значит разделение труда и делегирование административных прав![/offtop]

Автор - krosav4ig
Дата добавления - 02.08.2015 в 18:09
krosav4ig Дата: Понедельник, 03.08.2015, 16:51 | Сообщение № 840 | Тема: Извлечь число из текста
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как вариант
Код
=МАКС(ЕСЛИОШИБКА(--ПСТР(A1;СТРОКА($1:$99);СТОЛБЕЦ($A:$L));))
К сообщению приложен файл: 1683264.xlsx (10.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениекак вариант
Код
=МАКС(ЕСЛИОШИБКА(--ПСТР(A1;СТРОКА($1:$99);СТОЛБЕЦ($A:$L));))

Автор - krosav4ig
Дата добавления - 03.08.2015 в 16:51
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!