macro -copiere date din mai multe fisiere

Informatii despre cum se utilizeaza Microsoft Excel 2003. Calcule, Formule, Functii, Tabele pivot, Analiza datelor, etc
florinsrb
Mesaje: 18
Membru din: Mar Mar 27, 2012 11:36 am

Re: macro -copiere date din mai multe fisiere

Mesaj de florinsrb » Mie Mai 02, 2012 10:09 pm

Am gasit eroarea care facea ca inregistrarile sa se opreasca dupa primul fisier.
Prima coloana in care se scriu date in foaia mea colector este B, deci aici
nTgtLastRow = TgtWs.Range("A65536").End(xlUp).Row
si aici
nSrcLastRow = SrcWs.Range("A65536").End(xlUp).Row
trebuie schimbat A cu B. Cu alte cuvinte, in coloana B trebuie verificat ultimul rand scris.

agatha
Mesaje: 30
Membru din: Mar Iun 05, 2012 11:23 am

macro -copiere date din mai multe fisiere

Mesaj de agatha » Joi Iun 07, 2012 2:27 pm

Buna ziua


Am optat pentru varianta acestui forum din mai multe motive:

1. Sunt incepatoare, foarte pasionata de Excel si VBA , dar am mare nevoie de ajutoooor!
2. Vreau sa invat foarte multe cu ajutorul dvs.


Va rog sa ma ajutati , am 100 fisiere excel , de la 100 persoane si trebuie sa le centralizez intr - un singur fisier , printr - o comanda macro.

Ar trebui sa inserez un buton cu proceseaza fisier si sa dau o cale dar nu ma pricep, de asta va rog sa ma ajutati!

alcoool2
Mesaje: 969
Membru din: Mie Dec 15, 2010 4:25 pm

Re: macro -copiere date din mai multe fisiere

Mesaj de alcoool2 » Joi Iun 07, 2012 4:00 pm

Poate nu iti trebuie chiar un macro -- poate te ajuta aplicatia asta
10Q itlearning

agatha
Mesaje: 30
Membru din: Mar Iun 05, 2012 11:23 am

Re: macro -copiere date din mai multe fisiere

Mesaj de agatha » Joi Iun 07, 2012 4:27 pm

Multumesc mult incerc.

IPP
Moderator
Moderator
Mesaje: 4196
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: macro -copiere date din mai multe fisiere

Mesaj de IPP » Joi Iun 07, 2012 5:52 pm

Buna ziua

Vedeti si subiectul: Reunire date din 200 de fisiere excel

Acum depinde si de situatia dvs. reala si ce asteptari aveti. Pentru ca, daca veti avea 100 de fisiere-sursa cu structuri diferite (sau doar informatie aruncata fara vreo logica clara prin fisiere) in functie de fiecare persoana si/sau (mai mult) vor fi situatii in care aceeasi persoana va trimite fisierul sau diferit de la o luna la alta, eu ma indoiesc ca se poate face ceva cu adevarat bine si eficient

IP

agatha
Mesaje: 30
Membru din: Mar Iun 05, 2012 11:23 am

Re: macro -copiere date din mai multe fisiere

Mesaj de agatha » Joi Iun 07, 2012 5:59 pm

Pot sa atasez un fisier , doar sa l vedeti, si apoi o sa va explic mai multe?
De fapt , primesc trimestrial, o dare de seama de la 100 persoane, eu trebuie sa centralizez cele 100 dari de seama.
Stiu ca se poate si in VBA dar nu stiu cum sa fac sa fie corecta centralizarea .

IPP
Moderator
Moderator
Mesaje: 4196
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: macro -copiere date din mai multe fisiere

Mesaj de IPP » Joi Iun 07, 2012 6:05 pm

Atat acest subiect cat si cel indicat de mine se ocupa de o astfel de centralizare si accesul la codurile folosite este liber (proiectul VBA nu este parolat). Asadar sursa de inspiratie ar fi...
Nu spune nimeni ca nu se pot realiza multe cu VBA dar uneori se pune problema daca merita. Vedeti ce am scris in mesajul anterior

