automatizare activitati

Informatii despre cum se utilizeaza Microsoft Excel 2003. Calcule, Formule, Functii, Tabele pivot, Analiza datelor, etc
maverick_65
Mesaje: 3
Membru din: Vin Apr 17, 2020 1:45 pm

automatizare activitati

Mesaj de maverick_65 » Vin Apr 17, 2020 3:56 pm

Va salut!
Pe un calculator cu Windows XP SP3, Office 2003, Office 2007 compatibility pack si Romania la „regional settings”, am nevoie sa automatizez (cu un „bat” sau „cmd” prin task scheduler, cu rulare la o ora fixa in fiecare zi) o succesiune de activitati, respectiv:
1. se descarca in directorul „c:\lucru” un fisier “xlsx” de pe un server ftp, fisierul descarcat are in fiecare zi acelasi numar de coloane (cod_id, detalii, judet, localitate, telefon), alt numar de randuri, alta denumire dar zilnic are sirul “noutati” in denumire (descarcarea am rezolvat-o cu wget si ceva parametri);
2. trebuie „aflata” denumirea fisierului descarcat (este singurul fisier *.xlsx din directorul c:\lucru si are o singura foaie de lucru denumita „Sheet”), se deschide fisierul descarcat, se insereaza o noua coloana denumita „UAT” dupa coloana „localitate”, se scrie o functie in prima celula de sub „UAT” si se trage functia in jos pana la ultimul rand completat din fisier astfel incat sa se aplice corespunzator in fiecare celula, se seteaza paginarea pe A4 landscape, fit to 1 page wide by 100 tall, marginile de 1cm la left, right, top, bottom si 0,5cm la header si footer, la footer se selecteaza „page 1 of ?”, la „rows to repeat at top” se selecteaza primul rand din fisier, se selecteaza coloana B (detalii) si la „format cells”-„tools”-„alignment” se bifeaza „wrap text”, se selecteaza toate coloanele si se face un auto adjust columns, se selecteaza toate inregistrarile si se alege „all borders” astfel incat la imprimare sa fie linii intre inregistrari. Functia mentionata mai sus, in coloana „UAT”, trebui sa citeasca coloana „localitate” pana la ultimul rand unde este completat „cod_id” si sa extraga de acolo doar denumirea comunei sau sa lase celula goala daca este celula goala si la „localitate”. Coloana „localitate” vine completata cu una din aceste 3 variante: Sat.Gaina (Com. Cocosul) sau Com.Cocosul sau celula este goala. Dupa acest exemplu, pe coloana „UAT” trebuie sa apara Com.Cocosul pentru primele 2 variante sau celula goala daca in „localitate” este tot celula goala. Am gasit si adaptat o functie care sa „proceseze” primele 2 variante dar nu stiu cum sa o adaptez sa tina cont si de a treia varianta, cea cu celula goala: =IF(ISNUMBER(FIND(”Sat.”;D2));MID(D2; SEARCH(”(”;D2)+1; SEARCH(”)”;D2)-SEARCH(”(”;D2)-1);D2)
3. se salveaza fisierul si se muta respectivul *.xlsx din c:\lucru in c:\validat astfel incat c:\lucru sa ramana gol pentru a doua zi cand totul se repeta pe un nou fisier ce urmeaza sa fie descarcat.

Exista vreo sansa sa automatizez tot ce am descris?

Va multumesc!

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

Re: automatizare activitati

Mesaj de IPP » Vin Apr 17, 2020 5:41 pm

Buna ziua

Chiar daca, probabil se poate automatiza procesul descris de dvs., eu as avea retineri in a incerca o automatizare totala pentru ca exista prea multe locuri unde lucrurile ar putea sa mearga rau (probleme la sau in generarea fisierului sursa, copierea lui) sau, daca vorbim la nivel strict de prelucrarea din Excel, sa fie facute unele compromisuri cu efecte nedorite in alta parte (ex. un macro care sa ruleze automat la deschiderea fisierului, fara a cere permisiune inseamna low level la nivelul de securitate, nu se recomanda deloc asa ceva).
(La un moment dat am facut un fisier care trebuia sa isi ia informatia de la un fisier sursa generat de o aplicatie terta si sa faca o prelucrare-raport. Au fost foarte multe cazuri in care generarea nu a avut loc (practic a ajuns sa se prelucreze aceeasi versiune a fisierului sursa) si tot la supervizare/verificare manuala s-a ajuns atunci, insa cu nervi si consum de timp suplimentari. O fi existand si vreo versiune "profi" de verificari insa eu unul am alergie la varianta in care codul devine x 3 ori mai mare si stufos doar pentru ca trebuie verificate/tratate niste situatii care in mod normal nu ar trebui sa existe daca se stabileste de la bun inceput (si se respecta) unele lucruri.)

Eu as incerca sa impart procesul de prelucrare in doua, supervizat sau rulat (chiar daca asta va insemna deschiderea unui fisier si rularea unui macro) manual, in conditii normale ar trebui sa fie o treaba de 2 minute:
a) partea de obtinere a fisierului sursa. Nu am de comentat aici pentru ca pana acum eu nu am facut prelucrari automatizate in excel care sa implice folosirea ftp ci doar copieri din diverse partitii sau foldere sharuite (ex. Dropbox)
b) partea de prelucrare propriuzisa.
Un fisier excel independent care sa contina macro de prelucrare (deschidere fisier sursa, prelucrare, generare fisier-rezultat, curatenie-mutat/sters fisere sursa), macro rulat de catre un utilizator prin apasarea unui buton. Cel putin la prima vedere (daca nu vor exista in fisierul .xlsx niste lucruri care sa deranjeze rau Excel 2003), cred ca acel macro ar putea face intreaga prelucrare descrisa de dvs. in sensul in care, daca ati facut intreaga prelucrare "manual" fara sa aveti erori de compatibilitate, nu vad de ce nu ar merge si automatizat via macro.

