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

Вход

Регистрация

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

 

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

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

Excel 2007,2010,2013
Вот как вариант с использованием листа-шаблона
К сообщению приложен файл: -demo3-1.xlsm (35.7 Kb)


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

Сообщение отредактировал krosav4ig - Понедельник, 28.04.2014, 03:57
 
Ответить
СообщениеВот как вариант с использованием листа-шаблона

Автор - krosav4ig
Дата добавления - 28.04.2014 в 03:50
krosav4ig Дата: Воскресенье, 27.04.2014, 02:43 | Сообщение № 2322 | Тема: Ограничить движение курсора мыши, хук на мышь
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Нашел у себя в закромах библиотеку хука, написанную на delphi

[vba]
Код
library LowLevelMouseHook;

uses
       Windows,
       Messages;

const
       WH_MOUSE_LL = 14;
       MMFName: PChar = 'MMF';

type
       PGlobalDLLData = ^TGlobalDLLData;
       TGlobalDLLData = packed record
         WndHook: HWND;
         Wnd: HWND;
       end;

type
      TMouseHookFilters = record
        BlockMouseMove: boolean;
        BlockLeftButton: boolean;
        BlockRightButton: boolean;
        BlockMiddleButton: boolean;
        BlockWheel: boolean;
        end;

var
       GlobalData: PGlobalDLLData;
       MMFHandle: THandle;
       Filters: TMouseHookFilters;
       MWM_LBUTTONDOWN: Cardinal;
       MWM_LBUTTONUP: Cardinal;

function LowLevelMouseProc(Code: Integer; wParam: DWORD; lParam: DWORD): Longint; stdcall;
begin
       if (Code = HC_ACTION) then
       begin
         if (wParam =  WM_LBUTTONDOWN) then
         begin
           SendMessage(GlobalData.Wnd, MWM_LBUTTONDOWN, 0, 0);
           if Filters.BlockLeftButton = True then
             Result := - 1
           else
             Result := CallNextHookEx(GlobalData^.WndHook, Code, wParam, lParam);
         end else
         if (wParam =  WM_LBUTTONUP) then
         begin
           SendMessage(GlobalData.Wnd, MWM_LBUTTONUP, 0, 0);
           if Filters.BlockLeftButton = True then
             Result := - 1
           else
             Result := CallNextHookEx(GlobalData^.WndHook, Code, wParam, lParam);
         end
         else
           Result := CallNextHookEx(GlobalData^.WndHook, Code, wParam, lParam);
       end;
end;

function StartMouseHook(State: Boolean; Wnd: HWND): Boolean; export; stdcall;
begin
       Result := False;
       if State = True then
       begin
         GlobalData^.WndHook := SetWindowsHookEx(WH_MOUSE_LL, @LowLevelMouseProc, hInstance, 0);
         GlobalData^.Wnd := Wnd;
         if GlobalData^.WndHook <> 0 then
           Result := True;
       end
       else
       begin
         UnhookWindowsHookEx(GlobalData^.WndHook);
         Result := False;
       end;
end;

function StopMouseHook(): Boolean; export; stdcall;
begin
       UnhookWindowsHookEx(GlobalData^.WndHook);
       if GlobalData^.WndHook = 0 then
         Result := False
       else
        Result := True;
end;

function UpdateMouseHook(HookFilters: TMouseHookFilters): Boolean; export; stdcall;
begin
       Filters := HookFilters;
end;

procedure OpenGlobalData();
begin
       MWM_LBUTTONDOWN := RegisterWindowMessage('MWM_LBUTTONDOWN');
       MWM_LBUTTONUP := RegisterWindowMessage('MWM_LBUTTONUP');
       MMFHandle := CreateFileMapping(INVALID_HANDLE_VALUE, nil, PAGE_READWRITE, 0, SizeOf(TGlobalDLLData), MMFName);
       GlobalData := MapViewOfFile(MMFHandle, FILE_MAP_ALL_ACCESS, 0, 0, SizeOf(TGlobalDLLData));
       if GlobalData = nil then
         CloseHandle(MMFHandle);
end;

procedure CloseGlobalData();
begin
       UnmapViewOfFile(GlobalData);
       CloseHandle(MMFHandle);
end;

