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

Вход

Регистрация

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

 

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

Старая форма входа
Мир MS Excel » Записи участника » krosav4ig [2347]
Результаты поиска
krosav4ig Дата: Вторник, 20.05.2014, 01:00 | Сообщение № 61 | Тема: Сохранение изменяющихся данных в отдельную таблицу
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
ИМХО, вопрос по части vba. worksheet_change вам в помощь.
вот примерный код если ячейка для ввода A1 и диапазон для накапливания значений и времени B:C


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

Сообщение отредактировал krosav4ig - Вторник, 20.05.2014, 11:34
 
Ответить
СообщениеИМХО, вопрос по части vba. worksheet_change вам в помощь.
вот примерный код если ячейка для ввода A1 и диапазон для накапливания значений и времени B:C

Автор - krosav4ig
Дата добавления - 20.05.2014 в 01:00
krosav4ig Дата: Вторник, 20.05.2014, 17:26 | Сообщение № 62 | Тема: Изменение настроек по умолчанию
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
без VBA только ручками. вам нужно переписать макрос, который вставляет данные на лист. Думаю нужно метод [vba]
Код
Paste
[/vba] заменить на [vba]
Код
PasteSpecial xlPasteValues, xlPasteSpecialOperationNone, 0, 0
[/vba] если в ячейках только значения или [vba]
Код
PasteSpecial xlPasteFormulas, xlPasteSpecialOperationNone, 0, 0
[/vba] если в ячейках есть формулы.


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

Сообщение отредактировал krosav4ig - Вторник, 20.05.2014, 17:26
 
Ответить
Сообщениебез VBA только ручками. вам нужно переписать макрос, который вставляет данные на лист. Думаю нужно метод [vba]
Код
Paste
[/vba] заменить на [vba]
Код
PasteSpecial xlPasteValues, xlPasteSpecialOperationNone, 0, 0
[/vba] если в ячейках только значения или [vba]
Код
PasteSpecial xlPasteFormulas, xlPasteSpecialOperationNone, 0, 0
[/vba] если в ячейках есть формулы.

Автор - krosav4ig
Дата добавления - 20.05.2014 в 17:26
krosav4ig Дата: Вторник, 20.05.2014, 21:04 | Сообщение № 63 | Тема: Сохранение изменяющихся данных в отдельную таблицу
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
попробуйте перед строкой [vba]
Код
Target.Copy [B:C].Cells(n, 1)
[/vba] добавить строку [vba]
Код
Application.ScreenUpdating = 0
[/vba]
если сравнивать с B1 то код вот такой

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     Dim n As Integer
     n = Application.CountA([C:C]) + 1
     If Not Intersect(Target, [A1]) Is Nothing And _
       Not (IsEmpty(Target)) And Target = [B1] Then
         Target.Copy [C:C].Cells(n, 1)
     End If
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Вторник, 20.05.2014, 21:07
 
Ответить
Сообщениепопробуйте перед строкой [vba]
Код
Target.Copy [B:C].Cells(n, 1)
[/vba] добавить строку [vba]
Код
Application.ScreenUpdating = 0
[/vba]
если сравнивать с B1 то код вот такой

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
     Dim n As Integer
     n = Application.CountA([C:C]) + 1
     If Not Intersect(Target, [A1]) Is Nothing And _
       Not (IsEmpty(Target)) And Target = [B1] Then
         Target.Copy [C:C].Cells(n, 1)
     End If
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 20.05.2014 в 21:04
krosav4ig Дата: Среда, 21.05.2014, 02:04 | Сообщение № 64 | Тема: Поиск в выпадающем списке в любом месте слова
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
по моему CountLarge введен начиная с 2007 и не совместим с 2003. Попробуйте заменить на Target.Count > 1


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениепо моему CountLarge введен начиная с 2007 и не совместим с 2003. Попробуйте заменить на Target.Count > 1

