Valnurat

Merge cvs file to excel file

18 posts in this topic

My goal is to have some info I got in a comma CVS file merged with a excel doc.

In the excel.doc the search column is B and I need to do it from row 8, because 1-7 is locked.

I really hope someone can help me.

This is what I have tried:

#include <Excel.au3>
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
; Create a constant variable in Local scope of the message to display in FileOpenDialog.
Local Const $sMessage = "Select a single file of any type."
; Display an open dialog to select a file.
Local $sFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "All (*.*)", $FD_FILEMUSTEXIST)
If @error Then
    ; Display the error message.
    MsgBox($MB_SYSTEMMODAL, "", "No file was selected.")
    ; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
    FileChangeDir(@ScriptDir)
    Exit
Else
    ; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
    FileChangeDir(@ScriptDir)
    ; Replace instances of "|" with @CRLF in the string returned by FileOpenDialog.
    $sFileOpenDialog = StringReplace($sFileOpenDialog, "|", @CRLF)
    ; Create application object and open an example workbook
    Local $oExcel = _Excel_Open()
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    Local $oWorkbook = _Excel_BookOpen($oExcel, $sFileOpenDialog)
    If @error Then
        MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Error opening workbook '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
        _Excel_Close($oExcel)
        Exit
    EndIf

    ; *****************************************************************************
    ; Find all occurrences of string "=C10*10" in the formulas, exact match
    ; *****************************************************************************
    Local $aResult = _Excel_RangeFind($oWorkbook, "Maskprov 7", "B8:B1739", Default, $xlWhole)
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 2", "Error searching the range." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 2", "Find all occurrences of string '=C10*10' in the formulas, exact match." & @CRLF & "Data successfully searched.")
    _ArrayDisplay($aResult, "Excel UDF: _Excel_RangeFind Example 2", "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
EndIf

This is my result:

Row|Sheet|Name|Cell|Value
[0]|Consultant OU - Questions - EME|$B$1573|Maskprov 7|Maskprov 7

But how do I use this info to add text into the excel doc?

 


Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites



Hello @Valnurat

Quote

In the excel.doc the search column is B and I need to do it from row 8, because 1-7 is locked.

If is an excel file it must be excel.xls or .xlsx file.

 

Local $oWorkbook = _Excel_BookOpen($oExcel, $sFileOpenDialog)

This line is not right you _Excel_BookOpen expect an excel file.
Should be something like this:
 

Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Excel.xlsx", Default, Default)

Finally if you are going to Write the info in the CVS file to the Excel file you don't need _ExcelRangeFind at all...

Anyways is not very clear for me if you want to write to the Excel File some data read from the CVS file or you want to write to the CVS file some data read from the excel file.

Regards
Alien.

Share this post


Link to post
Share on other sites

Yes, sorry. It was old code.

I have changed it a little.

#include <ExcelModify.au3>
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <File.au3>
Global $aCSVfile[0][12]
;_ArrayDisplay($aCSVfile,"")
; Create a constant variable in Local scope of the message to display in FileOpenDialog.
Local Const $sMessage = "Select a single file of any type."
; Display an open dialog to select a file.
Local $sCVSFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "All (*.*)", $FD_FILEMUSTEXIST)
If @error Then
    ; Display the error message.
    MsgBox($MB_SYSTEMMODAL, "", "No file was selected.")
    ; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
    FileChangeDir(@ScriptDir)
    Exit
Else
    ; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
    FileChangeDir(@ScriptDir)
    ; Replace instances of "|" with @CRLF in the string returned by FileOpenDialog.
    $sCVSFileOpenDialog = StringReplace($sCVSFileOpenDialog, "|", @CRLF)
    _FileReadToArray($sCVSFileOpenDialog, $aCSVfile, Default, ";")
    _ArrayDisplay($aCSVfile, "2D array - count", Default, 8)
EndIf
Local $sExcelFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "All (*.*)", $FD_FILEMUSTEXIST)
If @error Then
    ; Display the error message.
    MsgBox($MB_SYSTEMMODAL, "", "No file was selected.")
    ; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
    FileChangeDir(@ScriptDir)
    Exit
Else
    ; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder.
    FileChangeDir(@ScriptDir)
    ; Replace instances of "|" with @CRLF in the string returned by FileOpenDialog.
    $sExcelFileOpenDialog = StringReplace($sExcelFileOpenDialog, "|", @CRLF)
    ; Create application object and open an example workbook
    Local $oExcel = _Excel_Open()
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    Local $oWorkbook = _Excel_BookOpen($oExcel, $sExcelFileOpenDialog)
    If @error Then
        MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Error opening workbook '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
        _Excel_Close($oExcel)
        Exit
    EndIf

    ; *****************************************************************************
    ; Find all occurrences of string "=C10*10" in the formulas, exact match
    ; *****************************************************************************
    For $i = 1 to $aCSVfile[0][0]
        MsgBox(0,"",$aCSVfile[$i][7])
        Local $aResult = __Excel_RangeFind($oWorkbook, $aCSVfile[$i][7], "B:B", Default, Default)
        If Not @error And IsArray($aResult) Then
        Switch UBound($aResult)
            Case 0
                MsgBox(0,"0","Empty")
            Case 1
                _ArrayDisplay($aResult, "Excel UDF: _Excel_RangeFind Example 2", "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
                MsgBox(0,"1",$aResult[0][2])
            Case Else
                MsgBox(0,"2","More than 1")
        EndSwitch
        EndIf
    Next
EndIf

but I would like to insert text into the excel in column "K" e.g.


Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites

You need to clear you goals, you lost me.
You want to Write to the Excel file the data you read from the CVS file?
If the answer is YES, then again: you don't need RangeFind you need _Excel_RangeWrite()

Regards
Alien.

Share this post


Link to post
Share on other sites

:D

But I need to search for a name in the excel. When I have found it, then I need to put in data I have in my CVS file.


Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites

Valnurat,
I think I understand what you need.
I stripped down your script as far as possible because you are overcomplicating things. With this script I try to make it work.
To make it work on your side simply process those lines marked with " ; >> Replace with above line".

; #include <ExcelModify.au3>
#include <Excel.au3> ; >> Replace with above line
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <File.au3>
Global $aCSVfile[0][12]
; Create a constant variable in Local scope of the title to display in FileOpenDialog.
Local Const $sTitle = "Select a single input file (CSV format)."
Local Const $sTitleExcel = "Select a single Excel file as output."
; Display an open dialog to select a file.
Local $sCVSFileOpenDialog = FileOpenDialog($sTitle, @WindowsDir & "\", "All (*.*)", $FD_FILEMUSTEXIST)
; Display the error message.
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "", "No file was selected.")
_FileReadToArray($sCVSFileOpenDialog, $aCSVfile, Default, ";")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Error", "Error reading CSV input file: " & $sCVSFileOpenDialog & @CRLF & "@error = " & @error)
_ArrayDisplay($aCSVfile, "2D array - count", Default, 8)
Local $sExcelFileOpenDialog = FileOpenDialog($sTitleExcel, @WindowsDir & "\", "Excel files (*.xls*)", $FD_FILEMUSTEXIST)
; Display the error message.
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "", "No file was selected.")
; Create application object and open the workbook
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, $sExcelFileOpenDialog)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF", "Error opening workbook '" & $sExcelFileOpenDialog & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

; *****************************************************************************
; Find all occurrences of string "=C10*10" in the formulas, exact match
; *****************************************************************************
For $i = 1 To $aCSVfile[0][0]
    MsgBox(0, "", $aCSVfile[$i][7])
    ; Local $aResult = __Excel_RangeFind($oWorkbook, $aCSVfile[$i][7], "B:B", Default, Default)
    Local $aResult = _Excel_RangeFind($oWorkbook, $aCSVfile[$i][7], "B:B", Default, Default) ; >> Replace with above line
    If Not @error And IsArray($aResult) Then
        Switch UBound($aResult)
            Case 0
                MsgBox(0, "0", "Empty")
            Case 1
                _ArrayDisplay($aResult, "Excel UDF", "", 0, "|", "Sheet|Name|Cell|Value|Formula|Comment")
                MsgBox(0, "1", $aResult[0][2])
            Case Else
                MsgBox(0, "2", "More than 1")
        EndSwitch
    EndIf
Next

 


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

#7 ·  Posted (edited)

Ok then you need _Excel_RangeFind() and you need _Excel_RangeWrite()

Anyways in order to help you more and need more info:
-Example CVS file or example data you will read from that file
-Example Excel file or example data you will have on that Excel File.

