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

Страницы: 1
OFF DoubleClick что можно предложить?
 
если помогает в работе - то не откажусь от donatination  
 
Вам решать
EXCEL
OFF DoubleClick что можно предложить?
 
это моё хобби :) в принципе мне достаточно доходов от основной деятельности, просто с эл таблицами я работаю с примерно 87 года, и кое-какие наработки готов выложить как рабочий инструмент для желающих упостить свой труд. Если относиться к этому ресурсу как монобренду PLEX то мы не конкуренты :)
EXCEL
OFF DoubleClick что можно предложить?
 
как и многие :) создаю надстройку к EXCEL 2007  
   
http://www.icqrobot.ru/DoubleClick/DoubleClick.htm  
 
хотелось бы знать, а что еще можно придумать полезного как реакцию на двойной клик в ячейке?  
 
варианты:    
 
- вставка текущей даты  
- вставка курса валюты
EXCEL
Создание группировки по указанным параметрам,написать МАКРОС
 
ну не совсем ручками и не макросом но идея примерно такая  
1-ое заполняем вниз названиями групп по "опорному столбцу" там где кол-во  
 
 
       Dim j As Integer = Properties.ColumnNumber  
       If Column <> Properties.ColumnLast Then j = Column + 1  
 
       Dim _old As String = ""  
       Dim _new As String = ""  
 
       Try  
           With _WorkSheet  
 
               Do While i <= RowEndNumber  
                   _new = .Cells(i, Column).text  
 
                   If _new <> "" Then _old = _new  
                   If _new = "" AndAlso _old <> "" AndAlso .Cells(i, j).text <> "" Then  
                       .Cells(i, Column) = _old  
                   End If  
                   i += 1  
               Loop  
           End With  
 
       Catch ex As UnableToContinue  
       Catch ex As Exception  
       Finally  
       End Try  
 
и все это повторяем в цикле по столбцам начиная от D  к A  
 
Группировку потом уже делать элементарно
EXCEL
Создание группировки по указанным параметрам,написать МАКРОС
 
Так требуется?
EXCEL
Как сцепить уникальные значения?
 
А если так?
EXCEL
Разбиение строк с заданными ограничениями
 
А если такую надстойку предложить в помощь?  
 
http://icqrobot.ru/Archer/page_004.html
EXCEL
Можно ли сделать повторяющиеся сквозные строки в нижней части страницы
 
Почти что в общем виде, с предположением, что высота заменяемых строк в "подвале", равна высоте строк подвала.  
 
   Sub AddFooterToExcel()  
       Try  
           Dim xls As Excel.Application = Globals.ThisAddIn.Application  
           Dim ash As Excel.Worksheet = CType(xls.ActiveSheet, Excel.Worksheet)  
 
           'ModuleCommon.ClearExcessRowsAndColumns(xls, xls.ActiveWorkbook)  
 
           Globals.ThisAddIn.Application.ScreenUpdating = False  
 
           Dim sel As Excel.Range = xls.ActiveWindow.Selection  
           If sel.Areas.Count <> 1 Then  
               MessageBox.Show("Необходимо выбрать только один блок строк.", "", MessageBoxButtons.OK)  
               Exit Sub  
           End If  
 
           Dim selrow As Integer = sel.Areas(1).Row  
           Dim selcou As Integer = sel.Areas(1).Rows.Count  
 
           Dim pagecou As Integer = ash.HPageBreaks.Count  
           If pagecou = 0 Then Exit Sub  
 
           Dim item1 As Excel.HPageBreak = ash.HPageBreaks(1)  
           Dim item1row As Integer = item1.Location.Row  
 
           If selrow + selcou <> item1row Then  
               MessageBox.Show("Нижняя строка выбранного для ""подписи"" блока строк должна быть нижней строкой первой страницы.", "", MessageBoxButtons.OK)  
               Exit Sub  
           End If  
 
           With ash.Rows((selrow).ToString).EntireRow.Borders(Excel.XlBordersIndex.xlEdgeTop)  
               .LineStyle = Excel.XlLineStyle.xlDouble  
               .ColorIndex = 0  
               .TintAndShade = 0  
               .Weight = Excel.XlBorderWeight.xlThin  
           End With  
 
 
           Dim n As Integer = ash.HPageBreaks.Count  
           Dim ii As Integer = 2  
 
           Do While ii <= ash.HPageBreaks.Count  
               Dim row As Integer = ash.HPageBreaks(ii).Location.Row  
 
               For iii As Integer = 0 To selcou - 1  
                   ash.Cells(row - selcou, 1).EntireRow.insert()  
               Next  
 
               Dim selrange As Excel.Range = xls.Rows((selrow).ToString + ":" + (selrow + selcou - 1).ToString).EntireRow  
               selrange.Copy()  
 
               ash.Cells(row - selcou, 1).PasteSpecial(Excel.XlPasteType.xlPasteValues)  
               ash.Cells(row - selcou, 1).PasteSpecial(Excel.XlPasteType.xlPasteFormats)  
 
               ii += 1  
           Loop  
 
           ' все сделали и давай посмотрим сколько сейчас страниц  
           Dim nn As Integer = ash.HPageBreaks.Count  
 
 
           Dim lselrange As Excel.Range = xls.Rows((selrow).ToString + ":" + (selrow + selcou - 1).ToString).EntireRow  
           lselrange.Copy()  
 
           Dim ur As Excel.Range = ash.UsedRange  
           Dim lr As Integer = ur.Row + ur.Rows.Count - 1  
           ash.Cells(lr + 1, 1).PasteSpecial(Excel.XlPasteType.xlPasteValues)  
           ash.Cells(lr + 1, 1).PasteSpecial(Excel.XlPasteType.xlPasteFormats)  
 
           ' еще добавили и давай снова посмотрим сколько сейчас страниц  
           Dim nnn As Integer = ash.HPageBreaks.Count  
           If nn <> nnn Then  
               Dim flr As Integer = ash.HPageBreaks(nnn).Location.Row  
               For iii As Integer = 0 To selcou - 1  
                   ash.Cells(flr - selcou, 1).EntireRow.insert()  
               Next  
               Dim selrange As Excel.Range = xls.Rows((selrow).ToString + ":" + (selrow + selcou - 1).ToString).EntireRow  
               selrange.Copy()  
               ash.Cells(flr - selcou, 1).PasteSpecial(Excel.XlPasteType.xlPasteValues)  
               ash.Cells(flr - selcou, 1).PasteSpecial(Excel.XlPasteType.xlPasteFormats)  
           End If  
 
       Catch ex As Exception  
           Globals.ThisAddIn.Application.ScreenUpdating = True  
           Exit Sub  
       Finally  
           Globals.ThisAddIn.Application.ScreenUpdating = True  
       End Try  
 
   End Sub