Автор - krosav4ig
Дата добавления - 21.05.2014 в 02:04
krosav4ig Дата: Четверг, 22.05.2014, 17:44 | Сообщение № 65 | Тема: FindNext и If
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
это все потому, что проверка стоит снаружи цикла. Перенесите ее вовнутрь и будет все ок
[vba]
Код
With Worksheets("Лист4").Range("H6:H" & j, "S6:S" & j) 'ищем в этих диапозонах
     Set result = .Find(What:=Worksheets("Лист3").Range("d2").Offset(r, 0).Value, LookIn:=xlValues)  'это хочу найти
     If Not result Is Nothing Then
         firstAddress = result.Address 'запоминаем адрес первой найденной ячейки
         Do
             If Worksheets("Лист3").Range("c2").Offset(r, 0).Value = result.Offset(0, 22).Value Then  'сравнение
                 'Обрабатываем найденную ячейку
                 Worksheets("Лист3").Range("g2").Offset(r, 0).Value = result.Offset(0, -6).Value 'client
             End If
             Set result = .FindNext(result) 'ищем следующую
         Loop While Not result Is Nothing And result.Address <> firstAddress 'выход из цикла при переходе снова на первую
     End If
End With
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеэто все потому, что проверка стоит снаружи цикла. Перенесите ее вовнутрь и будет все ок
[vba]
Код
With Worksheets("Лист4").Range("H6:H" & j, "S6:S" & j) 'ищем в этих диапозонах
     Set result = .Find(What:=Worksheets("Лист3").Range("d2").Offset(r, 0).Value, LookIn:=xlValues)  'это хочу найти
     If Not result Is Nothing Then
         firstAddress = result.Address 'запоминаем адрес первой найденной ячейки
         Do
             If Worksheets("Лист3").Range("c2").Offset(r, 0).Value = result.Offset(0, 22).Value Then  'сравнение
                 'Обрабатываем найденную ячейку
                 Worksheets("Лист3").Range("g2").Offset(r, 0).Value = result.Offset(0, -6).Value 'client
             End If
             Set result = .FindNext(result) 'ищем следующую
         Loop While Not result Is Nothing And result.Address <> firstAddress 'выход из цикла при переходе снова на первую
     End If
End With
[/vba]

Автор - krosav4ig
Дата добавления - 22.05.2014 в 17:44
krosav4ig Дата: Воскресенье, 25.05.2014, 01:47 | Сообщение № 66 | Тема: Вставка данных при совпадении.
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Для этого нужно для начала ввести базу клиентов. В файле пример базы с использованием таблиц и списков подстановки
К сообщению приложен файл: baza_klientov.xlsm (24.8 Kb)


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

Сообщение отредактировал krosav4ig - Воскресенье, 25.05.2014, 01:57
 
Ответить
СообщениеДля этого нужно для начала ввести базу клиентов. В файле пример базы с использованием таблиц и списков подстановки

Автор - krosav4ig
Дата добавления - 25.05.2014 в 01:47
krosav4ig Дата: Воскресенье, 25.05.2014, 02:19 | Сообщение № 67 | Тема: Расчет контрольной суммы снилс
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
К сообщению приложен файл: nils.xls (41.5 Kb)


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

Сообщение отредактировал krosav4ig - Воскресенье, 25.05.2014, 03:15
 
Ответить
Сообщение

Автор - krosav4ig
Дата добавления - 25.05.2014 в 02:19
krosav4ig Дата: Воскресенье, 25.05.2014, 05:28 | Сообщение № 68 | Тема: Количество звездочек чтоб отображалось цифрой
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
посчитать количество звездочек можно формулой
Код
=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;"*";""))


или формулой массива
Код
=СУММ(--(ПСТР(A1;СТОЛБЕЦ(1:1);1)="*"))
К сообщению приложен файл: Test-.xlsx (13.4 Kb)


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

Сообщение отредактировал krosav4ig - Воскресенье, 25.05.2014, 05:42
 
Ответить
Сообщениепосчитать количество звездочек можно формулой
Код
=ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;"*";""))


