The Ultimate Guide to Copying Data using Excel VBA

Sdílet
Vložit
  • čas přidán 7. 07. 2024
  • Learn how to write real-world Excel VBA code: 👉courses.excelmacromastery.com/
    Want to download the source code for this video? Go here: bit.ly/3cflkjT
    Subscribe to the channel here: bit.ly/36hpTCY
    The Ultimate Guide to Copying Data using Excel VBA
    In this video I'm going to cover everything you need to know about copying data using VBA. We're going to look at:
    * What to avoid
    * How to ensure your code runs fast
    * How to get the correct worksheet every time
    * An in-depth look at the 4 methods
    * The pros and cons of each method
    #excelvba #excelvbacopy #ExcelVBAArray #ExcelVBAAdvancedFilter #ExcelVBAADO
    CZcams Video: How to use ADO and VBA to Read from Worksheets: • How to use ADO and VBA...
    CZcams PlayList: Excel VBA Copying and Filtering Data: • Excel VBA Copying and ...
    CZcams PlayList: Excel VBA Arrays: • Excel VBA Copying and ...
    Useful VBA Shortcut Keys
    ========================
    Debugging:
    Compile the code: Alt + D + L OR Alt + D + Enter
    Run the code from the current sub: F5
    Step into the code line by line: F8
    Add a breakpoint to pause the code: F9(or click left margin)
    Windows:
    View the Immediate Window: Ctrl + G
    View the Watch Window: Alt + V + H
    View the Properties Window: F4
    Switch between Excel and the VBA Editor: Alt + F11
    View the Project Explorer Window: Ctrl + R
    Writing Code:
    Search keyword under cursor: Ctrl + F3
    Search the word last searched for: F3
    Auto complete word: Ctrl + Space
    Get the definition of the item under the cursor: Shift + F2
    Go to the last cursor position: Ctrl + Shift + F2
    Get the current region on a worksheet: Ctrl + Shift + 8(or Ctrl + *)
    To move lines of code to the right(Indent): Tab
    To move lines of code to the left(Outdent): Shift + Tab
    Delete a Line: Ctrl + Y(note: this clears the clipboard)
    Table of Contents:
    00:00 - Introduction
    00:26 - Don't do this
    01:06 - Speeding up your code
    02:16 - Get the correct worksheet every time
    02:31 - How to get the correct worksheet
    05:45 - How to get the correct data range
    07:11 - Method 1: For Loop & Range
    12:38 - Method 2: For Loop - Arrays
    16:26 - Method 3: Advanced Filter
    26:40 - Method 4: ADO
  • Věda a technologie