EXCEL
Можно ли сделать повторяющиеся сквозные строки в нижней части страницы
 
В вашем случае "подвал", вероятно, можно сделать картинкой и вставить её в нижний колонтитул.    
 
Все равно Даты и подписи проставляются вручную на распечатке.
EXCEL
Как из внешней программы завершить редактирование ячейки excel?
 
решил таким способом  
 
           Dim hwnd As Int32 = FindWindow("XLMAIN", Nothing)  
           If hwnd <> 0 Then PostMessage(hwnd, WM_KEYDOWN, VK_ESCAPE, 0)
EXCEL
Как из внешней программы завершить редактирование ячейки excel?
 
{quote}{login=слэн}{date=29.12.2009 11:02}{thema=}{post}aapexel.sendkeys  конечно не сработает..  
 
 
надо отправлять сообщения не от имени икселя, заблокированного редактированием, а от имени своего приложения..  
 
т.е. надо получить идентификатор окна иксель и посылать сообщения на этот адрес из вашего другого приложения..  
 
используя функции API{/post}{/quote}  
 
Вот как раз и нужна помощиь как это сделать? (использую функции API)
EXCEL
Как из внешней программы завершить редактирование ячейки excel?
 
{quote}{login=Синдбад Мореход}{date=29.12.2009 09:35}{thema=}{post}Может быть, после редактирования ячейки, принудительно выделять соседнюю? А затем вернуться к первоначальной.  
Range("a1").Value = 1  
ActiveCell.Offset(0, 1).Select  
ActiveCell.Offset(0, -1).Select{/post}{/quote}  
 
не могу так как проблема в том что код выполняется не в VBA, не в макросе.
EXCEL
Как из внешней программы завершить редактирование ячейки excel?
 
{quote}{login=ZVI}{date=29.12.2009 01:50}{thema=}{post}SendKeys - не лучший метод.  
Используйте что-нибудь такое:  
 
With CreateObject("Excel.Application")  
 .EnableEvents = False  
 .DisplayAlerts = False  
'  .Visible = True  
 .Workbooks.Open "C:\Test.xls"  
 With .Worksheets(1)  
   .Range("A1").Value = Now  
   .Range("A2").Formula = "=A1+1"  
   .Range("B1:C2").Value ="Test"  
 End With  
 .ActiveWorkbook.Save  
 .ActiveWorkbook.Close False  
End With{/post}{/quote}  
 
Так не проходит, потому что пользватель постоянно переключается с окна EXCEl в окно приложения
EXCEL
Как из внешней программы завершить редактирование ячейки excel?
 
{quote}{login=Юрий М}{date=29.12.2009 12:51}{thema=}{post}А почему нельзя закончить редактирование и уже после этого вернуться? Кстати, у Вас стоит ReadOnly. А как же редактирование?{/post}{/quote}  
 
Дело в том что это происходит непроизвольно, пользователь начинает редактровать ячейку, напрмер, делает Copy части строки ячейки, для того чтобы затем сделать Paste в окне приложения и, забывая завершить редактирование, не может потом выполнять и само приложение.  
 
ReadOnly не мешает процессу редактирвания ячейки, просто при сохранении EXCEL предложит сохраниться в копию файла.
EXCEL
Как из внешней программы завершить редактирование ячейки excel?
 
Как из внешней программы завершить редактирование ячейки excel?  
неким winform приложением создаю объект  
 
Dim appExcel As Excel.Application  
appExcel = New Excel.Application  
appExcel.Workbooks.Open([Filename]:=FileName, [ReadOnly]:=True)
 
 
открываю файл, затем, перехожу в лист EXCEL'я (мое приложение теряет фокус ввода) и начинаю редактировать ячейку, возвращаюсь в свое приложение, (EXCEL приложение теряет фокус ввода но ячейка остается в режиме редактирвания). Дальнейшие действия с appExcel из приложения становятся недоступными, так как Excel ждет зваершения процедуры редактирвания.  
 
 
Метод,  
 
 
appExcel.SendKeys("{ESC}", True)  
 
не помогает
EXCEL
Страницы: 1
Наверх