Kfollow Posted March 28, 2019 Report Posted March 28, 2019 Salut, Am o lista de 70.000 contacte ( nu e-mail ) si vreau sa stiu daca se cunoaste o metoda de separare. Adica: Eu in momentul de fata din 100 in 100 fac copy/paste si mut intr-o alta lista. Se poate face cumva acest lucru automat? Folosesc notepad++ si csv Quote
QuoVadis Posted March 28, 2019 Report Posted March 28, 2019 (edited) Ce anume sa separi de ce? (caprele de oi?) Ce criterii? Da mai multe detalii caci nu iti putem citi gandurile Edited March 28, 2019 by QuoVadis 1 Quote
Kfollow Posted March 28, 2019 Author Report Posted March 28, 2019 Din lista de 70.000 de texte daca se pot extrage liste din 100 in 100 de texte. - Ele sunt unele sub altele pana la numarul de 70.000. In momentul de fata fac munca manuala le copiez pana la numarul 100 si le mut intr-un alt fisier si tot asa. Se poate automatiza acest proces? Quote
Active Members Fi8sVrs Posted March 28, 2019 Active Members Report Posted March 28, 2019 1 hour ago, Kfollow said: Din lista de 70.000 de texte daca se pot extrage liste din 100 in 100 de texte. - Ele sunt unele sub altele pana la numarul de 70.000. In momentul de fata fac munca manuala le copiez pana la numarul 100 si le mut intr-un alt fisier si tot asa. Se poate automatiza acest proces? Grep 1 Quote
QuoVadis Posted March 29, 2019 Report Posted March 29, 2019 14 hours ago, Kfollow said: Din lista de 70.000 de texte daca se pot extrage liste din 100 in 100 de texte. - Ele sunt unele sub altele pana la numarul de 70.000. In momentul de fata fac munca manuala le copiez pana la numarul 100 si le mut intr-un alt fisier si tot asa. Se poate automatiza acest proces? Sunt mai multe metode pentru a obtine ce vrei insa probabil cel mai usor pentru tine e urmatoarea: 1. Salvezi fisierul cu 70000 rows intr-un folder anume - aka nu-l pastra pe desktop caci iti va umple ecranul metoda urmatoare cu fisiere cu datele 2. Deschizi fisierul cu Excel si prima oara imparti workbook-ul in worksheets a cate 100 rows fiecare astfel: Bagi ALT+F11 sa pornesti VBA Insert > Module Dai paste la urmatoarele: Sub SplitData() 'Updateby20140617 Dim WorkRng As Range Dim xRow As Range Dim SplitRow As Integer Dim xWs As Worksheet On Error Resume Next xTitleId = "Split rows into worksheets" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8) SplitRow = Application.InputBox("Split Row Num", xTitleId, 100, Type:=1) Set xWs = WorkRng.Parent Set xRow = WorkRng.Rows(1) Application.ScreenUpdating = False For i = 1 To WorkRng.Rows.Count Step SplitRow resizeCount = SplitRow If (WorkRng.Rows.Count - xRow.Row + 1) < SplitRow Then resizeCount = WorkRng.Rows.Count - xRow.Row + 1 xRow.Resize(resizeCount).Copy Application.Worksheets.Add after:=Application.Worksheets(Application.Worksheets.Count) Application.ActiveSheet.Range("A1").PasteSpecial Set xRow = xRow.Offset(SplitRow) Next Application.CutCopyMode = False Application.ScreenUpdating = True End Sub Dai F5 sa rulezi. Vei primi un pop-up care te intreaba range-ul care sa il foloseasca. Bagi in format "$A$1:$P70000" sau ce range vrei tu sa cuprinda si apoi OK Acum vei avea worksheet-uri a cate 100 rows fiecare. Iar acum pasul al 2-lea sa dai export la toate worksheet-urile sa fie salvate in fisiere diferite fiecare: 1. Bagi iarasi ALT+F11 sa pornesti VBA 2. Insert > Module 3. Dai paste la urmatoarele: Sub Splitbook() 'Updateby20140612 Dim xPath As String xPath = Application.ActiveWorkbook.Path Application.ScreenUpdating = False Application.DisplayAlerts = False For Each xWs In ThisWorkbook.Sheets xWs.Copy Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & xWs.Name & ".xlsx" Application.ActiveWorkbook.Close False Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub 4. Bagi F5 sa ruleze. Va dura putin, in functie de volumul de worksheet-uri (banuiesc ca 70000/100 deci 700 fisiere) insa nu ar trebui sa dureze foarte mult, depinde de PC tau 1 5 Quote
Kfollow Posted March 29, 2019 Author Report Posted March 29, 2019 Incredibil, a mers ... raman indatorat vesnic... ma saturasem de copy/paste .... facusem cred ca sute si sute de liste.... incredibil... Multumesc, apreciez enorm. Quote
gigiRoman Posted March 30, 2019 Report Posted March 30, 2019 Ar merge si cu foric de c#. @QuoVadis apreciez metoda ta. Numai bine! Quote