procedure DLLEntryPoint(Reason: DWORD);
begin
       case Reason of
         DLL_PROCESS_ATTACH: OpenGlobalData;
         DLL_PROCESS_DETACH: CloseGlobalData;
       end;
end;

exports StartMouseHook, StopMouseHook, UpdateMouseHook;

begin
       DLLEntryPoint(DLL_PROCESS_ATTACH);
end.
[/vba]

в самой программе в коде формы в разделе initialization
[vba]
Код

MWM_LBUTTONDOWN := RegisterWindowMessage('MWM_LBUTTONDOWN');
MWM_LBUTTONUP := RegisterWindowMessage('MWM_LBUTTONUP');
[/vba]

ловушка ставилась вызовом функи
[vba]
Код
     if StartMouseHook(true, Handle) = true then
              HookEnable := true;
[/vba]

и обработчик нажатия
[vba]
Код
procedure TForm1.WndProc(var Msg: TMessage)
{ отслеживаем нажатия левой кл. мыши } ;
begin
       inherited;
       if (Msg.Msg = MWM_LBUTTONDOWN{MWM_LBUTTONUP}) then
       begin
       ShowMessage('DOWN'{'UP'})
       end;
end;
[/vba]

можно ли это как-нить прикрутить к VBA?
К сообщению приложен файл: llmh.zip (16.1 Kb)


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

Сообщение отредактировал krosav4ig - Воскресенье, 27.04.2014, 02:59
 
Ответить
СообщениеНашел у себя в закромах библиотеку хука, написанную на delphi

[vba]
Код
library LowLevelMouseHook;

uses
       Windows,
       Messages;

const
       WH_MOUSE_LL = 14;
       MMFName: PChar = 'MMF';

type
       PGlobalDLLData = ^TGlobalDLLData;
       TGlobalDLLData = packed record
         WndHook: HWND;
         Wnd: HWND;
       end;

type
      TMouseHookFilters = record
        BlockMouseMove: boolean;
        BlockLeftButton: boolean;
        BlockRightButton: boolean;
        BlockMiddleButton: boolean;
        BlockWheel: boolean;
        end;

var
       GlobalData: PGlobalDLLData;
       MMFHandle: THandle;
       Filters: TMouseHookFilters;
       MWM_LBUTTONDOWN: Cardinal;
       MWM_LBUTTONUP: Cardinal;

function LowLevelMouseProc(Code: Integer; wParam: DWORD; lParam: DWORD): Longint; stdcall;
begin
       if (Code = HC_ACTION) then
       begin
         if (wParam =  WM_LBUTTONDOWN) then
         begin
           SendMessage(GlobalData.Wnd, MWM_LBUTTONDOWN, 0, 0);
           if Filters.BlockLeftButton = True then
             Result := - 1
           else
             Result := CallNextHookEx(GlobalData^.WndHook, Code, wParam, lParam);
         end else
         if (wParam =  WM_LBUTTONUP) then
         begin
           SendMessage(GlobalData.Wnd, MWM_LBUTTONUP, 0, 0);
           if Filters.BlockLeftButton = True then
             Result := - 1
           else
             Result := CallNextHookEx(GlobalData^.WndHook, Code, wParam, lParam);
         end
         else
           Result := CallNextHookEx(GlobalData^.WndHook, Code, wParam, lParam);
       end;
end;

function StartMouseHook(State: Boolean; Wnd: HWND): Boolean; export; stdcall;
begin
       Result := False;
       if State = True then
       begin
         GlobalData^.WndHook := SetWindowsHookEx(WH_MOUSE_LL, @LowLevelMouseProc, hInstance, 0);
         GlobalData^.Wnd := Wnd;
         if GlobalData^.WndHook <> 0 then
           Result := True;
       end
       else
       begin
         UnhookWindowsHookEx(GlobalData^.WndHook);
         Result := False;
       end;
end;

function StopMouseHook(): Boolean; export; stdcall;
begin
       UnhookWindowsHookEx(GlobalData^.WndHook);
       if GlobalData^.WndHook = 0 then
         Result := False
       else
        Result := True;
end;

function UpdateMouseHook(HookFilters: TMouseHookFilters): Boolean; export; stdcall;
begin
       Filters := HookFilters;
end;

