Cautare date in mai multe sheet-uri

Informatii despre cum se utilizeaza Microsoft Excel 2003. Calcule, Formule, Functii, Tabele pivot, Analiza datelor, etc
Închis
gabitoma
Mesaje: 3
Membru din: Vin Iun 09, 2017 12:26 pm

Cautare date in mai multe sheet-uri

Mesaj de gabitoma » Vin Iun 09, 2017 1:02 pm

Buna ziua
Am un fisier excel cu 30 de sheet-uri.Fiecare sheet contine cate un tabel(Nr crt;Nr vagon;Serie Vagon ;Linia ).Momentan folosesc Vlookup dar nu ma ajuta deoarece cauta doar intr-un sheet.Ma intereseaza o functie de genul vlookup dar care sa caute concomitent in toate cele 30 de sheet-uri.
Ca sa ma fac inteleasa: in fiecare sheet am pe coloana numere de vagoane si o alta coloana cu linia in care se afla ; din toate sheet-urile am un tren de format si vreu sa imi caute in ce linie este fiecare vagon.
Va multumesc.

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

Re: Cautare date in mai multe sheet-uri

Mesaj de IPP » Vin Iun 09, 2017 1:44 pm

Buna ziua

Eu as incerca sa folosesc o solutie bazata pe un macro insa pentru aceasta ar fi nevoie de mai multe detalii privind structura reala a informatiei. Poate aveti 30 de foi clar denumite/aranjate insa daca tabelele dvs. incep unul in A1, altul in Z10, cu celule contopite, randuri-coloane goale in liste etc.... atunci e riscant de facut.

Pe o structura clara si corecta a datelor, ar fi nevoie de o coloana in care sa introduceti numerele de vagoane pe care le doriti iar macro ar putea sa caute in tabele din toate foile de interes si sa va returneze informatia dorita in dreptul fiecarui numar de vagon in parte.

IP

PS. Nu spun ca nu ar exista ceva varianta bazata pe formule dar, cel putin la prima vedere nu mi se pare o abordare practica

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

Re: Cautare date in mai multe sheet-uri

Mesaj de IPP » Vin Iun 09, 2017 2:16 pm

Buna ziua

Atasat gasiti o ilustrare a ideii expuse anterior.

Premise:
-in fisier exista doar foile de interes (cele 30, indiferent cum se numesc +1 foaie care sa se numeasca obligatoriu "CompunereTren"; in fisierul atasat sunt doar 3 dar se mai pot adauga restul cu conditia respectarii structurii existente)
-Listele (Tabelele) din cele 30 de foi vor incepe intodeauna din A1 si nu vor avea randuri/coloane goale intercalate
-Numerele de vagon sunt unice, in caz contrar se va inregistra linia din dreptul ULTIMEI aparitii a numarului de vagon (de ex. daca V05 apare atat in foaia15 cat si in foaia 25, se va inregistra linia din dreptul vagonului V05 din foaia 25); Daca acelasi numar de vagon apare de mai multe ori in aceeasi foaie atunci se va inregistra linia din dreptul PRIMEI aparitii.
-Numerele de vagon vor fi trecute in foaia CompunereTren unele sub altele pe coloana B incepand cu B2, fara a lasa celule goale intre ele

Am folosit urmatorul cod

Cod: Selectaţi tot

Sub CompunereTren()

'IPP - 09.06.2017

Dim cVagon As Range
Dim rngLinii As Range

Dim sh As Worksheet

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Sheets("CompunereTren").Select
Range("B2").Select

Do Until IsEmpty(ActiveCell)

For Each sh In ThisWorkbook.Worksheets
 If sh.Name <> "CompunereTren" Then
   Set rngLinii = sh.Range("A1").CurrentRegion.Columns(2).Cells
 
  For Each cVagon In rngLinii
   If cVagon = ActiveCell Then
    ActiveCell.Offset(0, 1).Value = cVagon.Offset(0, 2).Value
    Exit For
   End If
  Next cVagon
  End If
 
 Set rngLinii = Nothing