или формулой массива
Код
=СУММ(--(ПСТР(A1;СТОЛБЕЦ(1:1);1)="*"))

Автор - krosav4ig
Дата добавления - 25.05.2014 в 05:28
krosav4ig Дата: Воскресенье, 25.05.2014, 16:57 | Сообщение № 69 | Тема: Подсчет времени
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Эту формулу нужно вводить комбинацией Ctrl+Shift+Enter


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЭту формулу нужно вводить комбинацией Ctrl+Shift+Enter

Автор - krosav4ig
Дата добавления - 25.05.2014 в 16:57
krosav4ig Дата: Понедельник, 26.05.2014, 19:49 | Сообщение № 70 | Тема: Автоматический подбор коэффициента в зависимости от суммы
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а я вот такую формулу наваял
Код
=F1*СУММ((F1>={0;0.15;0.25;0.5;0.75;1;1.5;3;4;6;8;12;18;24;30;36;45;52.5;60;70;80;100;120;140;160;180;200;220})*(F1<{0.15;0.25;0.5;0.75;1;1.5;3;4;6;8;12;18;24;30;36;45;52.5;60;70;80;100;120;140;160;180;200;220;" "})*{33.75;29.25;27.3;20.22;16.65;12.69;11.88;10.98;8.77;7.07;6.15;4.76;4.13;3.52;3.06;2.62;2.33;2.01;1.68;1.56;1.22;1.04;0.9;0.8;0.73;0.66;0.61;0.58})/100*3.731
%)

массивы можно заменить на именованные, тогда получится что-то типа такого
Код
=F1*СУММ((F1>=min)*(F1<max)*Ki)/100*3.731
(формула массива)
К сообщению приложен файл: Primer-.xls (23.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеа я вот такую формулу наваял
Код
=F1*СУММ((F1>={0;0.15;0.25;0.5;0.75;1;1.5;3;4;6;8;12;18;24;30;36;45;52.5;60;70;80;100;120;140;160;180;200;220})*(F1<{0.15;0.25;0.5;0.75;1;1.5;3;4;6;8;12;18;24;30;36;45;52.5;60;70;80;100;120;140;160;180;200;220;" "})*{33.75;29.25;27.3;20.22;16.65;12.69;11.88;10.98;8.77;7.07;6.15;4.76;4.13;3.52;3.06;2.62;2.33;2.01;1.68;1.56;1.22;1.04;0.9;0.8;0.73;0.66;0.61;0.58})/100*3.731
%)

массивы можно заменить на именованные, тогда получится что-то типа такого
Код
=F1*СУММ((F1>=min)*(F1<max)*Ki)/100*3.731
(формула массива)

Автор - krosav4ig
Дата добавления - 26.05.2014 в 19:49
krosav4ig Дата: Понедельник, 26.05.2014, 20:04 | Сообщение № 71 | Тема: Определить диапазон значений
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а если нужно получить ссылку на искомый диапазон, то формула
Код
=СМЕЩ(ИНДЕКС(B:B;ПОИСКПОЗ(C1;A:A;0));0;0;СЧЁТЕСЛИ(A:A;C1))


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеа если нужно получить ссылку на искомый диапазон, то формула
Код
=СМЕЩ(ИНДЕКС(B:B;ПОИСКПОЗ(C1;A:A;0));0;0;СЧЁТЕСЛИ(A:A;C1))

Автор - krosav4ig
Дата добавления - 26.05.2014 в 20:04
krosav4ig Дата: Понедельник, 26.05.2014, 23:11 | Сообщение № 72 | Тема: сколько раз встречаются...
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
я тут от скуки решил поиграться с массивами, формулами, именованными диапазонами и сводными таблицами. Вообщем со всем подряд :)
вот что у мну получилось

заменил файл, чето там я перемудрил немного ...
К сообщению приложен файл: 123.xls (80.0 Kb)


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

