GreenCan Posted April 20, 2015 Share Posted April 20, 2015 (edited) I am trying to find a way to _Excel_RangeFind a cell format but I don't succeed in finding a proper way. Please run the example script first, columns B and C are relevant for the test case. Disregard columns D to G. expandcollapse popup#include <Excel.au3> #include <Array.au3> Global $sTimeLocale = RegRead("HKCU\Control Panel\International", "sShortTime") ConsoleWrite("Locale time format on this PC: " & $sTimeLocale & @CRLF) Global $oExcel = _Excel_Open();$bVisible = Default, $bDisplayAlerts = Default, $bScreenUpdating = Default, $bInteractive = Default, $bForceNew = Default) Global $oWorkbook = _Excel_BookNew($oExcel) ; *************************************************************** ; Example - Format Numbers ; ***************************************************************** Global $sTimeformat = "[u]:mm" Global $aFormatExamples[1][7] = [["Format Examples", $sTimeformat, $sTimeformat, "###0,00", "$#.##0,00", "€ #.##0,00;[Red]€ -#.##0,00", "General"]];Array to Create Headers, European format example _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aFormatExamples, "A1") ; Fill-up some cells with random Numbers Global $iRows= 15 Global $aArray2D[$iRows +6][UBound($aFormatExamples, 2) + 1] For $i = 4 To $iRows - 2 $aArray2D[$i][0] = Random(0, 1000) Next For $i = 1 To $iRows + 5 $aArray2D[$i][1] = Random(0, 1000) Next For $j = 2 To UBound($aFormatExamples, 2) - 2 For $i = 2 To $iRows + 5 $aArray2D[$i][$j] = Random(-1000, 1000);this time allow negative numbers Next Next _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aArray2D, "B2") MsgBox(0, "Formating example", "Applying format in the green area only") $oExcel.Activesheet.Range("B4:G16").Interior.Color = 0x3AFF00 ; color range green ; Set each column to its type of Format $oExcel.ActiveSheet.Range("B4:B15").NumberFormat = $aFormatExamples[0][1] $oExcel.ActiveSheet.Range("C4:C15").NumberFormat = $aFormatExamples[0][2] $oExcel.ActiveSheet.Range("D4:D15").NumberFormat = $aFormatExamples[0][3] $oExcel.ActiveSheet.Range("E4:E15").NumberFormat = $aFormatExamples[0][4] $oExcel.ActiveSheet.Range("F4:F15").NumberFormat = $aFormatExamples[0][5] $oExcel.ActiveSheet.Range("G4:G15").NumberFormat = $aFormatExamples[0][6] ;AutoFits $oExcel.Columns.AutoFit $oExcel.Rows.AutoFit MsgBox(0, "Formating example", "Set sums") Global $aSums[1][7] = [["Range starting Row 3","=SUM(B3:B23)", "=SUM(C3:C23)", "=SUM(D3:D23)", "=SUM(E3:E23)", "=SUM(F3:F23)", "=SUM(G3:G23)"]] _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aSums, "A24") Global $aSums[1][7] = [["range starting Row 4","=SUM(B4:B23)", "=SUM(C4:C23)", "=SUM(D3:D23)", "=SUM(E3:E23)", "=SUM(F3:F23)", "=SUM(G3:G23)"]] _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aSums, "A25") ;AutoFits $oExcel.Columns.AutoFit $oExcel.Rows.AutoFit MsgBox(0, "test", "RangeFind format?") ; full match $aResult =_Excel_RangeFind($oWorkbook, $sTimeformat, "B3:B23", $xlFormulas, $xlPart); , $iLookAt = Default, $bMatchcase = Default) ConsoleWrite(@ScriptLineNumber & " " & @error & @CR) _ArrayDisplay($aResult, @ScriptLineNumber) ; partial match $aResult =_Excel_RangeFind($oWorkbook, ":mm", "B3:B23", $xlFormulas, $xlPart); , $iLookAt = Default, $bMatchcase = Default) ConsoleWrite(@ScriptLineNumber & " " & @error & @CR) _ArrayDisplay($aResult, @ScriptLineNumber) If MsgBox(4 + 0, "Formating example", "Done, close without save ") = 6 Then _Excel_BookClose($oWorkbook, False) _Excel_Close($oExcel) EndIf The format is put to ':mm' in the green area only Please check if this format is appropriate for your system, might need to change this to '[h]:mm' as pr your Locale Excel settings (line 16) Case 1: when summing up the columns as from row 3, Excel considers the sum for the range B3:B23/C3:C23 to be in format 'General' Case 2: when summing up the columns as from row 4, Excel considers the sum for the range B4:B23/C4:C23 to be in format ':mm' This is an expected behavior of Excel, although one might think that at least for column B, there is no ambiguity, the sum should be in :mm, but OK... I now want to search for the column range if I can find cells in :mm format, and according to the result, I can reformat the sum in the appropriate number format. In VB: Sub FindNumberFormat() ' ' FindNumberFormat ' run multiple times to find the next cell in the format... ' Application.FindFormat.NumberFormat = "[h]:mm" Cells.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , SearchFormat:=True).Activate End Sub In AutoIt however, nothing is found and $aResult =_Excel_RangeFind($oWorkbook, $sTimeformat, "B3:B23", $xlFormulas, $xlPart) returns an empty array. I am confused with the VB statement 'Application.FindFormat.NumberFormat = "[h]:mm"' that I find nowhere in the _Excel_RangeFind() function. Has anyone tested the function already? Thank you (...water ) PS. I mostly try to find a solution myself, but sometimes, I have to look at the real specialists... Edited April 20, 2015 by GreenCan Contributions CheckUpdate - SelfUpdating script ------- Self updating script Dynamic input validation ------------------- Use a Input masks can make your life easier and Validation can be as simple MsgBox with CountDown ------------------- MsgBox with visual countdown Display Multiline text cells in ListView ---- Example of pop-up or ToolTip for multiline text items in ListView Presentation Manager ---------------------- Program to display and refresh different Border-less GUI's on a Display (large screen TV) USB Drive Tools ------------------------------ Tool to help you with your USB drive management Input Period udf ------------------------------ GUI for a period input Excel ColorPicker ---------------------------- Color pickup tool will allow you to select a color from the standard Excel color palette Excel Chart UDF ----------------------------- Collaboration project with water GetDateInString ------------------------------ Find date/time in a string using a date format notation like DD Mon YYYY hh:mm TaskListAllDetailed --------------------------- List All Scheduled Tasks Computer Info --------------------------------- A collection of information for helpdesk Shared memory Demo ----------------------- Demo: Two applications communicate with each other through means of a memory share (using Nomad function, 32bit only) Universal Date Format Conversion -------- Universal date converter from your PC local date format to any format Disable Windows DetailsPane -------------- Disable Windows Explorer Details Pane Oracle SQL Report Generator ------------- Oracle Report generator using SQL SQLite Report Generator ------------------- SQLite Report generator using SQL SQLite ListView and BLOB demo ---------- Demo: shows how binary (image) objects can be recognized natively in a database BLOB field DSN-Less Database connection demo --- Demo: ActiveX Data Objects DSN-Less Database access Animated animals ----------------------------- Fun: Moving animated objects Perforated image in GUI --------------------- Fun: Perforate your image with image objects UEZ's Perforator major update ------------- Fun: Pro version of Perforator by UEZ Visual Crop Tool (GUI) ----------------------- Easy to use Visual Image Crop tool Visual Image effect (GUI) -------------------- Visually apply effects on an image Link to comment Share on other sites More sharing options...
water Posted April 20, 2015 Share Posted April 20, 2015 Hi Greencan, Will have a look at it as soon as I return from vacation My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
GreenCan Posted May 28, 2015 Author Share Posted May 28, 2015 Hi Greencan,Will have a look at it as soon as I return from vacation Water, your vacation must have been pretty long... Contributions CheckUpdate - SelfUpdating script ------- Self updating script Dynamic input validation ------------------- Use a Input masks can make your life easier and Validation can be as simple MsgBox with CountDown ------------------- MsgBox with visual countdown Display Multiline text cells in ListView ---- Example of pop-up or ToolTip for multiline text items in ListView Presentation Manager ---------------------- Program to display and refresh different Border-less GUI's on a Display (large screen TV) USB Drive Tools ------------------------------ Tool to help you with your USB drive management Input Period udf ------------------------------ GUI for a period input Excel ColorPicker ---------------------------- Color pickup tool will allow you to select a color from the standard Excel color palette Excel Chart UDF ----------------------------- Collaboration project with water GetDateInString ------------------------------ Find date/time in a string using a date format notation like DD Mon YYYY hh:mm TaskListAllDetailed --------------------------- List All Scheduled Tasks Computer Info --------------------------------- A collection of information for helpdesk Shared memory Demo ----------------------- Demo: Two applications communicate with each other through means of a memory share (using Nomad function, 32bit only) Universal Date Format Conversion -------- Universal date converter from your PC local date format to any format Disable Windows DetailsPane -------------- Disable Windows Explorer Details Pane Oracle SQL Report Generator ------------- Oracle Report generator using SQL SQLite Report Generator ------------------- SQLite Report generator using SQL SQLite ListView and BLOB demo ---------- Demo: shows how binary (image) objects can be recognized natively in a database BLOB field DSN-Less Database connection demo --- Demo: ActiveX Data Objects DSN-Less Database access Animated animals ----------------------------- Fun: Moving animated objects Perforated image in GUI --------------------- Fun: Perforate your image with image objects UEZ's Perforator major update ------------- Fun: Pro version of Perforator by UEZ Visual Crop Tool (GUI) ----------------------- Easy to use Visual Image Crop tool Visual Image effect (GUI) -------------------- Visually apply effects on an image Link to comment Share on other sites More sharing options...
water Posted May 28, 2015 Share Posted May 28, 2015 Opps,looks like I missed to solve this problem. Will have a look at it the next days when the weather gets bad so I do not have to sit on my racing bike My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
GreenCan Posted May 29, 2015 Author Share Posted May 29, 2015 Don't worry. I will be on my bike the whole next week, touring around in France, scheduled 1.000 km at tourist speed...Cheers Contributions CheckUpdate - SelfUpdating script ------- Self updating script Dynamic input validation ------------------- Use a Input masks can make your life easier and Validation can be as simple MsgBox with CountDown ------------------- MsgBox with visual countdown Display Multiline text cells in ListView ---- Example of pop-up or ToolTip for multiline text items in ListView Presentation Manager ---------------------- Program to display and refresh different Border-less GUI's on a Display (large screen TV) USB Drive Tools ------------------------------ Tool to help you with your USB drive management Input Period udf ------------------------------ GUI for a period input Excel ColorPicker ---------------------------- Color pickup tool will allow you to select a color from the standard Excel color palette Excel Chart UDF ----------------------------- Collaboration project with water GetDateInString ------------------------------ Find date/time in a string using a date format notation like DD Mon YYYY hh:mm TaskListAllDetailed --------------------------- List All Scheduled Tasks Computer Info --------------------------------- A collection of information for helpdesk Shared memory Demo ----------------------- Demo: Two applications communicate with each other through means of a memory share (using Nomad function, 32bit only) Universal Date Format Conversion -------- Universal date converter from your PC local date format to any format Disable Windows DetailsPane -------------- Disable Windows Explorer Details Pane Oracle SQL Report Generator ------------- Oracle Report generator using SQL SQLite Report Generator ------------------- SQLite Report generator using SQL SQLite ListView and BLOB demo ---------- Demo: shows how binary (image) objects can be recognized natively in a database BLOB field DSN-Less Database connection demo --- Demo: ActiveX Data Objects DSN-Less Database access Animated animals ----------------------------- Fun: Moving animated objects Perforated image in GUI --------------------- Fun: Perforate your image with image objects UEZ's Perforator major update ------------- Fun: Pro version of Perforator by UEZ Visual Crop Tool (GUI) ----------------------- Easy to use Visual Image Crop tool Visual Image effect (GUI) -------------------- Visually apply effects on an image Link to comment Share on other sites More sharing options...
water Posted May 29, 2015 Share Posted May 29, 2015 Have a nice week and and enjoy France. I wish you perfect weather for biking My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
water Posted May 30, 2015 Share Posted May 30, 2015 I had a quick look at the problem.Result: _Excel_RangeFind does not support looking for formats at the moment.Solving the current problem shouldn't be too hard. It will take some time but I hope to come up with a solution quite soon ... My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
water Posted April 29, 2019 Share Posted April 29, 2019 This example works for me (for red cells): #include <Excel.au3> ; Create workbook with 3 rows and 3 columns. Set cells A1 and A3 to red Global $aUsedRow, $sMaxUsedColumn Global $oExcel = _Excel_Open() Global $oWorkbook = _Excel_BookNew($oExcel) Global $aValues = [[11, 21, 31], [12, 22, 32], [13, 23, 33]] _Excel_RangeWrite($oWorkbook, 1, $aValues) Global $iRed = 234 ; Hex 0xEA $oWorkbook.Activesheet.Range("A1").Interior.Color = $iRed $oWorkbook.Activesheet.Range("A3").Interior.Color = $iRed ; Get the max used range of the active sheet $sMaxUsedColumn = _Excel_ColumnToLetter($oWorkbook.ActiveSheet.Usedrange.Columns.Count) ; Loop through all rows and check column A for a red cell. If found, read all used cells of this row and display the array. For $i = 1 To $oWorkbook.ActiveSheet.Usedrange.Rows.Count If $oWorkbook.Activesheet.Range("A" & $i).Interior.Color = $iRed Then $aUsedRow = _Excel_RangeRead($oWorkbook, $oWorkbook.Activesheet, $oWorkbook.Activesheet.Range("A" & $i & ":" & $sMaxUsedColumn & $i)) _ArrayDisplay($ausedRow) EndIf Next My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now