procedure OpenGlobalData();
begin
       MWM_LBUTTONDOWN := RegisterWindowMessage('MWM_LBUTTONDOWN');
       MWM_LBUTTONUP := RegisterWindowMessage('MWM_LBUTTONUP');
       MMFHandle := CreateFileMapping(INVALID_HANDLE_VALUE, nil, PAGE_READWRITE, 0, SizeOf(TGlobalDLLData), MMFName);
       GlobalData := MapViewOfFile(MMFHandle, FILE_MAP_ALL_ACCESS, 0, 0, SizeOf(TGlobalDLLData));
       if GlobalData = nil then
         CloseHandle(MMFHandle);
end;

procedure CloseGlobalData();
begin
       UnmapViewOfFile(GlobalData);
       CloseHandle(MMFHandle);
end;

procedure DLLEntryPoint(Reason: DWORD);
begin
       case Reason of
         DLL_PROCESS_ATTACH: OpenGlobalData;
         DLL_PROCESS_DETACH: CloseGlobalData;
       end;
end;

exports StartMouseHook, StopMouseHook, UpdateMouseHook;

begin
       DLLEntryPoint(DLL_PROCESS_ATTACH);
end.
[/vba]

в самой программе в коде формы в разделе initialization
[vba]
Код

MWM_LBUTTONDOWN := RegisterWindowMessage('MWM_LBUTTONDOWN');
MWM_LBUTTONUP := RegisterWindowMessage('MWM_LBUTTONUP');
[/vba]

ловушка ставилась вызовом функи
[vba]
Код
     if StartMouseHook(true, Handle) = true then
              HookEnable := true;
[/vba]

и обработчик нажатия
[vba]
Код
procedure TForm1.WndProc(var Msg: TMessage)
{ отслеживаем нажатия левой кл. мыши } ;
begin
       inherited;
       if (Msg.Msg = MWM_LBUTTONDOWN{MWM_LBUTTONUP}) then
       begin
       ShowMessage('DOWN'{'UP'})
       end;
end;
[/vba]

можно ли это как-нить прикрутить к VBA?

Автор - krosav4ig
Дата добавления - 27.04.2014 в 02:43
krosav4ig Дата: Пятница, 25.04.2014, 20:24 | Сообщение № 2323 | Тема: Ограничить движение курсора мыши, хук на мышь
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

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


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеВообщем задача такая: ограничить движение курсора при нажатии левой кнопкой мыши на определенном диапазоне границами этого диапазона. Все, что я смог сделать- это написать код для правой кнопки мыши. В примере диапазоны, в которых должен "запираться" курсор выделены зеленым цветом. Все уперлось в хук. Нужно чтобы при нажатии левой кнопки движение курсора ограничивалось границами соответствующего диапазона и при отпускании левой кнопки ограничение снималось.

Автор - krosav4ig
Дата добавления - 25.04.2014 в 20:24
krosav4ig Дата: Среда, 23.04.2014, 12:29 | Сообщение № 2324 | Тема: ТОРГ-2
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
ИМХО, этот вопрос по части VBA.


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

Сообщение отредактировал krosav4ig - Среда, 23.04.2014, 12:32
 
Ответить
СообщениеИМХО, этот вопрос по части VBA.

Автор - krosav4ig
Дата добавления - 23.04.2014 в 12:29
krosav4ig Дата: Вторник, 22.04.2014, 18:22 | Сообщение № 2325 | Тема: преобразование строки в числовой эквивалент
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как-то так [vba]
Код
Public Sub numbers()
With ActiveSheet.UsedRange
        For Each oCell In .Range("A:A,C:K,N:O")
            If oCell <> "" And Val(oCell) <> 0 Then
                oCell.Formula = Val(oCell)
            End If
        Next
End With
End Sub
[/vba]

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

[vba]
Код
For Each oCell In .Range("A:A,C:K,N:O")
[/vba]
написать
[vba]
Код
For Each oCell In .Range("A:A,C:K,N:" & _
           Split(Columns(.Column + .Columns.Count - 1).Address(False, False), ":")(0))
[/vba]

чтобы ускорить работу макроса можно ограничить диапазон, указав количество обрабатываемых строк, но этот способ работает только с непрерывными диапазонами, из-за этого приходится добавлять еще один цикл
[vba]
Код
Public Sub numbers()
With ActiveSheet.UsedRange
     For Each Rng In Array("A:A", "C:K", "N:O")
         For Each ocell In .Range(Rng).Rows(.Row & ":" & .Row + .Rows.Count - 1).Cells
             If ocell <> "" And Val(ocell) <> 0 Then
                 ocell.Formula = Val(ocell)
             End If
         Next
     Next