Сообщение отредактировал krosav4ig - Вторник, 27.05.2014, 01:44
 
Ответить
Сообщениея тут от скуки решил поиграться с массивами, формулами, именованными диапазонами и сводными таблицами. Вообщем со всем подряд :)
вот что у мну получилось

заменил файл, чето там я перемудрил немного ...

Автор - krosav4ig
Дата добавления - 26.05.2014 в 23:11
krosav4ig Дата: Вторник, 27.05.2014, 02:10 | Сообщение № 73 | Тема: защищены лист
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
оба яичка заблокировано

как-то это меня настораживает...


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение
оба яичка заблокировано

как-то это меня настораживает...

Автор - krosav4ig
Дата добавления - 27.05.2014 в 02:10
krosav4ig Дата: Вторник, 27.05.2014, 14:39 | Сообщение № 74 | Тема: Одновременное скрытие/отображение пустых строк и столбцов
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как-то так [vba]
Код
Private Sub CommandButton1_Click()
Application.ScreenUpdating = 0: Application.EnableEvents = 0
Dim Rng, ResRng As Range
     If CommandButton1.Caption = "Скрыть пустые столбцы" Then
         Set Rng = Range("F5:J5").Find(Empty, LookIn:=xlValues)
         If Not Rng Is Nothing Then
             Set ResRng = Rng
             firstAddress = Rng.Address
             Do
                 Set Rng = Range("F5:J5").FindNext(Rng)
                 Set ResRng = Union(ResRng, Rng)
             Loop While Not Rng Is Nothing And Rng.Address <> firstAddress
             ResRng.EntireColumn.Hidden = 1
         End If
         Set Rng = Range("L6:L19").Find(Empty, LookIn:=xlValues)
         If Not Rng Is Nothing Then
             Set ResRng = Rng
             firstAddress = Rng.Address
             Do
                 Set Rng = Range("L6:L19").FindNext(Rng)
                 Set ResRng = Union(ResRng, Rng)
             Loop While Not Rng Is Nothing And Rng.Address <> firstAddress
             ResRng.EntireRow.Hidden = 1
         End If
         CommandButton1.Caption = "Отразить все столбцы"
     Else
         Range("F5:J5").Columns.Hidden = False
         Range("L6:L19").Rows.Hidden = False
         CommandButton1.Caption = "Скрыть пустые столбцы"
     End If
Application.ScreenUpdating = 1: Application.EnableEvents = 1
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Вторник, 27.05.2014, 14:53
 
Ответить
Сообщениекак-то так [vba]
Код
Private Sub CommandButton1_Click()
Application.ScreenUpdating = 0: Application.EnableEvents = 0
Dim Rng, ResRng As Range
     If CommandButton1.Caption = "Скрыть пустые столбцы" Then
         Set Rng = Range("F5:J5").Find(Empty, LookIn:=xlValues)
         If Not Rng Is Nothing Then
             Set ResRng = Rng
             firstAddress = Rng.Address
             Do
                 Set Rng = Range("F5:J5").FindNext(Rng)
                 Set ResRng = Union(ResRng, Rng)
             Loop While Not Rng Is Nothing And Rng.Address <> firstAddress
             ResRng.EntireColumn.Hidden = 1
         End If
         Set Rng = Range("L6:L19").Find(Empty, LookIn:=xlValues)
         If Not Rng Is Nothing Then
             Set ResRng = Rng
             firstAddress = Rng.Address
             Do
                 Set Rng = Range("L6:L19").FindNext(Rng)
                 Set ResRng = Union(ResRng, Rng)
             Loop While Not Rng Is Nothing And Rng.Address <> firstAddress
             ResRng.EntireRow.Hidden = 1
         End If
         CommandButton1.Caption = "Отразить все столбцы"
     Else
         Range("F5:J5").Columns.Hidden = False
         Range("L6:L19").Rows.Hidden = False
         CommandButton1.Caption = "Скрыть пустые столбцы"
     End If
