Numar curent VBA Excel
Re: Numar curent VBA Excel
sal
nu trebuie să te superi că pun tot felul de situaţii şi încerc tot felul de variante
am învăţat până acum ca orice lucru are un scop şi că îmi este de folos mie sau celorlalţi la un moment dat
orice situaţie are mai multe feluri de a fi rezolvata sau poate nu exista soluţii dacă nu se îndeplinesc anumite condiţii
în legătură cu organizarea informaţiei
îţi poţi organiza informaţie în funcţie de posibilităţile care ţi le oferă programul (cu nr. crt. sau fără nr.crt, înscris automat)
în Exel într-un anumit fel , în Access în alt fel
în legătură cu explicaţia CARE dintre cele n coloane pe care le aveţi va fi cea REALA mă gândeam că se POATE face ca şi în cazul în care s-a rezolvat cu Nr. crt. care nu este stabilit într-o anumita coloană sau anumită celulă
doar am întrebat pentru că NU ŞTIU cum se face
mulţumesc
nu trebuie să te superi că pun tot felul de situaţii şi încerc tot felul de variante
am învăţat până acum ca orice lucru are un scop şi că îmi este de folos mie sau celorlalţi la un moment dat
orice situaţie are mai multe feluri de a fi rezolvata sau poate nu exista soluţii dacă nu se îndeplinesc anumite condiţii
în legătură cu organizarea informaţiei
îţi poţi organiza informaţie în funcţie de posibilităţile care ţi le oferă programul (cu nr. crt. sau fără nr.crt, înscris automat)
în Exel într-un anumit fel , în Access în alt fel
în legătură cu explicaţia CARE dintre cele n coloane pe care le aveţi va fi cea REALA mă gândeam că se POATE face ca şi în cazul în care s-a rezolvat cu Nr. crt. care nu este stabilit într-o anumita coloană sau anumită celulă
doar am întrebat pentru că NU ŞTIU cum se face
mulţumesc
Re: Numar curent VBA Excel
Buna ziua
Nu se pune problema atat de suparare ci de senzatia "munca in zadar" pentru ca cineva nu stie ce vrea. Teoretic, inainte de a se ajunge la un macro ar fi trebuit sa analizati datele problemei si sa veniti cu o formulare si cerinte clare (este o solicitare in litera regulamentului, de altfel). Chiar daca am folosit un ton mai apasat ar trebui sa vedeti cele spuse de mine si ca pe niste sfaturi utile pentru situatia in care veti apela vreodata la servicii specializate. Acolo nu va mai fi vorba de "suparare" ci de costuri suplimentare.
In fine, m-am decis sa va propun o noua versiune mai mult pentru faptul ca, in afara de faptul ca mi s-a parut o solicitare interesanta si cu potential bun/util si pentru alte situatii, am avut timpul necesar, nu a trebuit sa fac modificari majore sau sa am zeci de linii de cod.
Da, o problema poate avea mai multe modalitati de rezolvare si de aceea este bine ca exista acest forum.
Indiferent de unde aduceti informatia in Excel, nu cunosc program care sa permita rearanjarea mai rapida si facila a informatiei prin mutare/copiere in bloc de celule/randuri/coloane. Si acest lucru poate fi folosit din plin daca aveti de facut prelucrari intermediare. Si eu am situatii frecvente in care modul in care imi este exportata informatia din "softul-mama" este nesatisfacator pentru ce am de facut. In acest caz, in loc sa fac formule kilomentrice pentru a-mi extrage niste informatii de interes prefer sa rearanjez rapid ce trebuie si sa folosesc o singura formula de cautare.
Atasat aveti spre testare un fisier.
In esenta este vorba de inserarea numarului curent pornind de la coordonatele date de celula in care se afla textul Nr.crt si coloana cu celula activa. Am folosit urmatorul cod:
Pentru testare: deschideti fisierul atasat, activati macro si (inainte de a rula macro) aveti grija sa fie selectata (cel putin) o celula aflata pe coloana in care se gasesc datele pentru care se doreste inserarea nr.crt. Rulati macro
Daca doriti, 3 scenarii de test:
1.Selectati orice celula de pe coloana D, rulati macro
2.Selectati orice celula de pe coloana E, rulati macro
3.Selectati oric celula de pe coloana F, rulati macro
In aceasta varianta daca selectati celule care nu au nimic de-a face cu informatiile (=selectati celula goala aflata pe o coloana goala) probabil vi se va bloca putin calculatorul si veti obtine o eroare in cod.
IP
Nu se pune problema atat de suparare ci de senzatia "munca in zadar" pentru ca cineva nu stie ce vrea. Teoretic, inainte de a se ajunge la un macro ar fi trebuit sa analizati datele problemei si sa veniti cu o formulare si cerinte clare (este o solicitare in litera regulamentului, de altfel). Chiar daca am folosit un ton mai apasat ar trebui sa vedeti cele spuse de mine si ca pe niste sfaturi utile pentru situatia in care veti apela vreodata la servicii specializate. Acolo nu va mai fi vorba de "suparare" ci de costuri suplimentare.
In fine, m-am decis sa va propun o noua versiune mai mult pentru faptul ca, in afara de faptul ca mi s-a parut o solicitare interesanta si cu potential bun/util si pentru alte situatii, am avut timpul necesar, nu a trebuit sa fac modificari majore sau sa am zeci de linii de cod.
Da, o problema poate avea mai multe modalitati de rezolvare si de aceea este bine ca exista acest forum.
Indiferent de unde aduceti informatia in Excel, nu cunosc program care sa permita rearanjarea mai rapida si facila a informatiei prin mutare/copiere in bloc de celule/randuri/coloane. Si acest lucru poate fi folosit din plin daca aveti de facut prelucrari intermediare. Si eu am situatii frecvente in care modul in care imi este exportata informatia din "softul-mama" este nesatisfacator pentru ce am de facut. In acest caz, in loc sa fac formule kilomentrice pentru a-mi extrage niste informatii de interes prefer sa rearanjez rapid ce trebuie si sa folosesc o singura formula de cautare.
Atasat aveti spre testare un fisier.
In esenta este vorba de inserarea numarului curent pornind de la coordonatele date de celula in care se afla textul Nr.crt si coloana cu celula activa. Am folosit urmatorul cod:
Cod: Selectaţi tot
Sub InsertNrCrt()
'IPP - 26.06.2012
'CTRL+SHIFT+N
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim cNrCrt As Range
Dim RowNrCrt As Long
Dim ClnNrCrt As Integer
Set cNrCrt = Cells.Find(What:="nr*crt", After:=Range("A1"), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Offset(1, 0)
RowNrCrt = cNrCrt.Row
ClnNrCrt = cNrCrt.Column
Dim ClnDate
ClnDate = ActiveCell.Column
Dim lRow As Long
lRow = Cells(65536, ClnDate).End(xlUp).Row
Dim NrCrt As Long
NrCrt = 0
If Len(Cells(RowNrCrt, ClnDate)) <> 0 And IsNumeric(Cells(RowNrCrt, ClnDate).Value) = True Then
Cells(RowNrCrt, ClnNrCrt).Value = 0
RowNrCrt = RowNrCrt + 1
End If
Do Until RowNrCrt = lRow + 1
If Len(Cells(RowNrCrt, ClnDate)) <> 0 Then
NrCrt = NrCrt + 1
Cells(RowNrCrt, ClnNrCrt) = NrCrt
Else: Cells(RowNrCrt, ClnNrCrt) = ""
End If
RowNrCrt = RowNrCrt + 1
Loop
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Pentru testare: deschideti fisierul atasat, activati macro si (inainte de a rula macro) aveti grija sa fie selectata (cel putin) o celula aflata pe coloana in care se gasesc datele pentru care se doreste inserarea nr.crt. Rulati macro
Daca doriti, 3 scenarii de test:
1.Selectati orice celula de pe coloana D, rulati macro
2.Selectati orice celula de pe coloana E, rulati macro
3.Selectati oric celula de pe coloana F, rulati macro
In aceasta varianta daca selectati celule care nu au nimic de-a face cu informatiile (=selectati celula goala aflata pe o coloana goala) probabil vi se va bloca putin calculatorul si veti obtine o eroare in cod.
IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Re: Numar curent VBA Excel
Buna ziua
În primul rând mulţumesc pentru cod, fişierul funcţionează super
Nu este muncă în zadar vă asigur
am muncit de prea multe ori la renumerotat tabele şi când ai câteva sute de înregistrări şi ştergi vro câteva zeci sau introduci altele
Şi trebuie să tragi în jos (am folosit tot felul de formule în celule)
=COUNT($B$9:$B13)+1
=IF(F10="";"";COUNT($B$9:$B25)+1)
=IF(H9="";H8+1;H9+1)
=IF(K10="";"";IF(J9="";J8+1;J9+1))
=IF(M10="";"";L9+1)
De asemenea tragi în jos sau în sus şi la pagina care preia o parte din înregistrări şi tot aşa
Eu ştiu ce am vrut şi am formulat problemele pe rând (este o solicitare in litera regulamentului, de altfel). Nu toate odată .
Pentru ca în alt topic am formulat mai multe probleme deodată şi mi s-a spus că nu aşa se face deoarece nu mai sunt cerinţe clare.
Sunt de acord ca exprimarea şi limba română nu sunt punctul meu forte
Dar aşa se pot observa şi deosebirile de cod şi pot înţelege şi începătorii ca mine despre ce este vorba
Cum se caută ceva în pagina
Cum se scrie de la celula găsita în jos
Cum se scrie daca este ceva în celula din dreapta
Cum se scrie daca se sau şterg introduc coloane
Cum se scrie dacă se sau şterg introduc rânduri
Cum se scrie daca este ceva în a doua celula din dreapta sau a treia celulă (situaţie care aţi identificat-o dumneavoastră deoarece sunt cazuri când în prima celulă sau a doua din dreapta nu este nimic şi aţi găsit una din modalităţile de rezolvare)
Eu vroiam sa vă întreb cum pot fi numerotate toate rândurile care au informaţii pe cele trei coloane sau pe toate rândurile din tabel, deoarece nr colaonelor poate fi determinat din câte celule sunt ocupate în dreapta Nr. Crt. sau prin cifrele din rândul care începe cu 0 care este primul rând după Nr. Crt. care de asemenea se numerotează singur daca în celula din stânga este nr. crt şi deasupra este scris ceva find capulde tabel. (şi uite aşa numai în fraza asta am amestecat vreo trei situaţii care nu mai sunt cerinţe clare).
Mai am încă vreo 3 probleme cu care m-am întâlnit faţă de cele de mai sus
Una dintre care ele care mi-a dat bătăi de cap ele ar fi :
Cu pot fi numerotate cu Nr . Crt .
numai rândurile care sunt afişate iar la cele ascunse să nu fie numerotate
uf atâta text nu am mai sris de mult
multumesc
În primul rând mulţumesc pentru cod, fişierul funcţionează super
Nu este muncă în zadar vă asigur
am muncit de prea multe ori la renumerotat tabele şi când ai câteva sute de înregistrări şi ştergi vro câteva zeci sau introduci altele
Şi trebuie să tragi în jos (am folosit tot felul de formule în celule)
=COUNT($B$9:$B13)+1
=IF(F10="";"";COUNT($B$9:$B25)+1)
=IF(H9="";H8+1;H9+1)
=IF(K10="";"";IF(J9="";J8+1;J9+1))
=IF(M10="";"";L9+1)
De asemenea tragi în jos sau în sus şi la pagina care preia o parte din înregistrări şi tot aşa
Eu ştiu ce am vrut şi am formulat problemele pe rând (este o solicitare in litera regulamentului, de altfel). Nu toate odată .
Pentru ca în alt topic am formulat mai multe probleme deodată şi mi s-a spus că nu aşa se face deoarece nu mai sunt cerinţe clare.
Sunt de acord ca exprimarea şi limba română nu sunt punctul meu forte
Dar aşa se pot observa şi deosebirile de cod şi pot înţelege şi începătorii ca mine despre ce este vorba
Cum se caută ceva în pagina
Cum se scrie de la celula găsita în jos
Cum se scrie daca este ceva în celula din dreapta
Cum se scrie daca se sau şterg introduc coloane
Cum se scrie dacă se sau şterg introduc rânduri
Cum se scrie daca este ceva în a doua celula din dreapta sau a treia celulă (situaţie care aţi identificat-o dumneavoastră deoarece sunt cazuri când în prima celulă sau a doua din dreapta nu este nimic şi aţi găsit una din modalităţile de rezolvare)
Eu vroiam sa vă întreb cum pot fi numerotate toate rândurile care au informaţii pe cele trei coloane sau pe toate rândurile din tabel, deoarece nr colaonelor poate fi determinat din câte celule sunt ocupate în dreapta Nr. Crt. sau prin cifrele din rândul care începe cu 0 care este primul rând după Nr. Crt. care de asemenea se numerotează singur daca în celula din stânga este nr. crt şi deasupra este scris ceva find capulde tabel. (şi uite aşa numai în fraza asta am amestecat vreo trei situaţii care nu mai sunt cerinţe clare).
Mai am încă vreo 3 probleme cu care m-am întâlnit faţă de cele de mai sus
Una dintre care ele care mi-a dat bătăi de cap ele ar fi :
Cu pot fi numerotate cu Nr . Crt .
numai rândurile care sunt afişate iar la cele ascunse să nu fie numerotate
uf atâta text nu am mai sris de mult
multumesc
Re: Numar curent VBA Excel
Buna ziua
Daca aveti randuri (in totalitate) libere in cadrul unei liste/tabel inseamna ca incalcati o regula elementara si fundamentala de organizare a datelor si nu puteti vorbi (din punct de vedere al Excelului) despre un tabel/lista. Nu spun ca nu se poate face ceva (de ex. Stergere manuala sau via macro a randurilor goale). Spun ca totul poate deveni mult mai complicat daca se lucreaza pe o astfel de structura.
Din punctul meu de vedere, la cum aveti (ne)organizata informatia, este exclusa orice varianta de rulare automata a unui cod macro (adica orice care „sa numere singur daca...”). Este parerea mea si raman la ea. Poate va veni cineva cu o solutie alternativa (chiar as fi curios sa o vad) care sa ma contrazica. Oricum, din partea mea sa nu asteptati o astfel de solutie (sau incercare de solutie) pentru ca nu vad decat potentialul destructiv al unei astfel de abordari. (aici includ si blocarea calculatorului)
Niste randuri pot fi ascunse folosind filtrarea sau folosind optiunea de Hide. In ciuda aparentelor nu e chiar acelasi lucru. Am vazut situatii in care ascunderea randurilor aveau doar scopul de a prezenta vizual un tabel in mod compact fara a se tine cont ca din punct de vedere al prelucrarii datelor acest lucru e ceva total contraindicat.
... Si daca aveti randuri ascunse dar care contin informatie pe cel putin una din cele n coloane atunci?
Nu fac niciun fel de promisiuni pe viitor. Vreau doar sa fac o observatie: macro nu va putea la nesfarsit sa corecteze niste lipsuri elementare de cunostinte si prelucrare in Excel sau daca o va face, costurile (daca nu de bani) de timp, energie pot deveni nejustificate.
IP
Daca aveti randuri (in totalitate) libere in cadrul unei liste/tabel inseamna ca incalcati o regula elementara si fundamentala de organizare a datelor si nu puteti vorbi (din punct de vedere al Excelului) despre un tabel/lista. Nu spun ca nu se poate face ceva (de ex. Stergere manuala sau via macro a randurilor goale). Spun ca totul poate deveni mult mai complicat daca se lucreaza pe o astfel de structura.
Din punctul meu de vedere, la cum aveti (ne)organizata informatia, este exclusa orice varianta de rulare automata a unui cod macro (adica orice care „sa numere singur daca...”). Este parerea mea si raman la ea. Poate va veni cineva cu o solutie alternativa (chiar as fi curios sa o vad) care sa ma contrazica. Oricum, din partea mea sa nu asteptati o astfel de solutie (sau incercare de solutie) pentru ca nu vad decat potentialul destructiv al unei astfel de abordari. (aici includ si blocarea calculatorului)
Niste randuri pot fi ascunse folosind filtrarea sau folosind optiunea de Hide. In ciuda aparentelor nu e chiar acelasi lucru. Am vazut situatii in care ascunderea randurilor aveau doar scopul de a prezenta vizual un tabel in mod compact fara a se tine cont ca din punct de vedere al prelucrarii datelor acest lucru e ceva total contraindicat.
... Si daca aveti randuri ascunse dar care contin informatie pe cel putin una din cele n coloane atunci?
Nu fac niciun fel de promisiuni pe viitor. Vreau doar sa fac o observatie: macro nu va putea la nesfarsit sa corecteze niste lipsuri elementare de cunostinte si prelucrare in Excel sau daca o va face, costurile (daca nu de bani) de timp, energie pot deveni nejustificate.
IP
Re: Numar curent VBA Excel
sal
multumesc pt raspuns
sunt de acord cu dumneavoastră la unele puncte de vedere
haideti totusi sa vedem situaţiile pe rând si dacă se pot rezolva înrt-un anumit fel
daca aveţi timp va rog să ma ajutaţi cu privire la numerotare rânduri numai pentru rândurile afişate
mulţumesc frumos
multumesc pt raspuns
sunt de acord cu dumneavoastră la unele puncte de vedere
haideti totusi sa vedem situaţiile pe rând si dacă se pot rezolva înrt-un anumit fel
daca aveţi timp va rog să ma ajutaţi cu privire la numerotare rânduri numai pentru rândurile afişate
mulţumesc frumos
Re: Numar curent VBA Excel
Buna ziua
Pentru inserare numar curent, mai putin in dreptul randurilor ascunse (folosind metoda selectare, click dreapta pe etichetele randurilor, Hide), testati fisierul atasat
IP
Pentru inserare numar curent, mai putin in dreptul randurilor ascunse (folosind metoda selectare, click dreapta pe etichetele randurilor, Hide), testati fisierul atasat
IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Re: Numar curent VBA Excel
sal
merge pt răndurile ascunse
mersi
cum se poate sorta dupa coloana C
daca râdurile sunt selectate cu filtrare automată
dupa coloana H merge super
atasez un fisier exemplu
merge pt răndurile ascunse
mersi
cum se poate sorta dupa coloana C
daca râdurile sunt selectate cu filtrare automată
dupa coloana H merge super
atasez un fisier exemplu
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Re: Numar curent VBA Excel
Ati incercat sa faceti in acelasi fel cum ati facut si pentru coloana H?adof scrie:
cum se poate sorta dupa coloana C
daca râdurile sunt selectate cu filtrare automată
dupa coloana H merge super
In alta ordine de idei: ma gandesc ca stiti ca, in cazul in care aveti cel putin un rand in totalitate liber in cadrul datelor, in caz de sortare fara selectare prealabila a intregului domeniu de celule, sortarea se va realiza pana la primul rand liber. De asemenea, in caz de filtrare, pentru Excel datele luate in considerare se opresc la primul rand in totalitate liber chiar daca mai exista ceva si dupa acela
Daca doriti sa puteti prelucra datele (folosind instrumentele puse la dispozitie de Excel) atunci ar trebui sa stiti ca acestea trebuie sa fie completate in totalitate, pentru toate celulele care vor fi implicate la un moment dat. Asadar o persoana care are trei copii trebuie sa aiba completata in tabel aceeasi informatie privitoare la persoana sa in toate cele 3 randuri. Altfel nu va functiona cu rezultate bune nici filtrarea (veti vedea doar numele copilului care are in dreptul sau completata informatia despre parinte in caz de filtrare dupa nume parinte), nici pivot table, nici sortarea. Da, este vorba de informatie redutanta dar daca nici Excelul nu are instrumente de completare rapida a informatiei (sau la o adica se poate face un macro si pentru asta) atunci nu stiu.
Re: Numar curent VBA Excel
sal
pe coloana H imi arata citi copii sunt
pe coloana C am selectat prima celula si nu afunctionat sa arate citi parinti sunt
eram curios dacă merge
multumesc pt tot
stiu ca am fost un pic cam pisalog si am cautat tot felul de situaţii
dar cind folosesti Exelul pt a strânge date se întâmpla tot felul de situaţii
sal
pe coloana H imi arata citi copii sunt
pe coloana C am selectat prima celula si nu afunctionat sa arate citi parinti sunt
eram curios dacă merge
multumesc pt tot
stiu ca am fost un pic cam pisalog si am cautat tot felul de situaţii
dar cind folosesti Exelul pt a strânge date se întâmpla tot felul de situaţii
sal
Re: Numar curent VBA Excel
am revenit
codul funcţioneza de minune
DAR
am un bai
am facut o selectie cu filtrare
am numerotat cu macrocomana Nr_crt
dupa care a trebuit sa fac alta selecţie dupa alt criteriu aceeaşi coloana (unde lucrează)
când am renumerotat , sa sters numerotarea dupa celalat criteriu
atasez fisierul cu exemplu
se poate modifica astel încât dupa ce am numerotat niste rânduri la acestea sa nu li se stearga numarul dacă rândurile sunt ascunse ?
curaţirea celelelor şi renumerotarea să se facă numai pt celulele care se afla pe rândurile care se vad
mulţumesc
codul funcţioneza de minune
DAR
am un bai
am facut o selectie cu filtrare
am numerotat cu macrocomana Nr_crt
dupa care a trebuit sa fac alta selecţie dupa alt criteriu aceeaşi coloana (unde lucrează)
când am renumerotat , sa sters numerotarea dupa celalat criteriu
atasez fisierul cu exemplu
se poate modifica astel încât dupa ce am numerotat niste rânduri la acestea sa nu li se stearga numarul dacă rândurile sunt ascunse ?
curaţirea celelelor şi renumerotarea să se facă numai pt celulele care se afla pe rândurile care se vad
mulţumesc
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.