Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Info Coronavirus/Vaccinare vs Fake News

Asus Zenbook-bateria nu se mai in...

Recomandare vopsitorie de calitat...

Merita sa iti pui implant dentar ...
 Exploziile la North Stream - Sabo...

Plachete omagiale "Eminescu 2...

Economia... in defavoarea clasei ...

Cati bani consumati pt naveta cu ...
 Tragere la sorti preliminarii EUR...

ALL QUIET ON THE WESTERN FRONT(20...

Casti, DAP-uri, dongles si DAC/AM...

Cum fac reclama pe youtube?
 Pedichiurist(a) la domiciliu

Nisi 9mm F/2.8 pentru APS-C&MFT

Cum se poate metamorfoza o imagin...

Pas cu Pas: Cum se poate face o a...
 

Cod VBA Excel - copiere informatii in workbook

- - - - -
  • Please log in to reply
26 replies to this topic

#1
sandra_m

sandra_m

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 03.12.2008
Buna ziua,

Ma poate ajuta cineva cu un cod VBA care sa rezolve urmatoarea problema?
Am un workbook cu mai multe pagini (denumite "client 1", "client 2", etc). Fiecare pagina contine 9 coloane cu informatii (A - I).  

As avea nevoie de un cod care sa imi copieze pe prima pagina a workbook-ului (denumita "scadente") informatii din toate celelalte pagini astfel: vreau sa imi apara in prima coloana numele paginii din care s-a copiat informatia + randurile din toate celelalte pagini care contin in coloana i “factura scadenta”.

Exemplu: daca in pagina denumita “client 3” am pe randul 4 in coloana i “factura scadenta” vreau ca pe prima pagina (“scadente”) sa apara:
in col. A: client 3
in col. B: informatia din col. A, randul 4 din pagina denumita “client 3”
in col C: informatia din col. B, randul 4 din pagina denumita “client 3”
etc. ...in col. J: informatia din col. I, randul 4 din pagina denumita “client 3”

Multumesc
Alexandra

#2
gecs

gecs

    Member

  • Grup: Members
  • Posts: 795
  • Înscris: 12.02.2008
Ce vrei tu se poate face si fara vba, sau cu o singura linie de cod vba. Se pot uni acele tabele din foi diferite de calcul printr-un MS Query, iar acest query sa-l inserezi ca PivotTable. Singurul lucru de facut inainte de a face query-ul e sa adaugi in toate tabelele din foile cu clienti o coloana (inserezi o coloana inainte de coloana A) cu numele clientului (pe toate randurile acestei coloane, mai putin header-ul, evident, scrii "client 1", "client 2" s.a.m.d. - poti completa rapid toate randurile coloanei respective selectand mai intai toate celulele din tabel de pe acea coloana si tastand textul pe care apoi il confirmi cu Ctrl+Enter).

Dupa ce ai adaugat aceste coloane in TOATE tabelele de clienti, IN ALT FISIER faci query-ul prin care unesti cele n tabele de clienti, iar acest query il inserezi ca PivotTable. Poti apoi in acest PivotTable sa filtrezi dupa orice conditii ai nevoie. Pentru informatii despre crearea unui asemenea query, si nu numai, vezi aici.

Avantajul unei astfel de solutii e ca poti sa lucrezi mai departe in fisierul in care ai foile pentru fiecare client, iar pentru centralizare, cand deschizi fisierul in care ai query-ul, nu e nevoie decat de un refresh ca toate datele sa fie actualizate, fara sa trebuiasca sa rulezi vreun macro. Acest refresh se poate pune ca o singura linie de cod vba in procedura asociata evenimentului Activate al foii de calcul unde ai query-ul si atunci nici grija refresh-ului n-o mai ai. Ar ramane doar grija de a activa macro-urile la deschiderea fisierului, dar asta oricum ai fi avut-o si in solutia cu macro-ul care copiaza datele, iar daca lucrezi in versiunea 2007 sau mai noua, poti scapa si de asta adaugand folder-ul unde se afla fisierele in lista de la Trusted Locations.

#3
sandra_m

sandra_m

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 03.12.2008

View Postgecs, on 2nd October 2010, 12:35, said:

Ce vrei tu se poate face si fara vba, sau cu o singura linie de cod vba. Se pot uni acele tabele din foi diferite de calcul printr-un MS Query, iar acest query sa-l inserezi ca PivotTable. Singurul lucru de facut inainte de a face query-ul e sa adaugi in toate tabelele din foile cu clienti o coloana (inserezi o coloana inainte de coloana A) cu numele clientului (pe toate randurile acestei coloane, mai putin header-ul, evident, scrii "client 1", "client 2" s.a.m.d. - poti completa rapid toate randurile coloanei respective selectand mai intai toate celulele din tabel de pe acea coloana si tastand textul pe care apoi il confirmi cu Ctrl+Enter).

Dupa ce ai adaugat aceste coloane in TOATE tabelele de clienti, IN ALT FISIER faci query-ul prin care unesti cele n tabele de clienti, iar acest query il inserezi ca PivotTable. Poti apoi in acest PivotTable sa filtrezi dupa orice conditii ai nevoie. Pentru informatii despre crearea unui asemenea query, si nu numai, vezi aici.

Avantajul unei astfel de solutii e ca poti sa lucrezi mai departe in fisierul in care ai foile pentru fiecare client, iar pentru centralizare, cand deschizi fisierul in care ai query-ul, nu e nevoie decat de un refresh ca toate datele sa fie actualizate, fara sa trebuiasca sa rulezi vreun macro. Acest refresh se poate pune ca o singura linie de cod vba in procedura asociata evenimentului Activate al foii de calcul unde ai query-ul si atunci nici grija refresh-ului n-o mai ai. Ar ramane doar grija de a activa macro-urile la deschiderea fisierului, dar asta oricum ai fi avut-o si in solutia cu macro-ul care copiaza datele, iar daca lucrezi in versiunea 2007 sau mai noua, poti scapa si de asta adaugand folder-ul unde se afla fisierele in lista de la Trusted Locations.

Buna,

Am incercat si varianta aceasta, insa sunt 25 de pagini in fisierul excel din care ar trebui extrase informatiile si la generarea unui query imi apar tot felul de erori si la un moment dat PC-ul se blocheaza (cred ca este prea multa informatie de procesat).

#4
gecs

gecs

    Member

  • Grup: Members
  • Posts: 795
  • Înscris: 12.02.2008

View Postsandra_m, on 4th October 2010, 10:01, said:

Buna,

Am incercat si varianta aceasta, insa sunt 25 de pagini in fisierul excel din care ar trebui extrase informatiile si la generarea unui query imi apar tot felul de erori si la un moment dat PC-ul se blocheaza (cred ca este prea multa informatie de procesat).
Da, ar fi posibil daca numarul de inregistrari rezultate ar depasi numarul de randuri admisibile in foaia de calcul. Ce versiune de Excel folosesti si cam cate inregistrari ar fi in total in tabelul centralizator, unind toate cele 25 de tabele?

Comanda SQL pe care ai folosit-o (mai putin calea si numele fisierului) difera de cea de mai jos?
SELECT *
FROM `D:\Clienti\Clienti.xlsx`.`'client 1$'` `'client 1$'`
UNION
SELECT *
FROM `D:\Clienti\Clienti.xlsx`.`'client 2$'` `'client 2$'`
UNION
SELECT *
FROM `D:\Clienti\Clienti.xlsx`.`'client 3$'` `'client 3$'`
(bineinteles ca trebuie sa contina 25 de selecturi si 24 de clauze UNION)

#5
gecs

gecs

    Member

  • Grup: Members
  • Posts: 795
  • Înscris: 12.02.2008
Ai dreptate, la un numar mare de inregistrari, query-ul dureaza niste minute (vreo 3 la o medie de 20.000 de inregistrari/foaie client).
Un macro care face centralizarea respectiva pe acelasi numar de inregistrari dureaza mult mai putin:

Option Explicit
Option Base 1
Public Const fact_s = "factura scadenta", cli_txt = "client "


Sub Actualizeaza_Scadente()
	Dim rg_cl, rg_scad, cl, rand_cl As Range
	Dim i, j, k As Long
	Application.ScreenUpdating = False
	With ActiveSheet
		.Range("A2").Select
		Range(Selection, Selection.End(xlDown)).Select
		Range(Selection, Selection.End(xlToRight)).Select
		Selection.Clear
		.Range("A2").Select
	End With
	j = 2
	For i = 1 To 25
		Application.StatusBar = cli_txt & i
		ThisWorkbook.Worksheets(cli_txt & i).Activate
		With ActiveSheet
			.Range("A2").Select
			Range(Selection, Selection.End(xlDown)).Select
			Range(Selection, Selection.End(xlToRight)).Select
			Set rg_cl = Selection
			For k = 1 To rg_cl.Rows.Count
				Set rand_cl = rg_cl.Rows(k)
				If rand_cl.Cells(9).Value = fact_s Then
					rand_cl.Copy
					ThisWorkbook.Worksheets("scadente").Activate
					With ActiveSheet
						.Range("A" & j).Select
						Selection.Value = cli_txt & i
						.Range("B" & j).Select
						.Paste
						j = j + 1
					End With
					ThisWorkbook.Worksheets(cli_txt & i).Activate
				End If
			Next k
			.Range("A2").Select
		End With
	Next i
	ThisWorkbook.Worksheets("scadente").Activate
	Range("A2").Select
	Application.SendKeys ("{ESC}")
	Application.StatusBar = False
	Application.ScreenUpdating = True
End Sub

Conditia e ca foaia unde faci centralizarea sa se numeasca "scadente", tabelul din foaia respectiva sa aiba 10 coloane, cu header-ul pe randul 1, iar tabelele din foile "client 1", "client 2",... "client 25" sa aiba 9 coloane (asa cum ai descris initial aceste tabele), sa inceapa TOATE din A1, sa aiba header-e pe randul 1 (datele sa inceapa din A2) si sa nu mai existe alte date in foile respective.

Dupa ce copiezi codul de mai sus intr-un modul, inserezi un buton in foaia "scadente" caruia ii asociezi macro-ul Actualizeaza_Scadente.

Macro-ul va sterge mai intai toate inregistrarile existente in foaia "scadente" si va repopula tabelul cu inregistrarile din foile "client 1" - "client 25" care corespund conditiei ca pe coloana 9 sa fie inscris textul "factura scadenta".

Edited by gecs, 04 October 2010 - 11:58.


#6
sandra_m

sandra_m

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 03.12.2008

View Postgecs, on 4th October 2010, 12:56, said:

Ai dreptate, la un numar mare de inregistrari, query-ul dureaza niste minute (vreo 3 la o medie de 20.000 de inregistrari/foaie client).
Un macro care face centralizarea respectiva pe acelasi numar de inregistrari dureaza mult mai putin:

Option Explicit
Option Base 1
Public Const fact_s = "factura scadenta", cli_txt = "client "


Sub Actualizeaza_Scadente()
	Dim rg_cl, rg_scad, cl, rand_cl As Range
	Dim i, j, k As Long
	Application.ScreenUpdating = False
	With ActiveSheet
		.Range("A2").Select
		Range(Selection, Selection.End(xlDown)).Select
		Range(Selection, Selection.End(xlToRight)).Select
		Selection.Clear
		.Range("A2").Select
	End With
	j = 2
	For i = 1 To 25
		Application.StatusBar = cli_txt & i
		ThisWorkbook.Worksheets(cli_txt & i).Activate
		With ActiveSheet
			.Range("A2").Select
			Range(Selection, Selection.End(xlDown)).Select
			Range(Selection, Selection.End(xlToRight)).Select
			Set rg_cl = Selection
			For k = 1 To rg_cl.Rows.Count
				Set rand_cl = rg_cl.Rows(k)
				If rand_cl.Cells(9).Value = fact_s Then
					rand_cl.Copy
					ThisWorkbook.Worksheets("scadente").Activate
					With ActiveSheet
						.Range("A" & j).Select
						Selection.Value = cli_txt & i
						.Range("B" & j).Select
						.Paste
						j = j + 1
					End With
					ThisWorkbook.Worksheets(cli_txt & i).Activate
				End If
			Next k
			.Range("A2").Select
		End With
	Next i
	ThisWorkbook.Worksheets("scadente").Activate
	Range("A2").Select
	Application.SendKeys ("{ESC}")
	Application.StatusBar = False
	Application.ScreenUpdating = True
End Sub

Conditia e ca foaia unde faci centralizarea sa se numeasca "scadente", tabelul din foaia respectiva sa aiba 10 coloane, cu header-ul pe randul 1, iar tabelele din foile "client 1", "client 2",... "client 25" sa aiba 9 coloane (asa cum ai descris initial aceste tabele), sa inceapa TOATE din A1, sa aiba header-e pe randul 1 (datele sa inceapa din A2) si sa nu mai existe alte date in foile respective.

Dupa ce copiezi codul de mai sus intr-un modul, inserezi un buton in foaia "scadente" caruia ii asociezi macro-ul Actualizeaza_Scadente.

Macro-ul va sterge mai intai toate inregistrarile existente in foaia "scadente" si va repopula tabelul cu inregistrarile din foile "client 1" - "client 25" care corespund conditiei ca pe coloana 9 sa fie inscris textul "factura scadenta".

Am inserat o foaie noua, pentru care am copiat codul si imi da urmatoarea eroarea: compile error: constants, fixed-length strings, arrays, user-defined types and Declare statements not allowed as Public members of object modules. Este ceva ce nu am facut bine?

#7
sandra_m

sandra_m

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 03.12.2008
Este posibil ca eroarea sa apara deoarece "factura scadenta" este rezultatul aplicarii unei formule? Mai exact, in coloana I am o formula (=IF(TODAY()=E2; "factura scadenta";"")) iar rezultatul acesteia este "factura scadenta" (care in cod este private const).

#8
gecs

gecs

    Member

  • Grup: Members
  • Posts: 795
  • Înscris: 12.02.2008
Codul trebuie copiat intr-un modul, nu intr-o foaie noua de calcul.

In arhiva atasata e un fisier .xls care contine un exemplu cu situatia din fisierul tau, asa cum am inteles-o din explicatiile de la primul mesaj:
- o foaie denumita scadente in care se face centralizarea;
- 25 de foi denumite client 1, client 2,... client 25 in care exista cate un tabel identic cu 9 coloane, iar pe ultima coloana pentru cateva inregistrari apare textul "factura scadenta".

In foaia scadente, langa tabelul de 10 coloane exista un buton cu textul Actualizeaza - daca apesi pe acel buton tabelul din acea foaie e refacut si cuprinde numai inregistrarile din celelalte 25 de foi care pe ultima coloana au inscris textul "factura scadenta". Functionarea acestei proceduri poti s-o verifici modificand in oricare din cele 25 de tabele valorile din ultima coloana si apasand din nou pe butonul cu pricina. Valorile numerice care apar in cele 25 de tabele sunt aleatoare.

Daca dupa verificare ai constatat ca procedura functioneaza corect, poti sa copiezi tabelele tale peste cele 25 de tabele din fisierul meu si vei avea un fisier functional cu datele reale. Cu un Save As cu alt nume decat cel al fisierului tau de date pastrezi si datele originale si poti sa testezi in continuare. Daca e vreo problema cu functionarea macro-ului, imi spui si o corectam.

Nu uita sa permiti activarea macro-ului la deschiderea fisierului.

Attached File  Facturi_scadente_Clienti.rar   85.73K   44 downloads

#9
sandra_m

sandra_m

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 03.12.2008

View Postgecs, on 4th October 2010, 15:56, said:

Codul trebuie copiat intr-un modul, nu intr-o foaie noua de calcul.

In arhiva atasata e un fisier .xls care contine un exemplu cu situatia din fisierul tau, asa cum am inteles-o din explicatiile de la primul mesaj:
- o foaie denumita scadente in care se face centralizarea;
- 25 de foi denumite client 1, client 2,... client 25 in care exista cate un tabel identic cu 9 coloane, iar pe ultima coloana pentru cateva inregistrari apare textul "factura scadenta".

In foaia scadente, langa tabelul de 10 coloane exista un buton cu textul Actualizeaza - daca apesi pe acel buton tabelul din acea foaie e refacut si cuprinde numai inregistrarile din celelalte 25 de foi care pe ultima coloana au inscris textul "factura scadenta". Functionarea acestei proceduri poti s-o verifici modificand in oricare din cele 25 de tabele valorile din ultima coloana si apasand din nou pe butonul cu pricina. Valorile numerice care apar in cele 25 de tabele sunt aleatoare.

Daca dupa verificare ai constatat ca procedura functioneaza corect, poti sa copiezi tabelele tale peste cele 25 de tabele din fisierul meu si vei avea un fisier functional cu datele reale. Cu un Save As cu alt nume decat cel al fisierului tau de date pastrezi si datele originale si poti sa testezi in continuare. Daca e vreo problema cu functionarea macro-ului, imi spui si o corectam.

Nu uita sa permiti activarea macro-ului la deschiderea fisierului.

Attachment Facturi_..._Clienti.rar

Buna,

Am incercat sa modific fisierul din arhiva (am copiat in sheet client 1 informatiile din fisierul meu) si imi da eroare. Am atasat fisierul modificat, poate reusesti sa-ti dai seama de unde provine. Si multumesc frumos pentru ajutor.
Alexandra

Attached Files



#10
gecs

gecs

    Member

  • Grup: Members
  • Posts: 795
  • Înscris: 12.02.2008

View Postsandra_m, on 5th October 2010, 08:56, said:

Buna,

Am incercat sa modific fisierul din arhiva (am copiat in sheet client 1 informatiile din fisierul meu) si imi da eroare. Am atasat fisierul modificat, poate reusesti sa-ti dai seama de unde provine. Si multumesc frumos pentru ajutor.
Alexandra
Eroarea provine de la faptul ca in tabelul pe care l-ai pus nu sunt date. La scrierea macro-ului am plecat de la ideea ca in toate cele 25 de tabele sunt date. Daca ai si tabele in care nu sunt date, pot sa modific, sa-l fac sa verifice daca sunt sau nu date in foaia respectiva. Populeaza tabelul din foaia "client 1" cu date (in toate celulele tabelului) si o sa vezi ca functioneaza.

#11
sandra_m

sandra_m

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 03.12.2008

View Postgecs, on 5th October 2010, 09:42, said:

Eroarea provine de la faptul ca in tabelul pe care l-ai pus nu sunt date. La scrierea macro-ului am plecat de la ideea ca in toate cele 25 de tabele sunt date. Daca ai si tabele in care nu sunt date, pot sa modific, sa-l fac sa verifice daca sunt sau nu date in foaia respectiva. Populeaza tabelul din foaia "client 1" cu date (in toate celulele tabelului) si o sa vezi ca functioneaza.
Sunt intradevar foi in care deocamdata nu sunt informatii (nu sunt facturi emise catre clientul respectiv). Poti modifica te rog macro-ul? Multumesc frumos.

#12
gecs

gecs

    Member

  • Grup: Members
  • Posts: 795
  • Înscris: 12.02.2008
L-am modificat, astfel incat daca in foile de clienti nu exista decat header-ul tabelului (ala e musai sa fie), nu se mai supara ca nu are date in rest si trece mai departe.

Verifica si cu date si fara date (doar header) si spune-mi, te rog, daca functioneaza cum trebuie.

Attached File  Facturi_scadente_Clienti_modif._cl1_R1.rar   55.42K   25 downloads

Edited by gecs, 05 October 2010 - 09:19.


#13
sandra_m

sandra_m

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 03.12.2008

View Postgecs, on 5th October 2010, 10:19, said:

L-am modificat, astfel incat daca in foile de clienti nu exista decat header-ul tabelului (ala e musai sa fie), nu se mai supara ca nu are date in rest si trece mai departe.

Verifica si cu date si fara date (doar header) si spune-mi, te rog, daca functioneaza cum trebuie.

Attachment Facturi_...._cl1_R1.rar

Tot da eroare (poate pentru ca in col. E, H si I sunt informatii). Cel mai bine ar fi sa verifice daca sunt informatii in col. A si daca nu sunt sa ignore pagina respectiva in rularea macro-ului.

#14
gecs

gecs

    Member

  • Grup: Members
  • Posts: 795
  • Înscris: 12.02.2008

View Postsandra_m, on 5th October 2010, 10:40, said:

Tot da eroare (poate pentru ca in col. E, H si I sunt informatii). Cel mai bine ar fi sa verifice daca sunt informatii in col. A si daca nu sunt sa ignore pagina respectiva in rularea macro-ului.
N-ar trebui sa aiba importanta daca sunt informatii in anumite coloane si in altele nu... :(

Poti sa atasezi fisierul in care a dat eroare?

#15
sandra_m

sandra_m

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 03.12.2008

View Postgecs, on 5th October 2010, 10:45, said:

N-ar trebui sa aiba importanta daca sunt informatii in anumite coloane si in altele nu... :(

Poti sa atasezi fisierul in care a dat eroare?

Este atasat.

Attached Files



#16
gecs

gecs

    Member

  • Grup: Members
  • Posts: 795
  • Înscris: 12.02.2008
Am modificat codul, dar eroarea era de la valoarea formulei folosite pe coloana I, pe care o mai si formatasesi sa foloseasca font de culoare alba daca formula returneaza eroare !!!  :nonobad:

In foaia client 1 am modificat formulele - daca iti convine cum sunt acum, le pastrezi si le poti folosi si in celelalte tabele, daca nu - nu.

Te rog testeaza functionarea macro-ului si spune-mi daca mai face figuri.

Am mai adaugat 2 foi in fisier: Banci si Valute. In foile alea poti sa intretii listele de banci si de valute (fiecare scrisa o singura data pe coloana A; pot fi pana la 100 de banci si 20 de valute) astfel incat sa le folosesti si in tabelele din foile pentru clienti. Header-ul si primul rand (inclusiv formulele si celulele cu drop-down combo facute cu Data Validation) din tabelul din foaia client 1 l-am copiat si in foile 'client 5':'client 25'. Daca nu-ti place asa, le inlocuiesti cu formatul de tabel care-ti convine. Poti sa le inlocuiesti pe toate dintr-un foc cu o selectie 3d: click pe eticheta foii (tab-ul) client 5 -> mergi la sfarsitul listei de foi -> apesi si tii apasata tasta Shift -> click pe eticheta foii client 25 - scum toate aceste foi sunt selectate si ce modifici intr-una se va modifica in toate. Ca sa dezactivezi selectia 3d dai un click pe tab-ul unei foi care nu face parte din selectie.

Attached File  Facturi_scadente_Clienti_modif._cl1_R2.rar   426.78K   22 downloads

Edited by gecs, 05 October 2010 - 12:40.


#17
sandra_m

sandra_m

    New Member

  • Grup: Members
  • Posts: 19
  • Înscris: 03.12.2008

View Postgecs, on 5th October 2010, 13:39, said:

Am modificat codul, dar eroarea era de la valoarea formulei folosite pe coloana I, pe care o mai si formatasesi sa foloseasca font de culoare alba daca formula returneaza eroare !!!  :nonobad:

In foaia client 1 am modificat formulele - daca iti convine cum sunt acum, le pastrezi si le poti folosi si in celelalte tabele, daca nu - nu.

Te rog testeaza functionarea macro-ului si spune-mi daca mai face figuri.

Am mai adaugat 2 foi in fisier: Banci si Valute. In foile alea poti sa intretii listele de banci si de valute (fiecare scrisa o singura data pe coloana A; pot fi pana la 100 de banci si 20 de valute) astfel incat sa le folosesti si in tabelele din foile pentru clienti. Header-ul si primul rand (inclusiv formulele si celulele cu drop-down combo facute cu Data Validation) din tabelul din foaia client 1 l-am copiat si in foile 'client 5':'client 25'. Daca nu-ti place asa, le inlocuiesti cu formatul de tabel care-ti convine. Poti sa le inlocuiesti pe toate dintr-un foc cu o selectie 3d: click pe eticheta foii (tab-ul) client 5 -> mergi la sfarsitul listei de foi -> apesi si tii apasata tasta Shift -> click pe eticheta foii client 25 - scum toate aceste foi sunt selectate si ce modifici intr-una se va modifica in toate. Ca sa dezactivezi selectia 3d dai un click pe tab-ul unei foi care nu face parte din selectie.

Attachment Facturi_...._cl1_R2.rar

Super, acum vad ca functioneaza fara erori. As mai vrea sa stiu (in cazul in care ma hotarasc sa mai introduc o formula si pentru facturi cu scadenta depasita, tinand cont de coloana "scadenta" si "incasare", va putea rula macro-ul daca coloana a 10-a va contine formula aceasta:=IF(AND(A2>0;F2<=0;E2<TODAY());"scadenta depasita";"")?

#18
gecs

gecs

    Member

  • Grup: Members
  • Posts: 795
  • Înscris: 12.02.2008

View Postsandra_m, on 5th October 2010, 14:08, said:

Super, acum vad ca functioneaza fara erori. As mai vrea sa stiu (in cazul in care ma hotarasc sa mai introduc o formula si pentru facturi cu scadenta depasita, tinand cont de coloana "scadenta" si "incasare", va putea rula macro-ul daca coloana a 10-a va contine formula aceasta:=IF(AND(A2>0;F2<=0;E2<TODAY());"scadenta depasita";"")?
Formula mi se pare cam ciudata, dar asta o putem discuta separat.

Ai vrea sa-ti centralizeze si inregistrarile unde apare sirul "scadenta depasita"? Daca asta e ideea, au as face o formula care sa afiseze un sir de caractere care contine cuvantul "scadenta" pentru orice inregistrare o vrei centralizata. Macro-ul din fisierul atasat asta face. In plus, formula despre care vorbeai mai sus am adaptat-o sub forma:

=IF(LEN($E2)=0,"",IF(LEN($F2)=0,IF(TODAY()=$E2,"factura scadenta",IF(TODAY()<$E2,"","scadenta depasita")),IF(ISNUMBER($F2),IF($F2>$E2,"scadenta depasita",""),"")))
si am copiat-o in toate tabelele.

Attached File  Facturi_scadente_Clienti_modif._cl1_R3.rar   302.09K   32 downloads

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate