Issue with creating macro to search a phrese within script and copy all the results into new sheet



  • Hi,
    I’m trying to record macro:

    1. Ctrl+F and search for a specific phrase within the current document
    2. Copy all the results from the Find window into new tab
    3. Search for a different phrase in the original document
    4. Copy all the results from find window into a new tab (different from the tab in step2)

    When running the Macro it is copping to the 2 tabs the last thing that was copied and not the search results.
    Can someone help me to solve this issue?

    This is the macro I recorded:
    <Macros>
    <Macro name=“Wrapper” Ctrl=“no” Alt=“no” Shift=“no” Key=“0”>
    <Action type=“3” message=“1700” wParam=“0” lParam=“0” sParam="" />
    <Action type=“3” message=“1601” wParam=“0” lParam=“0” sParam=“UpdateLoginInfo” />
    <Action type=“3” message=“1625” wParam=“0” lParam=“0” sParam="" />
    <Action type=“3” message=“1702” wParam=“0” lParam=“0” sParam="" />
    <Action type=“3” message=“1701” wParam=“0” lParam=“1641” sParam="" />
    <Action type=“0” message=“2422” wParam=“0” lParam=“0” sParam="" />
    <Action type=“0” message=“2325” wParam=“0” lParam=“0” sParam="" />
    <Action type=“2” message=“0” wParam=“41001” lParam=“0” sParam="" />
    <Action type=“0” message=“2179” wParam=“0” lParam=“0” sParam="" />
    <Action type=“0” message=“2422” wParam=“0” lParam=“0” sParam="" />
    <Action type=“0” message=“2325” wParam=“0” lParam=“0” sParam="" />
    <Action type=“3” message=“1700” wParam=“0” lParam=“0” sParam="" />
    <Action type=“3” message=“1601” wParam=“0” lParam=“0” sParam=“Create args event” />
    <Action type=“3” message=“1625” wParam=“0” lParam=“0” sParam="" />
    <Action type=“3” message=“1702” wParam=“0” lParam=“0” sParam="" />
    <Action type=“3” message=“1701” wParam=“0” lParam=“1641” sParam="" />
    <Action type=“0” message=“2422” wParam=“0” lParam=“0” sParam="" />
    <Action type=“0” message=“2325” wParam=“0” lParam=“0” sParam="" />
    <Action type=“2” message=“0” wParam=“41001” lParam=“0” sParam="" />
    <Action type=“0” message=“2179” wParam=“0” lParam=“0” sParam="" />
    </Macro>



  • @Ohad-Ilan

    I think when you say “Find window” you really mean the Find-result window, so the following is based upon that assumption.

    Actions involving the Find-result window are not macro-recordable so I think your idea is basically dead-in-the-water right there.

    If you are interested in a scripted solution, something could likely be done. There is some discussion of accessing the Find-result window’s data via scripting in this thread: https://community.notepad-plus-plus.org/topic/18524/save-found-files/



  • @Ohad-Ilan ,

    In light of what @Alan-Kilborn mentioned (find-results not being macro-accessible), if what you are calling the "new tab"s are truly new, empty tabs, I might take a different direction:

    1. copy original file to two new files, new1 and new2
    2. open new1; delete any lines that do not match phrase 1; save
    3. open new2; delete any lines that do not match phrase 2; save

    If I were to do this in a programming language (for example, by using the PythonScript plugin to run Python code on the files open in Notepad++), I would probably just run through the original file once rather than twice, using the logic “if this section matches phrase1 then copy to new1; if it matches phrase2 then copy to new2” – noting that nothing needs happen with “this section” if it doesn’t match either



  • Hello, @ohad-ilan, @peterjones and All,

    Could you give a try to the following macro :

            <Macro name="Wrapper" Ctrl="no" Alt="no" Shift="no" Key="0">
                <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />                  <!-- Initialization SEARCH process         -->
                <Action type="3" message="1601" wParam="0" lParam="0" sParam="UpdateLoginInfo" />   <!-- SEARCH "UpdateLoginInfo"              -->
                <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />                  <!-- NORMAL Search mode                    -->
                <Action type="3" message="1702" wParam="0" lParam="790" sParam="" />                <!-- Down + Wrap + Mark + Purge + Case     -->
                <Action type="3" message="1701" wParam="0" lParam="1615" sParam="" />               <!-- Mark All, in CURRENT file             -->
    
                <Action type="2" message="0" wParam="43019" lParam="0" sParam="" />                 <!-- Copy BOOKMARKED Lines                 -->
    
                <Action type="2" message="0" wParam="41001" lParam="0" sParam="" />                 <!-- Open a NEW file                       -->
                <Action type="0" message="2179" wParam="0" lParam="0" sParam="" />                  <!-- PASTE the BOOKMARKED Lines            -->
    
                <Action type="2" message="0" wParam="44096" lParam="0" sParam="" />                 <!-- Move to PREVIOUS tab ( File to SCAN ) -->
    
                <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />                  <!-- Initialization SEARCH process         -->
                <Action type="3" message="1601" wParam="0" lParam="0" sParam="Create args event" /> <!-- SEARCH "Create args event"            -->
                <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />                  <!-- NORMAL Search mode                    -->
                <Action type="3" message="1702" wParam="0" lParam="790" sParam="" />                <!-- Down + Wrap + Mark + Purge + Case     -->
                <Action type="3" message="1701" wParam="0" lParam="1615" sParam="" />               <!-- Mark All, in CURRENT file             -->
    
                <Action type="2" message="0" wParam="43019" lParam="0" sParam="" />                 <!-- Copy BOOKMARKED Lines                 -->
                                                                                                    
                <Action type="2" message="0" wParam="41001" lParam="0" sParam="" />                 <!-- Open an other NEW file                -->
                <Action type="0" message="2179" wParam="0" lParam="0" sParam="" />                  <!-- PASTE the BOOKMARKED Lines            -->
    
                <Action type="2" message="0" wParam="44096" lParam="0" sParam="" />                 <!-- Move to PREVIOUS tab ( New# File )    -->
                <Action type="2" message="0" wParam="44096" lParam="0" sParam="" />                 <!-- Move to PREVIOUS tab ( File to SCAN ) -->
    
                <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />                  <!-- Initialization SEARCH process         -->
                <Action type="3" message="1601" wParam="0" lParam="0" sParam="" />                  <!-- SEARCH ""                             -->
                <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />                  <!-- NORMAL Search mode                    -->
                <Action type="3" message="1702" wParam="0" lParam="16" sParam="" />                 <!-- 'Bookmark line' option                -->
                <Action type="3" message="1701" wParam="0" lParam="1633" sParam="" />               <!-- CLEAR ALL marks, ( in File to SCAN )  -->
            </Macro>
    

    Just tried it… It works fine ;-))

    Cheers,

    guy038



  • @guy038

    Nice solution that really looked at solving the OP’s problem, rather than (like me) focusing on “Copy all the results from the Find window” not being macro-recordable.


Log in to reply