To Search on the entire Workbook you could use simple as this:

Local $aResult = _Excel_RangeFind($oWorkbook, "value to find")

Then Based on that result you use _Excel_RangeWrite() to write the values you read from the CVS file.

Regards
Alien.

Edited by alien4u

Share this post


Link to post
Share on other sites

You need something like this:

; #include <ExcelModify.au3>
#include <Excel.au3> ; >> Replace with above line
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <File.au3>
Global $aCSVfile[0][12]
; Create a constant variable in Local scope of the title to display in FileOpenDialog.
Local Const $sTitle = "Select a single input file (CSV format)."
Local Const $sTitleExcel = "Select a single Excel file as output."
; Display an open dialog to select a file.
Local $sCVSFileOpenDialog = FileOpenDialog($sTitle, @WindowsDir & "\", "All (*.*)", $FD_FILEMUSTEXIST)
; Display the error message.
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "", "No file was selected.")
_FileReadToArray($sCVSFileOpenDialog, $aCSVfile, Default, ";")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Error", "Error reading CSV input file: " & $sCVSFileOpenDialog & @CRLF & "@error = " & @error)
Local $sExcelFileOpenDialog = FileOpenDialog($sTitleExcel, @WindowsDir & "\", "Excel files (*.xls*)", $FD_FILEMUSTEXIST)
; Display the error message.
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "", "No file was selected.")
; Create application object and open the workbook
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, $sExcelFileOpenDialog)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF", "Error opening workbook '" & $sExcelFileOpenDialog & "'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

For $i = 1 To $aCSVfile[0][0]
    ; Local $aResult = __Excel_RangeFind($oWorkbook, $aCSVfile[$i][7], "B:B", Default, Default)
    Local $aResult = _Excel_RangeFind($oWorkbook, $aCSVfile[$i][7], "B:B", Default, Default) ; >> Replace with above line
    If Not @error And IsArray($aResult) Then
        Switch UBound($aResult, 1)
            Case 0
                MsgBox(0, "0", "Empty")
            Case 1
                ; Write the second column of the CSV file to the right of column "B"
                _Excel_RangeWrite($oWorkbook, Default, $aCSVfile[$i][1], $oWorkbook.ActiveSheet.Range($aResult[0][2]).Offset(0, 1))
            Case Else
                MsgBox(0, "2", "More than 1")
        EndSwitch
    EndIf
Next

 


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

Yes, there was alot of stuff.

I get this error:

(41) : ==> The requested action with this object has failed.:
_Excel_RangeWrite($oWorkbook, Default, $aCSVfile[$i][1], $oWorkbook.ActiveSheet.Range($aResult[0][2]).Offset(0, 1))
_Excel_RangeWrite($oWorkbook, Default, $aCSVfile[$i][1], $oWorkbook.ActiveSheet^ ERROR


Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites

#10 ·  Posted

Please post the value of $aResult[0][2] and $aCSVfile[$i][1]


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

#11 ·  Posted (edited)

$aResult[0][2] = Paulina

$aCSVfile[$i][1] =03/10/2016 09:30:06

 

But I think I need to hand pick the info from my CVS file.

I tried this:

_Excel_RangeWrite($oWorkbook,$oWorkbook.Activesheet, "Yes","C"& StringTrimLeft($aResult[0][1],3))

and I could see it was added to the same row in column 'C'

$aResult[0][1]=$B$1573

Edited by Valnurat

Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites

#12 ·  Posted

"Paulina" is wrong. Should be the cell address returned by _Excel_RangeFind.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

#13 ·  Posted

aha.

_Excel_RangeWrite($oWorkbook, Default, $aCSVfile[$i][1], $oWorkbook.ActiveSheet.Range($aResult[0][1]).Offset(0, 1))

But what if I wanted $aCSVfile[$i][1] on cell 'K'?


Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites

#14 ·  Posted

Offset (in this case) defines how far to the right of the cell in column B you want to write the data to. K would be 9.

_Excel_RangeWrite($oWorkbook, Default, $aCSVfile[$i][1], $oWorkbook.ActiveSheet.Range($aResult[0][1]).Offset(0, 9))

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

#15 ·  Posted (edited)

1 hour ago, Valnurat said:

aha.

_Excel_RangeWrite($oWorkbook, Default, $aCSVfile[$i][1], $oWorkbook.ActiveSheet.Range($aResult[0][1]).Offset(0, 1))

But what if I wanted $aCSVfile[$i][1] on cell 'K'?

Search the entire Workbook:
 

Local $aResult = _Excel_RangeFind($oWorkbook, "value to find")

And as @water said you will have in $aResult[2] the Address of the cell then just increment that to find the next cell to the right(I assume) and write there with _Excel_RangeWrite().
I suppose that  this is the same that .Offset(0,1) do(the best way to do it I think)

Sorry water I don't see your previous post.

Regards
Alien.

Edited by alien4u

Share this post


Link to post
Share on other sites

#16 ·  Posted

Perfect.

Thank you both of you.

:)


Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites

#17 ·  Posted

Quote
11 minutes ago, Valnurat said:

aha.

_Excel_RangeWrite($oWorkbook, Default, $aCSVfile[$i][1], $oWorkbook.ActiveSheet.Range($aResult[0][1]).Offset(0, 1))

But what if I wanted $aCSVfile[$i][1] on cell 'K'?

Search the entire Workbook:

Why search the whole workbook? He just wants to WRITE the data to another column (at least that's how I understand his post).


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

#18 ·  Posted

1 hour ago, water said:

Why search the whole workbook? He just wants to WRITE the data to another column (at least that's how I understand his post).

Because I don't know where he search for a match, if he only search for a match on a single Column where there will be for example Names then you are completely right.
But if he search for a match that could be on any column then he need to search in the entire Workbook.

Regards
Alien.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Similar Content

    • VaishnaviBUtpat
      By VaishnaviBUtpat
      <!DOCTYPE html> <html lang="en" xml:lang="en" style="height: 100%;" xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <style> * { margin: 0; padding: 0; } .th-lk { color: #3665d0; font-family: Arial; font-size: small; text-decoration: none; } .th-lk { vertical-align: 0px; } .th-menu2 .th-lk { line-height: 2em; margin-bottom: 0px; margin-right: 0px; overflow: hidden; padding: 0; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; width: 100%; } .th-menu2 .th-lk { color: black; font-weight: bold; } .th-menu2 > li > .th-lk { display: block; padding-left: 8px; width: auto; } .th-menu2 .th-menu2-sub-item .th-lk, .th-menu2 .th-menu2-sub-item-hov .th-lk { margin-right: 20px; } .th-menu2-sub-item { position: relative !important; } .th-menu2 .th-menu2-item, .th-menu2 .th-menu2-item-hov, .th-menu2 .th-menu2-sub-item, .th-menu2 .th-menu2-sub-item-hov { background-repeat: repeat-x; border-left-style: solid; border-left-width: 1px; border-right-style: solid; border-right-width: 1px; border-top-style: solid; border-top-width: 1px; height: 2em; list-style: none; margin-bottom: 0px; padding: 0; width: 100%; } .th-menu2 .th-menu2-item, .th-menu2 .th-menu2-item-hov, .th-menu2 .th-menu2-sub-item, .th-menu2 .th-menu2-sub-item-hov { background-color: #ECECEC; background-image: url(sap_skins/default/styling/lshape/chg_butt_det_nav.gif); border-left-color: #d3d1ce; border-right-color: #d3d1ce; border-top-color: #d3d1ce; border-top-width: 0px; } .th-menu2 { border: 0 solid black; left: 0px; list-style: none; margin: 0; padding: 0; position: relative; } .th-menu2 { z-index: 10006; } .th-menu2 { background-color: white; } div { zoom: 1; } .th-sc-content { left: 0px; position: absolute; top: 0px; } .th-sc-container { left: 0px; overflow: hidden; position: relative; top: 0px; } .th-sc-top { position: relative; } .th-sc-top, .th-sc-content, .th-sc-container, .th-sc-buttondown, .th-sc-buttonup { width: 172px; } .th-sc-buttonup, .th-sc-container { z-index: 10101; } .th-sc-top { z-index: 10100; } body, td, th { font-family: Arial,Helvetica,sans-serif; font-size: small; } .th-l-navcontainer, .th_l_downcontainer { border-right-style: solid; border-right-width: 1px; width: 172px; } .th-l-navcontainer, .th_l_downcontainer { background-color: white; border-right-color: #d3d1ce; } body, html { margin: 0px; border: 0; margin: 0; } </style> </head> <body><form name="myFormId" id="myFormId" action="/sap(ZT1TVVJEWDFWVFVsOWZYMTlmTWpNNU9UWmZXWTlwZG5telZ1RGhBSUFBQ3Nyc2tBPT0=)/bc/bsp/sap/crm_ui_frame/BSPWDApplication.do?sap-client=100&amp;sap-language=EN&amp;sap-domainrelax=min" method="post" target="WorkAreaFrame2"><div class="th-ajax-area" id="rootAreaDiv"><div id="C1_W1_V2" tgt="" dhe="false"><table width="100%" style="table-layout: fixed;" cellspacing="0" cellpadding="0"><tbody><tr><td><table width="100%" style="table-layout: fixed;" cellspacing="0" cellpadding="0"><tbody><tr valign="top"><td class="th-l-navcontainer" id="th_l_navcontainer"><div class="th-sc-top" id="C1_W1_V2_thescroll" style="height: 786px;"><div class="th-sc-container" id="C1_W1_V2_thescroll_scbox" style="height: 786px;"><div class="th-sc-content" id="C1_W1_V2_thescroll_sccontent"><div class="th-ajax-area" id="C1_W1_V2_$navbar"><div id="C7_W35_V36" tgt="" dhe="true" excevt="" intevt="c:C7_W35_V36:C1_W1_V2_C7_W35_V36_MainNavigationLinks.do;" automode="true"><div class="th-ajax-area" id="C1_W1_V2_C7_W35_V36_MainNavigationLinks.do"><ul class="th-menu2" id="C7_W35_V36_mainmenu" style="width: 171px;"><li class="th-menu2-sub-item"><a title="Sales Cycle" class="th-lk" id="C7_W35_V36_UTL-SLS" onclick="htmlbSubmitLib('htmlb',this,'thtmlb:link:click:0','myFormId','C7_W35_V36_UTL-SLS','UTL\x2dSLS\x2dWC',0);return false" onfocus="thSaveKbFocus(this);" oncontextmenu="return false;" href="javascript:void(0)">Sales Cycle</a></li></ul></div></div></div></div></div></div></td></tr></tbody></table></td></tr></tbody></table></div></div></form></body> </html> How to capture above HTML element using AutoIT
    • cu0x
      By cu0x
      Hello guys,
       
      im trying to solved a problem that I have.
       
      Need to get some chinese text from an old Wise script, and in the wise file says f.e. Ù×÷ϵͳ¡£ ÇëÉý¼¶Ä. Is there any way to convert it to traditional chinese?
       
      Already tryied the following code...
       
      #include <MsgBoxConstants.au3> Example() Func Example() ; Define the string that will be converted later. ; NOTE: This string may show up as ?? in the help file and even in some editors. ; This example is saved as UTF-8 with BOM. It should display correctly in editors ; which support changing code pages based on BOMs. Local Const $sString = "Ù×÷ϵͳ¡£ ÇëÉý¼¶Ä" ; Temporary variables used to store conversion results. $dBinary will hold ; the original string in binary form and $sConverted will hold the result ; afte it's been transformed back to the original format. Local $dBinary = Binary(""), $sConverted = "" ; Convert the original UTF-8 string to an ANSI compatible binary string. $dBinary = StringToBinary($sString) ; Convert the ANSI compatible binary string back into a string. $sConverted = BinaryToString($dBinary) ; Display the resulsts. Note that the last two characters will appear ; as ?? since they cannot be represented in ANSI. DisplayResults($sString, $dBinary, $sConverted, "ANSI") ; Convert the original UTF-8 string to an UTF16-LE binary string. $dBinary = StringToBinary($sString, 2) ; Convert the UTF16-LE binary string back into a string. $sConverted = BinaryToString($dBinary, 2) ; Display the resulsts. DisplayResults($sString, $dBinary, $sConverted, "UTF16-LE") ; Convert the original UTF-8 string to an UTF16-BE binary string. $dBinary = StringToBinary($sString, 3) ; Convert the UTF16-BE binary string back into a string. $sConverted = BinaryToString($dBinary, 3) ; Display the resulsts. DisplayResults($sString, $dBinary, $sConverted, "UTF16-BE") ; Convert the original UTF-8 string to an UTF-8 binary string. $dBinary = StringToBinary($sString, 4) ; Convert the UTF8 binary string back into a string. $sConverted = BinaryToString($dBinary, 4) ; Display the resulsts. DisplayResults($sString, $dBinary, $sConverted, "UTF8") EndFunc ;==>Example ; Helper function which formats the message for display. It takes the following parameters: ; $sOriginal - The original string before conversions. ; $dBinary - The original string after it has been converted to binary. ; $sConverted- The string after it has been converted to binary and then back to a string. ; $sConversionType - A human friendly name for the encoding type used for the conversion. Func DisplayResults($sOriginal, $dBinary, $sConverted, $sConversionType) MsgBox($MB_SYSTEMMODAL, "", "Original:" & @CRLF & $sOriginal & @CRLF & @CRLF & "Binary:" & @CRLF & $dBinary & @CRLF & @CRLF & $sConversionType & ":" & @CRLF & $sConverted) EndFunc ;==>DisplayResults Thanks a lot!
    • nacerbaaziz
      By nacerbaaziz
      Hi dear
      I want create retractable bar using autoit
      I tried creating slider, but there's a problem with screen reader for the blind, so is there another retractable tape?
      It is advisable to not accept dragging with the keybord only with  mouse
      note:
      This bar is needed in the process of raising and lowering the volume
      I hope that there is a solution to do that
      i waiting your responses.
      Thanks in advance to all members and administrators
    • XanzyX
      By XanzyX
      Is there a function out there that will edit an existing file witha a "Save" and "Cancel" at the bottom?
      Example: Funcrion("TestFile.txt")
    • rte7
      By rte7
      Hello. We work with the BMC Remedy site to manage incidents and would like to automate the processes of clicking through this button code:
      <a href="javascript:" class="btn btn3d menu" style="top:21; left:184; width:21; height:21;"> <img class="btnimg" src="../../../../resources/images/mt_sprites.gif" alt="menu category issue" title=""> </a> I use firefox with mozrepl and autoit with include FF.au3
      I need your help
      I read the topic https://www.autoitscript.com/forum/topic/95595-ffau3-v0601b-10/ but I could not run the code from the listed commands
      ...
      It is necessary to press the button and from the list of the menu of cahorsations to select the item = "zone of trust abonent"
      Screen # 1 http://joxi.ru/52aJK7bh4a7ypA or below.
      1) Press button
      <a href="javascript:" class="btn btn3d menu" style="top:21; left:184; width:21; height:21;"> <img class="btnimg" src="../../../../resources/images/mt_sprites.gif" alt="menu category issue" title=""> </a>
      2) After pressing the button, I need to choose in this menu of 4 items to select an item called "zone of trust abonent", Screen # 2 - http://joxi.ru/p27gwQKHo71VQ2
      html code table items
      <table class="MenuTable" cellpadding="0" cellspacing="0" style="width: 179px;"> <tbody class="MenuTableBody"> <tr class="MenuTableRow"> <td class="MenuEntryName" nowrap="">zone of trust abonent</td> <td class="MenuEntryNoSub" arvalue="zone of trust abonent"></td> </tr> <tr class="MenuTableRow"><td class="MenuEntryName" nowrap="">zone of trust operator</td> <td class="MenuEntryNoSub" arvalue="zone of trust operator"></td> </tr> <tr class="MenuTableRow"><td class="MenuEntryName" nowrap="">zone of trust third operator</td> <td class="MenuEntryNoSub" arvalue="zone of trust third operator"></td></tr> <tr class="MenuTableRow"><td class="MenuEntryNameHover" nowrap="">No settings</td> <td class="MenuEntryNoSubHover" arvalue="No settings"></td> </tr> </tbody> </table>
       
       
      More in detail, I choose from the menu item "zone of trust abonent" Screen # 3 - http://joxi.ru/GrqVq4ZIQEPW4m

       
      3) The choice is made, Screen # 4 http://joxi.ru/v297w6aC3PovLr
      <textarea class="text sr " wrap="off" id="arid_WIN_0_1000002488" cols="20" maxlen="60" style="top:21; left:0; width:179; height:21;" armenu="CFG:PRC:CategoryHPD-Res-T1-Q" mstyle="2" arautoc="1" arautocmb="1" arautocak="0" arautoctt="400" rows="1"> </textarea>
       
      It's all. I would be very grateful to you =) !!!!!!!!!!
      Here are more detailed codes in the attachment. 
      button1.txt
      menu - table.txt
      all.txt