IP

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

Re: automatizare activitati

Mesaj de IPP » Vin Apr 17, 2020 9:12 pm

Buna ziua

Atasat aveti spre testare o propunere legata exclusive de prelucrarea fisierului excel:

Premise:
-aveti deja creata structura de foldere:
C:\lucru
C:\validat

-aveti deja un fisier sursa in C:\lucru\ care are in numele sau cuvantul "noutati" si e de tip .xlsx
-salvati in locatia de mai sus fisierul atasat de mine (VBA-Prelucrare.xls)
-in editorul macro din fisierul de mai sus verificati sa fie bifata si libraria Microsoft Scripting Runtime.

Deschideti fisierul VBA-Prelucrare.xls, cu enable macro. (daca Excelul dvs. are setari de securitate low nu va aparea fereastra respectiva, daca e pe high, nu va rula nimic)

Rulati macro, apasand butonul prelucreaza, daca nu vor fi erori, dupa terminarea prelucarii veti vedea un mesaj box "Gata"

Sper sa nu apara erori, desi codul macro l-am facut in Excel 2003 mi-e imposibil sa reproduc toate conditiile pe care le aveti dvs. (ex. am win 10 si vreo 2 versiuni de excel pe acelasi calculator si nu tin minte sa fi fost nevoie sa-mi instalez pachetul de compatibilitate)

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

maverick_65
Mesaje: 3
Membru din: Vin Apr 17, 2020 1:45 pm

Re: automatizare activitati

Mesaj de maverick_65 » Sâm Apr 18, 2020 9:54 am

Buna dimineata!
Va multumesc foarte mult pentru timpul acordat, pentru tot. Astazi ma duc la birou sa probez, revin cu un mesaj.
Toate cele bune!

maverick_65
Mesaje: 3
Membru din: Vin Apr 17, 2020 1:45 pm

Re: automatizare activitati

Mesaj de maverick_65 » Sâm Apr 18, 2020 8:28 pm

Buna seara!
Multumesc, multumesc, multumesc. Functioneaza, cu mici ajustari am reusit sa automatizez totul, printr-un cmd introdus in task scheduler, eliminand astfel interventia factorului uman.
Va doresc sarbatori fericite si numai bucurii.

Scrie răspuns

Înapoi la “Intrebari despre Excel 2003”