Application.ScreenUpdating = 1: Application.EnableEvents = 1
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 27.05.2014 в 14:39
krosav4ig Дата: Среда, 28.05.2014, 14:42 | Сообщение № 75 | Тема: сколько раз встречаются...
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
в предыдущем файле использовалсь объединение двух диапазонов (шапка и список) в один UDF функцией. В принципе если диапазон дат один (неперерывный), то можно обойтись и без нее. В этом файле шапка фиксированно находится на 1й строке, а со 2 строки формула массива
Код
{=ЕСЛИОШИБКА(ИНДЕКС(Список;СТРОКА()-1;{1;2;3});"")}
Диапазон этой сформулой автоматически изменяется при активации листа взависимости от количества заполненных строк на 1 листе.
В качестве источника сводной таблицы используется динамический именованный диапазон табл. Сводная таблица автоматически обновляется макросом при любом изменении в диапазоне E1:E2 и при активации этого листа.
именованный диапазон Список возвращает диазон из таблицы на 1 листе от первого вхождения даты из ячейки E1 до последнего вхождения даты из ячейки E2
Код
СМЕЩ(Лист1!C3;;;СЧЁТЗ(Лист1!C:C)-1)
- это динамический диапазон, содержащий все данные из столбца Дат на 1 листе
именованный диапазон Табл возвращает диапазон, содержащий все непустые строки из столбцов H:J

таблица на 1 листе должна быть отсортирована по дате в порядке возрастания
ну вроде все.

[p.s.] для числовых значений формула массива
Код
=СУММ(ЕСЛИ(ЕОШИБКА(ПРОСМОТР(диапазон;значение));1))+1
работает точно также как и формула
Код
=ПОИСКПОЗ(значение;диапазон);0)
при условии, что значения в диапазоне отсортированы в порядке возрастания
К сообщению приложен файл: 123_.xlsm (26.4 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениев предыдущем файле использовалсь объединение двух диапазонов (шапка и список) в один UDF функцией. В принципе если диапазон дат один (неперерывный), то можно обойтись и без нее. В этом файле шапка фиксированно находится на 1й строке, а со 2 строки формула массива
Код
{=ЕСЛИОШИБКА(ИНДЕКС(Список;СТРОКА()-1;{1;2;3});"")}
Диапазон этой сформулой автоматически изменяется при активации листа взависимости от количества заполненных строк на 1 листе.
В качестве источника сводной таблицы используется динамический именованный диапазон табл. Сводная таблица автоматически обновляется макросом при любом изменении в диапазоне E1:E2 и при активации этого листа.
именованный диапазон Список возвращает диазон из таблицы на 1 листе от первого вхождения даты из ячейки E1 до последнего вхождения даты из ячейки E2
Код
СМЕЩ(Лист1!C3;;;СЧЁТЗ(Лист1!C:C)-1)
- это динамический диапазон, содержащий все данные из столбца Дат на 1 листе
именованный диапазон Табл возвращает диапазон, содержащий все непустые строки из столбцов H:J

таблица на 1 листе должна быть отсортирована по дате в порядке возрастания
ну вроде все.

[p.s.] для числовых значений формула массива
Код
=СУММ(ЕСЛИ(ЕОШИБКА(ПРОСМОТР(диапазон;значение));1))+1
работает точно также как и формула
Код
=ПОИСКПОЗ(значение;диапазон);0)
при условии, что значения в диапазоне отсортированы в порядке возрастания

Автор - krosav4ig
Дата добавления - 28.05.2014 в 14:42
krosav4ig Дата: Четверг, 29.05.2014, 01:23 | Сообщение № 76 | Тема: сколько раз встречаются...
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Раз меня все-таки проперло на VBA, то держите



заменил файл.
К сообщению приложен файл: 123_2.xlsm (82.7 Kb)


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

Сообщение отредактировал krosav4ig - Четверг, 29.05.2014, 12:37
 
Ответить
СообщениеРаз меня все-таки проперло на VBA, то держите