Next sh

ActiveCell.Offset(1, 0).Select
Loop

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

End Sub
Pentru testare:
Deschideti fisierul atasat, activati macro/continutul, specificati in foaia CompunereTren numerele de vagon (in exemplul meu oricare intre V01 si V12 inclusiv) si rulati macro (apasati "butonul" albastru)

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

gabitoma
Mesaje: 3
Membru din: Vin Iun 09, 2017 12:26 pm

Re: Cautare date in mai multe sheet-uri

Mesaj de gabitoma » Vin Iun 09, 2017 8:01 pm

Buna seara,este minunat ce ai facut,merge, doar ca in momentul in care copiez sheet-ul cu Compunere tren in workbook-ul meu cu cele 30 sheet-uri nu mai merge.Banuiesc ca trebuie sa fac ceva,eu am dat move or copy.
As indrazni sa iti mai cer sa modifici un pic acest macro,sper sa nu gresesc in exprimare(sunt incepatoare) si am sa iti spun si ce doresc :
-deoarece singurele informatii constante sunt in coloana cu numar vagon si numele sheet-ului(care este de fapt linia in care sunt vagoanele)vreau sa intreb daca este mai usor sa gasesc vagoanele din tabel si sa imi dea informatia in care sheet le gaseste.
Daca nu se poate ce am cerut mai sus am sa modific toate sheet-urile si am sa inserez o coloana cu numarul liniei in coloana H(mentionez ca in tabelul din sheet nu este scris nr liniei...sheet-ul este denumit cu numarul liniei pe care sunt vagoanele iar in tabel sunt coloane cu diferite informatii despre vagoane din acea linie).
Am sa atasez situatia liniilor.Mentionez ca ma intereseaza informatiile din sheet-urile 11B-pana la 10 A.Multumesc frumos.
Sper ca m-am facut inteleasa.:)
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: Cautare date in mai multe sheet-uri

Mesaj de IPP » Vin Iun 09, 2017 8:49 pm

Buna seara

Ati postat problema la Sectiunea de Excel 2003 si ati atasat un fisier facut intr-o versiune superioara. In final pe ce versiune veti lucra?
Daca veti folosi fisierul doar pe versiune de excel 2007 sau superioara, atunci fisierul care contine macro va trebui sa fie de tip .xlsm

Trebuie sa ma uit peste fisierul atasat, in principiu se pot face modificarile dorite.

IP

TudyBTH
Moderator
Moderator
Mesaje: 993
Membru din: Joi Feb 11, 2016 2:12 pm
Localitate: Cluj Napoca

Re: Cautare date in mai multe sheet-uri

Mesaj de TudyBTH » Vin Iun 09, 2017 8:52 pm

Buna,

In paralel cu solutia cu macro oferita de colegul IPP incerc sa va dau cateva sugestii.
In Excel este foarte usor sa extragi anumite date dintr-un tabel si sa le afisezi in functie de ce criterii doresti, in oricete tabele sau sheeturi diferite. Insa exista foarte putine (si foarte limitate) modalitati pe care Excelul le pune la dispozitie pentru a 'colecta' date din locuri diferite (daca acele locuri sunt sheeturi sau fisiere diferite, cu atat mai dificil), de cele mai multe ori, ca si in cazul de fata este necesara folosirea unor macro (VBA).
Pentru ca observ ca nu aveti cunostinte de programare in VBA pentru a va crea propriile 'unelte' sau sa adaptati coduri macro gasite pe net, v-as sugera sa inregistrati toate vagoanele intr-un singur sheet (de preferat intr-un tabel), introducand o coloana in care sa treceti numarul liniei (adica ceea ce ati trecut acum ca nume al foii).
O astfel de aranjare/inregistrare a datelor va va permite sa aplicati cam orice fel de sortre/extragere sau prelucrare a datelor fara a a folosi VBA.
Am invatat sa inotam in apa, ca pestii
Am invatat sa zburam in aer, ca pasarile
A ramas doar sa invatam sa traim pe Pamant, ca Oamenii.

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