End With
End Sub
[/vba]


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

Сообщение отредактировал krosav4ig - Среда, 23.04.2014, 17:10
 
Ответить
Сообщениекак-то так [vba]
Код
Public Sub numbers()
With ActiveSheet.UsedRange
        For Each oCell In .Range("A:A,C:K,N:O")
            If oCell <> "" And Val(oCell) <> 0 Then
                oCell.Formula = Val(oCell)
            End If
        Next
End With
End Sub
[/vba]

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

[vba]
Код
For Each oCell In .Range("A:A,C:K,N:O")
[/vba]
написать
[vba]
Код
For Each oCell In .Range("A:A,C:K,N:" & _
           Split(Columns(.Column + .Columns.Count - 1).Address(False, False), ":")(0))
[/vba]

чтобы ускорить работу макроса можно ограничить диапазон, указав количество обрабатываемых строк, но этот способ работает только с непрерывными диапазонами, из-за этого приходится добавлять еще один цикл
[vba]
Код
Public Sub numbers()
With ActiveSheet.UsedRange
     For Each Rng In Array("A:A", "C:K", "N:O")
         For Each ocell In .Range(Rng).Rows(.Row & ":" & .Row + .Rows.Count - 1).Cells
             If ocell <> "" And Val(ocell) <> 0 Then
                 ocell.Formula = Val(ocell)
             End If
         Next
     Next
End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 22.04.2014 в 18:22
krosav4ig Дата: Воскресенье, 20.04.2014, 17:43 | Сообщение № 2326 | Тема: Создать функцию из двух других или болле
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
чето как я ни крутил, у меня ноль не получился
К сообщению приложен файл: 123123.xlsx (10.8 Kb)


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

Автор - krosav4ig
Дата добавления - 20.04.2014 в 17:43
krosav4ig Дата: Четверг, 17.04.2014, 18:13 | Сообщение № 2327 | Тема: "..." - не многоточие
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Это все из-за автозамены. Чтобы в ячейку ввести значение ...1... нужно удалить соответствующее отключить правило автозамены.


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЭто все из-за автозамены. Чтобы в ячейку ввести значение ...1... нужно удалить соответствующее отключить правило автозамены.

Автор - krosav4ig
Дата добавления - 17.04.2014 в 18:13
krosav4ig Дата: Четверг, 17.04.2014, 14:37 | Сообщение № 2328 | Тема: Номер месяца в формуле
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Serge_007, да, я это заметил, что-то под конец дня подтупливаю.