Atasand fisier(e) exemplu relevante ca structura si aranjare a datelor (nu intereseaza pe nimeni aici informatia reala, confidentiala) va mariti sansele sa primiti raspunsuri... relevante. (Eventual aruncati o pivire si pe regulamentul acestui forum pentru a vedea cam ce asteptari exista de la utilizatori.

agatha
Mesaje: 30
Membru din: Mar Iun 05, 2012 11:23 am

Re: macro -copiere date din mai multe fisiere

Mesaj de agatha » Mar Iun 12, 2012 7:43 pm

Revin cu rugamintea mea pentru ajutor. Atasez fisierul , cu mentiunea ca am studiat toate postarile din forum, dar mai mult de atat nu am reusit.
Va rog, ajutati - ma cu un cod vba, centralizare date.
Am un folder - evidenta raportari, acolo vor fi fisierele sursa, identice
Am inserat un buton - proceseaza fisier care la click cere calea
As vrea, de exemplu in celula H20 ,sa adune toate cifrele din celulele H20 din fisierele sursa, sau toate cifrele din randul H20 - T20 si randul H21 - T21....

Va multumesc!
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

IPP
Moderator
Moderator
Mesaje: 4196
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: macro -copiere date din mai multe fisiere

Mesaj de IPP » Dum Iun 24, 2012 6:53 am

Buna ziua

La modul de organizare/afisare dorita a informatiei (celule contopite, totaluri si subtotaluri sau daca vreti formule, inserate dupa niste ratiuni care nu prea au legatura cu o organizare a informatiei menita a usura munca de centralizare) n-ar trebui sa va mire ca primiti un raspuns asa de tarziu. Acel "all inclusive" (=aceeasi foaie sa fie pe post de formular de introducere date, tabel de stocare si raport) poate fi in regula atat timp cat nu trebuie facuta o centralizare din mai multe fisiere/foi.

Atasat aveti spre testare o propunere de abordare a problemei dvs.
Premise:
-O structura de tipul C:\Test pentru a adaposti fisierul in care se face centralizarea (si care contine macro propriuzis) si C:\Test\Sursa care va adaposti fisierele-sursa
-Fisierul in care se va face centralizarea va avea doua foi (sau daca vor fi mai multe cele doua vor fi obligatoriu primele in fisier si nu vor fi redenumite)
-Aranjarea informatiei va fi identica in toate fisierele si cf. cu modelul (orice stergere/inserare de randuri/coloane care va afecta structura informatiei va duce la rezultate nedorite sau chiar pierdere de informatie.
-Informatia de interes din fisierele sursa se va afla intotdeauna in prima foaie a fisierului

Am folosit urmatorul cod:

Cod: Selectaţi tot

Sub Centralizeaza()

'IPP (dupa model/idei Gecs, alcoool) - 24.06.2012

Application.ScreenUpdating = False

'sterge continutul vechi
Sheets("provizoriu").Rows("1:80").EntireRow.Delete

    Dim filesys_obj, folder_obj, files_col, curfile, i, j, currow, folder, fisier_1
'citeste calea catre folderul unde se afla fisierele-sursa
    folder = "C:\Test\Sursa"
'creaza obiectele pentru deschiderea fisierelor-sursa
    Set filesys_obj = CreateObject("Scripting.FileSystemObject")
    Set folder_obj = filesys_obj.GetFolder(folder)
    Set files_col = folder_obj.Files
    
'deschide pe rand fiecare fisier din folderul indicat...
    For Each curfile In files_col
        Workbooks.Open (folder & "\" & curfile.Name)
    'copiaza informatia de interes in foaia "provizoriu", inchide fisierul sursa
        ActiveWorkbook.Sheets(1).Rows("14:80").Copy Destination:=ThisWorkbook.Sheets("provizoriu").Range("A14")
        ActiveWindow.Close
    'apeleaza macro care realizeaza insumarea valorilor
        Call insumeaza
    'sterge randurile care au fost folosite la prelucrare
        Sheets("provizoriu").Rows("1:80").EntireRow.Delete
      Next
     
Application.ScreenUpdating = True

End Sub

Sub insumeaza()

Dim i As Integer
Dim j As Integer

i = 20
j = 8

For i = 20 To 30
    If Cells(i, j).HasFormula Then
        i = i + 1
    End If
        For j = 8 To 20
            If Cells(i, j).HasFormula Then
                j = j + 1
            End If
        Sheet1.Cells(i, j) = Sheet1.Cells(i, j) + Sheet2.Cells(i, j)
    Next j
Next i

End Sub
Pentru a usura testarea, atasat gasiti o arhiva *.zip cu structura de foldere, fisierul centralizator si 3 fisiere-sursa de test gata aranjate. Trebuie doar sa va asigurati ca, dupa dezarhivare veti respecta indicatiile de mai sus.

Pentru testare: deschideti fisierul fisier ex-1.xls, activati macro si apasati butonul Centralizeaza din foaia TRIM

Nota: in aceasta versiune, centralizarea se va face doar pentru valorile aflate in celulele pe care le-am colorat conventional cu gri. In final, nu e nevoie de acel fond colorat (veti vedea ca unele celule au fond galben, contin formule), pur si simplu am avut nevoie de niste repere vizuale pentru a-mi da seama cam ce e de facut pentru a aduna ce trebuie fara a compromite formulele deja existente.
De asemenea inainte de prelucrarea propriuzisa, nu se sterg valorile vechi din celule gri din foaia Trim.

Daca veti gasi in regula aceasta propunere atunci voi incerca sa completez codul macro.

IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

agatha
Mesaje: 30
Membru din: Mar Iun 05, 2012 11:23 am

Re: macro -copiere date din mai multe fisiere

Mesaj de agatha » Dum Iun 24, 2012 6:17 pm

Va multumesc mult!
Functioneaza asa cum mi am propus. Am obtinut ajutorul dumneavoastra la timp, peste cateva zile voi folosi macheta. Ma bucur in primul rand, ca ati inteles cam ce am vrut eu sa fac si nu ma pricep. Voi avea 100 registre de lucru
identice, care nu vor suferi modificari , ele vor avea denumiri dr_cod parafa, le voi salva in fisierul sursa, si le voi centraliza, binenteles daca ma veti ajuta pana la sfarsit. Eu m am straduit, dar cu cat studiam mai mult, cu atat mai mare era ceata.

Va multumesc muuuult!

Închis

Înapoi la “Intrebari despre Excel 2003”