Re: Cautare date in mai multe sheet-uri

Mesaj de IPP » Vin Iun 09, 2017 9:51 pm

Buna ziua

Dat fiind faptul ca aveti chenare in toate celulele din fisier (lucru profund gresit din multe puncte de vedere) si fond colorat alb (asta chiar nu are rost din moment ce implicit e alb), fisierul nu poate fi salvat in versiunea 2003 deci va fi de tipul .xlsm si va putea fi functional doar pe versiunea Excel 2007 sau ulterioara.

Testati fisierul atasat in care:
-macro va cauta/extrage informatia din TOATE foile care au la inceput de nume CIFRE. E foarte important sa retineti acest lucru. Daca in viitor veti mai insera foi care nu au legatura cu liniile, aveti grija sa nu le denumiti incepand cu o cifra
-pe coloana B din foaia "CompunereTren" se vor introduce manual numerele de vagon dorite; La rularea macro, daca numarul respectiv este gasit intr-o anumita foaie, se va insera numele foii.
-Pentru cazul in care acelasi numar de vagon va fi pe foi diferite, se va afisa si numele foilor in care mai apare (desi in mod normal nu ar trebui sa aveti astfel de situatii)

Nu recomand copierea foii "CompunereTren" in fisierul dvs. original pentru ca astfel butonul care permite rularea macro va cauta sa ruleze macro din fisierul original. Mai bine creati foaia direct in fisierul dvs. (inserare foaie noua, redenumire), importati modulul (este containerul care contine codul macro; pentru a-l vedea apasati Ctrl+F11) care contine macro din fisierul meu in fisierul dvs., inserati o forma (shape, eu folosisem un dreptunghi dar asta n-are importanta) in foaia CompunereTren si asignati macro acesteia. Chiar nu exista nimeni in firma la care lucrati sa va ajute cu aceasta parte?

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

gabitoma
Mesaje: 3
Membru din: Vin Iun 09, 2017 12:26 pm

Re: Cautare date in mai multe sheet-uri

Mesaj de gabitoma » Lun Iun 12, 2017 8:47 am

Va multumesc din suflet.Nu ma pricep de loc dar perseverez(la inceput nu stiam nici cum se face o suma in excel :D ) iar in firma sunt persoane care sa ma ajute dar sunt in alte locatii si prefer sa ma descurc singura.O sa fac in felul urmator:in fisierul pe care l-ati incarcat dvs o sa imi actualizez eu liniile si uite asa am rezolvat o problema.Din postarea de mai sus am inteles ca pot pastra si alte sheet-uri in workbook doar daca nu au cifra ca denumire.
Ce pot spune decat un mare multumesc pentru ajutorul acordat si sa va de Dzeu sanatate.

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

Re: Cautare date in mai multe sheet-uri

Mesaj de IPP » Lun Iun 12, 2017 9:05 am

Buna ziua

Cand am spus sa recreati foaia in fisierul dvs. m-am gandit la fisierele externe din care sunt aduse informatii via linkuri in fisierul dvs. si care linkuri poate au avut de suferit si informatia nu va mai fi updatata automat. In plus, fisierul acela foloseste si altor scopuri.

Altfel, pasul de la nivel de excel incepator la macro mi se pare destul de mare (eu unul l-am facut dupa cativa ani buni de lucru in Excel).
Asadar, pentru unele lucruri pe care stim ca inca nu le stapanim suficient de bine cred ar fi bine sa apelam la colegi chiar daca sunt in alte locatii si vrem, in principiu, sa rezolvam totul singuri.

Numai bine,
IP

Închis

Înapoi la “Intrebari despre Excel 2003”