squadgazzz, То что я написал в формуле
Код
ТЕКСТ(4*30;"ММММ")
это получение названия месяца по номеру, где 4-номер искомого месяца. Если нужно получить номер, то вы должны хотя бы сообщить из каких данных, из какого формата его нужно получить. Если из даты в числовом формате, то
Код
=МЕСЯЦ(A1)
, если текущий месяц, то
Код
=МЕСЯЦ(СЕГОДНЯ())
, если из имени месяца, то воспользовавшись поиском по форуму нашли бы формулу выложенную Serge_007
Код
=(ПОИСК(ПСТР(A1;2;2);"anebarprayunulugepctovec")+1)/2
(для имени месяца на английском языке)
Код
=(ПОИСК(ПСТР(A1;2;2);"нвеварпрайюнюлвгенктояек")+1)/2
(та же формула для имени месяца на русском языке). Если очень надо, то можно немного поизвращаться и получить универсальную русско-английскую формулу
Код
=СУММ(ЕСЛИОШИБКА((ПОИСК(ПСТР(A1;2;2);{"нвеварпрайюнюлвгенктояек";"anebarprayunulugepctovec"})+1)/2;0))
(формула массива, вводить комбинацией ctrl+shift+enter


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

Сообщение отредактировал krosav4ig - Пятница, 18.04.2014, 03:14
 
Ответить
СообщениеSerge_007, да, я это заметил, что-то под конец дня подтупливаю.

squadgazzz, То что я написал в формуле
Код
ТЕКСТ(4*30;"ММММ")
это получение названия месяца по номеру, где 4-номер искомого месяца. Если нужно получить номер, то вы должны хотя бы сообщить из каких данных, из какого формата его нужно получить. Если из даты в числовом формате, то
Код
=МЕСЯЦ(A1)
, если текущий месяц, то
Код
=МЕСЯЦ(СЕГОДНЯ())
, если из имени месяца, то воспользовавшись поиском по форуму нашли бы формулу выложенную Serge_007
Код
=(ПОИСК(ПСТР(A1;2;2);"anebarprayunulugepctovec")+1)/2
(для имени месяца на английском языке)
Код
=(ПОИСК(ПСТР(A1;2;2);"нвеварпрайюнюлвгенктояек")+1)/2
(та же формула для имени месяца на русском языке). Если очень надо, то можно немного поизвращаться и получить универсальную русско-английскую формулу
Код
=СУММ(ЕСЛИОШИБКА((ПОИСК(ПСТР(A1;2;2);{"нвеварпрайюнюлвгенктояек";"anebarprayunulugepctovec"})+1)/2;0))
(формула массива, вводить комбинацией ctrl+shift+enter

Автор - krosav4ig
Дата добавления - 17.04.2014 в 14:37
krosav4ig Дата: Среда, 16.04.2014, 16:14 | Сообщение № 2329 | Тема: Номер месяца в формуле
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Код
=ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ("№ ЗР";Диаграмма!$A$39;"Дата";ТЕКСТ(4*30;"ММММ");"фирма";"Юнтел";"Дата_Отчет";"Дата";"Роки";2014)


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

Сообщение отредактировал krosav4ig - Среда, 16.04.2014, 16:21
 
Ответить
Сообщение
Код
=ПОЛУЧИТЬ.ДАННЫЕ.СВОДНОЙ.ТАБЛИЦЫ("№ ЗР";Диаграмма!$A$39;"Дата";ТЕКСТ(4*30;"ММММ");"фирма";"Юнтел";"Дата_Отчет";"Дата";"Роки";2014)

Автор - krosav4ig
Дата добавления - 16.04.2014 в 16:14
krosav4ig Дата: Среда, 16.04.2014, 15:58 | Сообщение № 2330 | Тема: потвтор строк в таблице
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
может так?
К сообщению приложен файл: 8527666.xlsx (12.2 Kb)


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

Автор - krosav4ig
Дата добавления - 16.04.2014 в 15:58
krosav4ig Дата: Вторник, 15.04.2014, 18:53 | Сообщение № 2331 | Тема: скрытие системных контекстных меню
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Все. Разобрался. Оказывается в excel есть 2 меню с одинаковым именем Cell - c индексами 29 и 32
заменил [vba]
Код
Application.CommandBars("cell").Enabled = False
[/vba] на [vba]
Код
Application.CommandBars(29).Enabled = False
Application.CommandBars(32).Enabled = False
[/vba]
и [vba]
Код
Application.CommandBars("cell").Enabled = True
[/vba]
на [vba]
Код
Application.CommandBars(29).Enabled = True
Application.CommandBars(32).Enabled = True
[/vba] и все работает как надо


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

Сообщение отредактировал krosav4ig - Вторник, 15.04.2014, 18:53
 
Ответить
СообщениеВсе. Разобрался. Оказывается в excel есть 2 меню с одинаковым именем Cell - c индексами 29 и 32
заменил [vba]
Код
Application.CommandBars("cell").Enabled = False
[/vba] на [vba]
Код
Application.CommandBars(29).Enabled = False
Application.CommandBars(32).Enabled = False
[/vba]
и [vba]
Код
Application.CommandBars("cell").Enabled = True
[/vba]
на [vba]
Код
Application.CommandBars(29).Enabled = True
Application.CommandBars(32).Enabled = True
[/vba] и все работает как надо

Автор - krosav4ig
Дата добавления - 15.04.2014 в 18:53
krosav4ig Дата: Вторник, 15.04.2014, 18:06 | Сообщение № 2332 | Тема: преобразование строки в числовой эквивалент
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Public Sub numbers()
For Each oCell In ActiveSheet.UsedRange.Cells
     If oCell <> "" And Val(oCell) <> 0 Then
         oCell.Formula = Val(oCell)
     End If
Next
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение[vba]
Код
Public Sub numbers()
For Each oCell In ActiveSheet.UsedRange.Cells
     If oCell <> "" And Val(oCell) <> 0 Then
         oCell.Formula = Val(oCell)
     End If
Next
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 15.04.2014 в 18:06
krosav4ig Дата: Понедельник, 14.04.2014, 22:51 | Сообщение № 2333 | Тема: скрытие системных контекстных меню
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
здравствуйте. Пишу проект на VBA. Делаю свое контекстное меню для листа. Меню создается при первом его вызове макросом и удаляется после закрытия книги. Вызывается оно таким кодом
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     Application.CommandBars("cell").Enabled = False
     Application.CommandBars("List Range Popup").Enabled = False
     Application.CommandBars("row").Enabled = False
     Application.CommandBars("column").Enabled = False
     On Error GoTo 2
1:  Application.CommandBars("меню1").ShowPopup
     Application.OnTime Now + TimeValue("00:00:01"), ThisWorkbook.Name & "!module1.restore"
     Exit Sub
2: menu = 1
     Application.Run "'" & ThisWorkbook.Name & "'!module1.create_menu(menu)"
     GoTo 1
End Sub
[/vba]

вот код модуля restore:
[vba]
Код

Sub restore()
     Application.CommandBars("cell").Enabled = True
     Application.CommandBars("list range popup").Enabled = True
     Application.CommandBars("row").Enabled = True
     Application.CommandBars("column").Enabled = True
End Sub
[/vba]

при нажатии правой кнопкой мыши на листе при обычном режиме просмотра и в режиме разметки станицы все работает нормально - мое меню появляется, системные не появляются, но в страничном режиме после скрытия моего меню на доли секунды выскакивает системное меню. В чем моя ошибка и как это исправить?


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениездравствуйте. Пишу проект на VBA. Делаю свое контекстное меню для листа. Меню создается при первом его вызове макросом и удаляется после закрытия книги. Вызывается оно таким кодом
[vba]
Код
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     Application.CommandBars("cell").Enabled = False
     Application.CommandBars("List Range Popup").Enabled = False
     Application.CommandBars("row").Enabled = False
     Application.CommandBars("column").Enabled = False
     On Error GoTo 2
1:  Application.CommandBars("меню1").ShowPopup
     Application.OnTime Now + TimeValue("00:00:01"), ThisWorkbook.Name & "!module1.restore"
     Exit Sub
2: menu = 1
     Application.Run "'" & ThisWorkbook.Name & "'!module1.create_menu(menu)"
     GoTo 1
End Sub
[/vba]

вот код модуля restore:
[vba]
Код

Sub restore()
     Application.CommandBars("cell").Enabled = True
     Application.CommandBars("list range popup").Enabled = True
     Application.CommandBars("row").Enabled = True
     Application.CommandBars("column").Enabled = True
End Sub
[/vba]

при нажатии правой кнопкой мыши на листе при обычном режиме просмотра и в режиме разметки станицы все работает нормально - мое меню появляется, системные не появляются, но в страничном режиме после скрытия моего меню на доли секунды выскакивает системное меню. В чем моя ошибка и как это исправить?

Автор - krosav4ig
Дата добавления - 14.04.2014 в 22:51
krosav4ig Дата: Понедельник, 14.04.2014, 21:45 | Сообщение № 2334 | Тема: Проблемы при сохранении файла
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
А вы пробовали перед тем как открывать и сохранять файл распаковать его из архива?


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеА вы пробовали перед тем как открывать и сохранять файл распаковать его из архива?

Автор - krosav4ig
Дата добавления - 14.04.2014 в 21:45
krosav4ig Дата: Понедельник, 14.04.2014, 21:36 | Сообщение № 2335 | Тема: Неправильно создал тему - как исправить?
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Теперь только модератора просить исправить


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

Автор - krosav4ig
Дата добавления - 14.04.2014 в 21:36
krosav4ig Дата: Понедельник, 14.04.2014, 21:10 | Сообщение № 2336 | Тема: Неправильно создал тему - как исправить?
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
справа под постом кнопка правка (листик с карандашиком)


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

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

Excel 2007,2010,2013
Ну тогда я думаю, что следует убрать неиспользуемые смайлы вот отсюда

К сообщению приложен файл: 6258614.jpg (41.3 Kb)


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


Автор - krosav4ig
Дата добавления - 14.04.2014 в 21:03
krosav4ig Дата: Четверг, 10.04.2014, 18:39 | Сообщение № 2338 | Тема: Не работают некоторые смайлы в форуме
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
:angel: :bag: :batman: :blahblah: :blink: :book: booze :bye: cake :confused: :cranky: :crazy: deal :devil: :dollar: dont :eek: :evil: :facepalm: :fear: :flower: :fool: :fudge: :haha: hands :heart: :hello: :help: :holiday: :huh: :icecream: killed :king: :kiss: :laugh: lol :love: :megaphone: :mellow: :mobile: :music: :no: :ok: :online2long: :prof: respect :rolleyes: :santa: :shades: shock :shutup: :shy: :sleep: :smok: :snap: :suspect: :teehee: thumb :unsure: :up: :v: :weep: :xmas: yes >( :D B) :'( <_< ^_^ :( :) :o :p %) ;)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение:angel: :bag: :batman: :blahblah: :blink: :book: booze :bye: cake :confused: :cranky: :crazy: deal :devil: :dollar: dont :eek: :evil: :facepalm: :fear: :flower: :fool: :fudge: :haha: hands :heart: :hello: :help: :holiday: :huh: :icecream: killed :king: :kiss: :laugh: lol :love: :megaphone: :mellow: :mobile: :music: :no: :ok: :online2long: :prof: respect :rolleyes: :santa: :shades: shock :shutup: :shy: :sleep: :smok: :snap: :suspect: :teehee: thumb :unsure: :up: :v: :weep: :xmas: yes >( :D B) :'( <_< ^_^ :( :) :o :p %) ;)

Автор - krosav4ig
Дата добавления - 10.04.2014 в 18:39
krosav4ig Дата: Четверг, 10.04.2014, 17:40 | Сообщение № 2339 | Тема: Ограничение количества символов в диспетчере имен
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
А просто создать таблицу соответствий никак...?

Ну так не интересно... :rolleyes:


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

Сообщение отредактировал krosav4ig - Четверг, 10.04.2014, 17:41
 
Ответить
Сообщение
А просто создать таблицу соответствий никак...?

Ну так не интересно... :rolleyes:

Автор - krosav4ig
Дата добавления - 10.04.2014 в 17:40
krosav4ig Дата: Четверг, 10.04.2014, 16:39 | Сообщение № 2340 | Тема: Ограничение количества символов в диспетчере имен
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Делаю макет тебеля т-12 с автозаполнением. Возникла необходимость создать именованный массив с такими значениями:
Код
={"ОЖ";"Отпуск по уходу за ребенком до достижения им возраста трех лет":"ДО";"Отпуск без сохранения заработной платы, предоставленный работнику по разрешению работодателя":"ОТ";"Ежегодный основной оплачиваемый отпуск":"К";"Служебная командировка":"У";"Дополнительный отпуск в связи с обучением с сохранением среднего заработка работникам, совмещающим работу с обучением":"Б";"Временная нетрудоспособность (кроме случаев, предусмотренных кодом ''Т'') с назначением пособия согласно законодательству":"НН";"Неявки по невыясненным причинам (до выяснения обстоятельств)":"ОД";"Ежегодный дополнительный оплачиваемый отпуск":"ПМ";"Повышение квалификации с отрывом от работы в другой местности":"Г";"Невыходы на время исполнения государственных или общественных обязанностей согласно законодательству":"ПР";"Прогулы (отсутствие на рабочем месте без уважительных причин в течение времени, установленного законодательством)":"УД";"Дополнительный отпуск в связи с обучением без сохранения заработной платы":"Р";"Отпуск по беременности и родам (отпуск в связи с усыновлением новорожденного ребенка)":"ПК";"Повышение квалификации с отрывом от работы":"В";"Выходные дни (еженедельный отпуск) и нерабочие праздничные дни":"УВ";"Сокращенная продолжительность рабочего времени для обучающихся без отрыва от производства с частичным сохранением заработной платы":"ОЗ";"Отпуск без сохранения заработной платы в случаях, предусмотренных законодательством":"Т";"Временная нетрудоспособность без назначения пособия в случаях, предусмотренных законодательством":"РП";"Продолжительность работы в выходные и нерабочие праздничные дни":"НП";"Время простоя по причинам, не зависящим от работодателя и работника":"ВП";"Время простоя по вине работника":"НО";"Отстранение от работы (недопущение к работе) с оплатой (пособием) в соответствии с законодательством":"НБ";"Отстранение от работы (недопущение к работе) по причинам, предусмотренным законодательством, без начисления заработной платы":"ДБ";"Ежегодный дополнительный отпуск без сохранения заработной платы":"ПВ";"Время вынужденного прогула в случае признания увольнения, перевода на другую работу или отстранения от работы незаконными с восстановлением на прежней работе":"ЗБ";"Забастовка (при условиях и в порядке, предусмотренных законом)":"НЗ";"Время приостановки работы в случае задержки выплаты заработной платы":"ОВ";"Дополнительные выходные дни (оплачиваемые)":"НВ";"Дополнительные выходные дни (без сохранения заработной платы)"}
но в поле ввода адреса не вводится больше 2084 символов. Есть ли какой-нибудь вариант кроме скоращения описания кодов? В листе по первому столбцу этого массива будут считаться неявки, в макросе из этого массива будут браться значения для создания контекстного меню


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

Сообщение отредактировал krosav4ig - Четверг, 10.04.2014, 16:39
 
Ответить
СообщениеДелаю макет тебеля т-12 с автозаполнением. Возникла необходимость создать именованный массив с такими значениями:
Код
={"ОЖ";"Отпуск по уходу за ребенком до достижения им возраста трех лет":"ДО";"Отпуск без сохранения заработной платы, предоставленный работнику по разрешению работодателя":"ОТ";"Ежегодный основной оплачиваемый отпуск":"К";"Служебная командировка":"У";"Дополнительный отпуск в связи с обучением с сохранением среднего заработка работникам, совмещающим работу с обучением":"Б";"Временная нетрудоспособность (кроме случаев, предусмотренных кодом ''Т'') с назначением пособия согласно законодательству":"НН";"Неявки по невыясненным причинам (до выяснения обстоятельств)":"ОД";"Ежегодный дополнительный оплачиваемый отпуск":"ПМ";"Повышение квалификации с отрывом от работы в другой местности":"Г";"Невыходы на время исполнения государственных или общественных обязанностей согласно законодательству":"ПР";"Прогулы (отсутствие на рабочем месте без уважительных причин в течение времени, установленного законодательством)":"УД";"Дополнительный отпуск в связи с обучением без сохранения заработной платы":"Р";"Отпуск по беременности и родам (отпуск в связи с усыновлением новорожденного ребенка)":"ПК";"Повышение квалификации с отрывом от работы":"В";"Выходные дни (еженедельный отпуск) и нерабочие праздничные дни":"УВ";"Сокращенная продолжительность рабочего времени для обучающихся без отрыва от производства с частичным сохранением заработной платы":"ОЗ";"Отпуск без сохранения заработной платы в случаях, предусмотренных законодательством":"Т";"Временная нетрудоспособность без назначения пособия в случаях, предусмотренных законодательством":"РП";"Продолжительность работы в выходные и нерабочие праздничные дни":"НП";"Время простоя по причинам, не зависящим от работодателя и работника":"ВП";"Время простоя по вине работника":"НО";"Отстранение от работы (недопущение к работе) с оплатой (пособием) в соответствии с законодательством":"НБ";"Отстранение от работы (недопущение к работе) по причинам, предусмотренным законодательством, без начисления заработной платы":"ДБ";"Ежегодный дополнительный отпуск без сохранения заработной платы":"ПВ";"Время вынужденного прогула в случае признания увольнения, перевода на другую работу или отстранения от работы незаконными с восстановлением на прежней работе":"ЗБ";"Забастовка (при условиях и в порядке, предусмотренных законом)":"НЗ";"Время приостановки работы в случае задержки выплаты заработной платы":"ОВ";"Дополнительные выходные дни (оплачиваемые)":"НВ";"Дополнительные выходные дни (без сохранения заработной платы)"}
но в поле ввода адреса не вводится больше 2084 символов. Есть ли какой-нибудь вариант кроме скоращения описания кодов? В листе по первому столбцу этого массива будут считаться неявки, в макросе из этого массива будут браться значения для создания контекстного меню

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

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