заменил файл.

Автор - krosav4ig
Дата добавления - 29.05.2014 в 01:23
krosav4ig Дата: Четверг, 29.05.2014, 19:59 | Сообщение № 77 | Тема: как напечатать таблицу без разрывов
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
имхо вопрос по части VBA
[vba]
Код
Sub PageBreak()
      Application.ScreenUpdating = 0: Application.EnableEvents = 0
      Dim F&, L&, I&, J&, K&, S$
        
      With ActiveSheet.UsedRange
          F = .Column
          L = .Column + .Columns.Count - 1
      End With
        
      Do While I < ActiveSheet.HPageBreaks.Count
          I = I + 1
          J = ActiveSheet.HPageBreaks(I).Location.Row
          For K = F To L
              If Cells(J, K).MergeCells And Cells(J - 1, K).MergeCells Then
                  If Cells(J, K).MergeArea.Address = Cells(J - 1, K).MergeArea.Address _
                  And S <> Cells(J, K).MergeArea.Address Then
                      S = Cells(J, K).MergeArea.Address
                      Set ActiveSheet.HPageBreaks(I).Location = Cells(J, K).MergeArea.Offset(1)
                  End If
              End If
          Next
      Loop
      Application.ScreenUpdating = 1: Application.EnableEvents = 1
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Четверг, 29.05.2014, 20:05
 
Ответить
Сообщениеимхо вопрос по части VBA
[vba]
Код
Sub PageBreak()
      Application.ScreenUpdating = 0: Application.EnableEvents = 0
      Dim F&, L&, I&, J&, K&, S$
        
      With ActiveSheet.UsedRange
          F = .Column
          L = .Column + .Columns.Count - 1
      End With
        
      Do While I < ActiveSheet.HPageBreaks.Count
          I = I + 1
          J = ActiveSheet.HPageBreaks(I).Location.Row
          For K = F To L
              If Cells(J, K).MergeCells And Cells(J - 1, K).MergeCells Then
                  If Cells(J, K).MergeArea.Address = Cells(J - 1, K).MergeArea.Address _
                  And S <> Cells(J, K).MergeArea.Address Then
                      S = Cells(J, K).MergeArea.Address
                      Set ActiveSheet.HPageBreaks(I).Location = Cells(J, K).MergeArea.Offset(1)
                  End If
              End If
          Next
      Loop
      Application.ScreenUpdating = 1: Application.EnableEvents = 1
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 29.05.2014 в 19:59
krosav4ig Дата: Четверг, 29.05.2014, 20:02 | Сообщение № 78 | Тема: Соеденить два столбца
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как-то так
К сообщению приложен файл: _1.xls (18.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениекак-то так

Автор - krosav4ig
Дата добавления - 29.05.2014 в 20:02
krosav4ig Дата: Пятница, 30.05.2014, 00:18 | Сообщение № 79 | Тема: Макрос выдает ошибку #VALUE!
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
bygaga, если нужна строка может Caller.Row ? ;) ну или просто Caller если нужна ячейка из которой взывается функция


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

Сообщение отредактировал krosav4ig - Пятница, 30.05.2014, 00:22
 
Ответить
Сообщениеbygaga, если нужна строка может Caller.Row ? ;) ну или просто Caller если нужна ячейка из которой взывается функция

Автор - krosav4ig
Дата добавления - 30.05.2014 в 00:18
krosav4ig Дата: Суббота, 31.05.2014, 01:55 | Сообщение № 80 | Тема: Алгоритм нахождения максимальной суммы. (не брутфорс)
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
чето я тут намудрил (_)O_o(_). Аж самому страшно :D
К сообщению приложен файл: perebor4iz8_.xls (67.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениечето я тут намудрил (_)O_o(_). Аж самому страшно :D

Автор - krosav4ig
Дата добавления - 31.05.2014 в 01:55
Мир MS Excel » Записи участника » krosav4ig [2347]
Поиск:

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