Komentáře • 110

  • @vpires70
    @vpires70 Před rokem +27

    The amount of knowledge shared in this vídeo for free is insane! It is sad I can only press like once!!

    • @Excelmacromastery
      @Excelmacromastery  Před rokem +2

      Thanks. Glad you like it so much!

    • @CollDott
      @CollDott Před rokem

      You could use vba to generate as many accounts as you like and press like however time you need to satisfy that urge!!

  • @tomharrington1453
    @tomharrington1453 Před rokem +5

    I have to watch these videos in 10 minute segments. There is so much valuable information I can't take it all in. I can see direct application for all of it.

  • @FulvioGaggioli
    @FulvioGaggioli Před rokem +1

    Your Excel knowledge is amasing!

  • @albireocygnus559
    @albireocygnus559 Před 3 měsíci

    I'm always impressed with your crisp clear explanations and always can learn something new. Simply excellent!

  • @hadibq
    @hadibq Před rokem

    Simply awesome!! Thanks Paul!

  • @adrisanme2010
    @adrisanme2010 Před rokem +1

    Extremely useful powerful code, thank you!!!

  • @adrisanme2010
    @adrisanme2010 Před rokem +1

    Thank you very much for the extremely powerful code

  • @michaelsvenson2456
    @michaelsvenson2456 Před 8 měsíci

    I´m not a programmer in any way, just doing some stuff for my archeryclub, but this thing you do is amazing. I will try to use some of your code if I can make it to run as I like. Great videos.... 🙂

  • @jimfitch
    @jimfitch Před rokem +2

    Your best tutorial yet on this topic! Thanks!

  • @reng7777
    @reng7777 Před rokem +1

    I've been following you since long time ago, and all your videos have a great and professional content !!! I can say compare to others VBA youtubers you are the best to know more each of the concepts applied in VBA with clear examples. my hat off to you amigo!!!!

  • @armotxa124
    @armotxa124 Před rokem +1

    Thank you Paul. Your codes are just lovely 👍 fast. I use them often. 👌

  • @freeliberalminds
    @freeliberalminds Před rokem +1

    Wow! Awesome tutorial. Thanks a lot for this video tutorial for free sir Paul.Very Helpful tips from You.

  • @grahamparker7729
    @grahamparker7729 Před rokem +2

    Loved this one, keep them coming!

  • @neronjp9909
    @neronjp9909 Před 12 dny

    Thx so much!! Great video

  • @joaocustodio2094
    @joaocustodio2094 Před rokem +1

    Great as always. Thanks vert much, Paul.

  • @giulianopierucci2903
    @giulianopierucci2903 Před rokem

    Really very interesting, thanks Paul

  • @AdautoAraujo
    @AdautoAraujo Před rokem

    Simply amazing!!

  • @frikduplessis8849
    @frikduplessis8849 Před rokem +2

    Paul thank you for a brilliant tutorial

  • @alializadeh8195
    @alializadeh8195 Před rokem

    Thanks

  • @mr.write1433
    @mr.write1433 Před 7 měsíci

    i cant stop thanking broooooo my sheet is so fast now mygooodnesss

  • @mdbm500
    @mdbm500 Před rokem +1

    Thanks. my colleagues and I did it ineffectively, but now I know how to do it correctly.

  • @rmscrisostomo
    @rmscrisostomo Před rokem +1

    You're the best, Phill Collins.
    kidding, I'm really a fan of your work.

  • @uryfj238lkfiguryesd
    @uryfj238lkfiguryesd Před 2 měsíci

    Amazing share! We can never easily get such knowledge by our own or unless we find this video.

  • @francoismarsau6412
    @francoismarsau6412 Před rokem +1

    Great video. I learn more every day from this channel. In this video you mentioned that the down side to the advanced filter is it gets slow the more frequently you use it. Why is this? Is there a solution? Please assist as I love using advanced filters.

  • @big1975E
    @big1975E Před rokem +1

    I’ve learned so much from your videos!! One question… how would I use ADO to update existing records in another workbook and add new records from data in the active workbook in one query?

  • @jaimesastre6393
    @jaimesastre6393 Před rokem +1

    Thank You John. Very interesting, especially the two last parts.
    One question concerning the ADO SQL:
    The form seems a little specific.
    For example using "&".
    Is there a reference to know the different syntax?
    Thanks 👍

  • @josealvesferreira1683

    Very good.

  • @SimpleExcelVBA
    @SimpleExcelVBA Před rokem

    ADO is my favourite method to get a data from other Excel file, CSV file or data base for a long time. The speed of this method depends of the size of the file, format/extension and of the complexity of the query, but, at least for my needs, imo it is very, very fast solution.

  • @logic3686
    @logic3686 Před rokem +1

    Great video. I've used the ADO method before generally use the power query to pull the data from another file. Your method is probably quicker, but it might make a great video comparing the speed.

  • @rahul7rock
    @rahul7rock Před rokem +2

    Beautifully Explained Sir🙂

  • @maverickxyph239
    @maverickxyph239 Před rokem

    Thank you. These are lovely codes :-).

  • @cvdung06
    @cvdung06 Před rokem

    Thanks a lot, this video is stunning.

  • @flance4011
    @flance4011 Před 8 měsíci

    Wonderful

  • @rsnowdozer
    @rsnowdozer Před rokem +1

    I didn't know about the ”ADO" method. It looks pretty simple. That's cool. 👍

  • @idaeinjaw2139
    @idaeinjaw2139 Před rokem

    best tutorial ever.

  • @Suissair
    @Suissair Před rokem +1

    Everybody learning vba should see this video.. Thank you very much!!
    I would like to add the filter results to a listbox and then sort my Lb(column 'x') (a-z) ?

  • @pedrovischi6208
    @pedrovischi6208 Před rokem

    Tks Paul to share another Great tutorial.
    Just one point here about the last method, SQL, the excel file, meaning the sheet to query data, shall be structured as database, in case not, errors might happen.

  • @bayurukmanajati1224
    @bayurukmanajati1224 Před rokem +1

    Well, this is great. ADODB come to rescue with complicated database thing. But personally, I would love to use VBA cleanly without too many much additional reference activate.
    This is also include FSO library, where I tends to use Open method rather than streaming file into FSO.

  • @thesilverkey
    @thesilverkey Před 7 měsíci

    John, thank you. Where does the FROM Data$ bit come from? Ahhhhh, it's the sheet name. Nevermind. is sheet.name and are are the Row1 Headers. Got it. Thanks again!

  • @TheRaf87
    @TheRaf87 Před rokem

    Hey John, great video. One question, can you use advance filter to copy data to a table that has dynamic address?

  • @scotolivera8207
    @scotolivera8207 Před rokem +1

    Great content as always, it would be nice if you could cover working with custom xml
    parts as addition hidden storage

  • @paulmacabasco7592
    @paulmacabasco7592 Před rokem

    Hi, i am new to VBA, thanks for uploading. your videos are great and very helpful, For For Loop & Range; i just want to ask if how can i identify and copy the first row only.

  • @MrJbasinger
    @MrJbasinger Před rokem +2

    Nice video. I have been searching for some code that when I select a row of data in one sheet (any cell of a row) it would first clear specific cells in a second sheet and then fill it with the data of the newly selected row (like data from a table into a form). Can you help? Also, do you recommend any books or forums that I could use a reference on VB coding language.

  • @kukuhwahyurinaldi6288

    Always great n structured explanation. The only Channel that will give enhancement knowledge. Allow me to ask U Something Mr Paul..
    Is there any limit when using Turn on n turn off (app. Calculation manual then automatic, app.enableevents false then True) in a entry n record data ?
    Thank 4 ur answer 🙏

  • @peterwooldridge7285
    @peterwooldridge7285 Před rokem

    A really great vid

  • @benkyree2272
    @benkyree2272 Před rokem +2

    Hi, thanks so much for sharing your knowledge, really useful! Can I just ask what you meant by not being able to alter and append data for advanced filter? I didn’t quite get that part. Thanks!

    • @Excelmacromastery
      @Excelmacromastery  Před rokem

      Hi Ben,
      1. Append - when you run it a second time it would add to the existing data. There isn't an option to do this.
      2. Alter data - e.g. If you want to perform some calc before writing put the results.

  • @mswordexpert
    @mswordexpert Před rokem

    Waaaaawwww I wish I could do something more than just a Like👍👍
    You are a phenomenon.

  • @aydeediaz2307
    @aydeediaz2307 Před rokem

    Hi! thanks for the great video! what if 1. I want to copy the data UNTIL query is refreshed or 2. ONLY if there are not blank cells and do a loop until the data es fill

  • @pratipbanerjee68
    @pratipbanerjee68 Před 8 měsíci

    Great Video. I have used the FOR loop. The data gets copied to the new sheet but the formatting of the original source is not retained. Also the cell borders are blank. How to solve these two issues pse?

  • @KM-co5mx
    @KM-co5mx Před rokem +1

    Thank You for another awesome video! I always look forward to these 🤗

  • @ExcelInstructor
    @ExcelInstructor Před rokem

    Hi John,
    do you have expirience working with VBA related to SAP?
    I do have an issue, when i use special sap option to generate data it gets put into the excel, however i cannot get the instance or name with that workbook.
    Thisworkbook.Path also shows no tring or text, yet im trying to automate getting data from this report and I need to save the workbook.
    Do u have maybe any idea how to do it?

  • @530MadCat
    @530MadCat Před 9 měsíci

    Interesting... I like current region. What if I need data from a bunch of different locations? My employer is using excel to collection data points but its built for the floor personnel not in data format (row/column) . I'm currently using find/findnext to location indicator data to find the KPIs. Thoughts?

  • @narendramishra3503
    @narendramishra3503 Před rokem +1

    Thanks for the video. I wanted to ask two doubts.
    1) How do we retain background colour and other formatting when we save a new excel sheet after some conditional formatting from older sheet.
    2) How to keep comparing the new sheet with older sheet so that when a new entry satisfies the condition directly comes into our new sheet and if any entry doesn't satisfy condition will get out from the sheet.

  • @nadermounir8228
    @nadermounir8228 Před rokem +1

    Thank you very much for this very informative video. A quick question: why do use tempdatarow = 1 to 1. Why the row is 1 in the array parts? Minute 15 of the video ? thank u so much

    • @Excelmacromastery
      @Excelmacromastery  Před rokem

      I copy a row of the array to the temp array which is one row. Then I write the entire row to the worksheet. This runs faster than writing each cell to the worksheet.

    • @nadermounir8228
      @nadermounir8228 Před rokem

      @@Excelmacromastery what confuses me is that if tempdatarow has 1 row of the data then how come it will be able to write all the rows in the worksheets ? In other words, tempdatarow will consist of one row of data only and so it will spit out that first row of data only in the sheet and not the whole rows of data ? Isn't?

  • @user-tq7yz9xb8g
    @user-tq7yz9xb8g Před rokem

    I wish i could to join to the webinar, but our goverment, visa and mastercard make it impossible. Thanks for this video.

  • @rrrraaaacccc80
    @rrrraaaacccc80 Před 4 měsíci +1

    💯👍

  • @hammeedabdo.82
    @hammeedabdo.82 Před rokem

    Thank you for this video,
    Is VBA faster then Python,c++ or c# ?

    • @Excelmacromastery
      @Excelmacromastery  Před rokem

      It's not possible to say because it depends on so many factors like the code you are using, the task being completed etc. VBA is very fast for processing data and suit be fast enough for anyone's needs.

  • @hedigson2586_
    @hedigson2586_ Před rokem

    Hi Mr. Its possible write code from a normal module inside a event, for example write code inside open event that object thisworkbook or write code inside event selectionChange the sheet object... all than since standar module... Thanks
    Hola amigo, saludos desde venezuela. Es posible escribir codigo desde un modulo normal dentro del evento de un objeto como por ejemplo el evento Open del objeto thisworkbook o en el Evento SelectionChange del objeo sheet. todo desde un Modulo... Yo he logrado hacerlo, creando el evento desde el módulo. lo que no he logrado hacer es escribir o validar si el evento ya esta creado o no...
    Saludos..!

  • @shivangi24177
    @shivangi24177 Před rokem

    I am copying the filtered data from one workbook to another using arrays.I have used the following line in j loop:
    ThisWorkbook.Worksheets("Data").Cells(outRow,j)= data(i,j)
    but the data is not being copied in my current workbook
    Please help!

  • @4txx
    @4txx Před rokem +1

    I have used ADO method for a long time now. It is very useful but it always bugged me due to two things. Text values will be cutoff at 255 characters, and you can not really cast column format. It sometimes turns numbers to text, and just prints blank column as it tries to turn text into numbers. Did anybody have workarounds to these two things?

    • @4txx
      @4txx Před rokem

      Also SQL used is from Access SQL which is very old and has limited number of basic commands.

  • @june4403
    @june4403 Před rokem +1

    Hi. I have a VBA code for copying & pasting an entire row if a condition is met in one cell. I am pasting into a different worksheet in the same workbook. Everything is working except one of my cells. The formula is being copied instead of the value. I have tried the paste special (xlpastevalues) but that's isn't working. I just replaced the word paste w/ the paste special code. Do I need to add anything else to my code other than this? Thank you in advance.

    • @VBASqlAccessPowerApps
      @VBASqlAccessPowerApps Před rokem +1

      use range("rangename ").pastespecial paste =xlpastevalues like Range("A1:B3").Copy
      Range("C1").PasteSpecial Paste:=xlPasteValues

  • @amazingpen
    @amazingpen Před rokem

    The ADO method can be used if the row data over 65k lines?

  • @big1975E
    @big1975E Před rokem

    I tried using ADO to query from the active workbook and I can’t open the connection. I get a Cannot update. Database or object is read-only. error message. How do I fix this? The workbook isn’t opened in Read Only mode.

  • @hammeedabdo.82
    @hammeedabdo.82 Před rokem

    Thank you Mr. Paul,
    1- Can the Excel add-in be programmed in another programming language such as C#, C ++ , Python or only through VBA?
    2- Can we replace VBA in Excel with C#? If it is impossible, why not?

    • @Excelmacromastery
      @Excelmacromastery  Před rokem

      You can use C#/C++ with VSTO(Visual Studio). You can use Python but it requires third-party tools to connect with Excel. VBA comes with Excel - no extra tools required.

  • @shivangi24177
    @shivangi24177 Před rokem +1

    I have 2 workbooks
    Source workbook- Sheet1 contains sample data
    Destination Workbook- Sheet2 is empty
    It has a button ,which when clicked should filter the data from Sheet 1 to Sheet 2
    I am getting error: 438
    While debugging,it is giving error in the following line:
    Set sheet =book.Workbook("Sheet1")
    Please help!!!!

    • @Excelmacromastery
      @Excelmacromastery  Před rokem

      Book.Worksheets("sheet1")

    • @shivangi24177
      @shivangi24177 Před rokem

      @@Excelmacromastery Thankyou
      I am copying the filtered data from one workbook to another using arrays.I have used the following line in j loop:
      ThisWorkbook.Worksheets("Data").Cells(outRow,j)= data(i,j)
      Please help!

  • @Excelmacromastery
    @Excelmacromastery  Před rokem +4

    Learn how to write real-world Excel VBA code: 👉courses.excelmacromastery.com/
    I hope you enjoy my latest video. Make sure to download the source code from the link in the description and let me know in the comments which part you found most interesting.

  • @jbinmd
    @jbinmd Před rokem

    Is ADO the only one that won't run on Mac?

  • @scotolivera8207
    @scotolivera8207 Před rokem

    Link for source code is not working

    • @Excelmacromastery
      @Excelmacromastery  Před rokem

      Hi Scot. I checked the link and it works fine. What issue are you having? Ensure that you are not using any pop-up blockers.

  • @jamesdarylvelarde9343

    Office script 🥺

  • @TheGhurabah
    @TheGhurabah Před 5 měsíci

    lost me - needs to be more simple

  • @hasanmougharbel8030
    @hasanmougharbel8030 Před rokem

    Hello dear, God bless your efforts.
    I am a totally newbie vba learner.
    I come to play with that code and have a simple enquiry.
    How could i amend this code so that i can return all generated workbooks, inside a folder by which the code is run.
    Thanks a lot
    Sub test()
    Dim rg As Range, i As Long, wb As Workbook
    Dim vNames As Variant, v As Variant

    Set rg = Workbooks("All raw data.csv").Worksheets("All raw data").UsedRange

    'get unique names
    With CreateObject("Scripting.Dictionary")
    For i = 2 To rg.Rows.Count
    .Item(rg.Cells(i, 1).Value) = Empty
    Next i
    vNames = .keys
    End With

    For Each v In vNames
    ThisWorkbook.Worksheets("Sheet1").Copy
    Set wb = ActiveWorkbook
    wb.SaveAs v, 51
    rg.AutoFilter 1, v
    rg.Offset(1).Columns("A").SpecialCells(xlCellTypeVisible).Copy wb.Worksheets(1).Cells(2, 1)
    rg.Offset(1).Columns("U").SpecialCells(xlCellTypeVisible).Copy wb.Worksheets(1).Cells(2, 2)
    rg.Offset(1).Columns("Q").SpecialCells(xlCellTypeVisible).Copy wb.Worksheets(1).Cells(2, 3)
    wb.Save
    Next v
    End Sub

  • @Ron-el6zh
    @Ron-el6zh Před měsícem

    Please ignore my request for help, I worked out the issue, I used the wrong sheet name.

  • @neronjp9909
    @neronjp9909 Před 12 dny

    Thx so much!! Great video

  • @neronjp9909
    @neronjp9909 Před 12 dny

    Thx so much!! Great video