sterge randuri in functie de o conditie

Jokerul
Mesaje: 545
Membru din: Vin Iul 03, 2009 11:06 pm

sterge randuri in functie de o conditie

Mesaj de Jokerul » Sâm Mai 30, 2015 7:10 pm

Salutare,

In fisierul atasat vreau sa sterg randurile care nu sunt completate pe coloana D.
Am inceput cu cu un cod vba gasit pe net dar fara efect.

Cum imi pot rezolva problema.

Multumesc!
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Tocmai cand credeam si eu ca o scot la capat,
se gasi unul sa mute capatul mai incolo ...

csaba1960
Moderator
Moderator
Mesaje: 187
Membru din: Mie Feb 02, 2011 4:05 pm
Localitate: Cluj-Napoca

Re: sterge randuri in functie de o conditie

Mesaj de csaba1960 » Dum Mai 31, 2015 5:16 am

BUna,

In atasament ai doua solutii. Prima este continuarea metodei tale, dar cu ciclu For cu pas negativ. Al doilea este putin mai generalizat, in care automat se determina unde se termina tabelul.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Jokerul
Mesaje: 545
Membru din: Vin Iul 03, 2009 11:06 pm

Re: sterge randuri in functie de o conditie

Mesaj de Jokerul » Dum Mai 31, 2015 9:26 am

csaba1960, multumesc mult pentru ajutor!
Tocmai cand credeam si eu ca o scot la capat,
se gasi unul sa mute capatul mai incolo ...

Jokerul
Mesaje: 545
Membru din: Vin Iul 03, 2009 11:06 pm

Re: sterge randuri in functie de o conditie

Mesaj de Jokerul » Vin Iun 12, 2015 7:10 pm

Salutare,

Am o mica problema cu codul, necesita foarte mult timp pana cand verifica randurile goale, ii pot aduce un artificiu sa reduc din timp?

Cod: Selectaţi tot

Sub sterge_randuri()
    Dim lRow As Long
    Dim iCntr As Long
        lRow = 113
    For iCntr = lRow To 13 Step -1
        If Trim(Cells(iCntr, 3)) = “” Then
            Rows(iCntr).Delete
    End If
        Next
End Sub
Tocmai cand credeam si eu ca o scot la capat,
se gasi unul sa mute capatul mai incolo ...

Indigo
Mesaje: 774
Membru din: Sâm Sep 26, 2009 8:05 pm

Re: sterge randuri in functie de o conditie

Mesaj de Indigo » Vin Iun 12, 2015 8:15 pm

Salut,

Mai jos de randul 113 ai alte date, care au randuri goale pe care nu vrei sa le stergi?
De ce doresti de la randul 113 pana la randul 13?

Jokerul
Mesaje: 545
Membru din: Vin Iul 03, 2009 11:06 pm

Re: sterge randuri in functie de o conditie

Mesaj de Jokerul » Vin Iun 12, 2015 8:41 pm

codul l-am adaptat la un sistem de ofertare, care se intinde pe 100 de randuri, am omis din greseala ce am atasat initial.
Tocmai cand credeam si eu ca o scot la capat,
se gasi unul sa mute capatul mai incolo ...

Indigo
Mesaje: 774
Membru din: Sâm Sep 26, 2009 8:05 pm

Re: sterge randuri in functie de o conditie

Mesaj de Indigo » Sâm Iun 13, 2015 9:26 am

Si vrei un cod ptr a sterge randurile din fisierul din prima postare?

Jokerul
Mesaje: 545
Membru din: Vin Iul 03, 2009 11:06 pm

Re: sterge randuri in functie de o conditie

Mesaj de Jokerul » Sâm Iun 13, 2015 8:37 pm

Intr-un final am reusit cu codul din a doua postare (codul pe butonul rosu) insa m-am izbit de o alta problema.
Daca range ("B7:D22") vreau sa il sterg este ok pentru ca se afla in tabel.
Daca range("B7:M22") vreau sa il sterg nu mai merge pentru ca ies din afara tabelului.
Care este problema?

Multumesc!
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Tocmai cand credeam si eu ca o scot la capat,
se gasi unul sa mute capatul mai incolo ...

Indigo
Mesaje: 774
Membru din: Sâm Sep 26, 2009 8:05 pm

Re: sterge randuri in functie de o conditie

Mesaj de Indigo » Sâm Iun 13, 2015 9:52 pm

Pana la urma, ori este tabel ori nu?

Foloseste codul asta:

Cod: Selectaţi tot

Sub bla()
     Range("C4:C" & Rows.Count).SpecialCells(xlBlanks).EntireRow.Delete
End Sub
Codul sterge tot randul daca este indeplinita conditia.

Jokerul
Mesaje: 545
Membru din: Vin Iul 03, 2009 11:06 pm

Re: sterge randuri in functie de o conditie

Mesaj de Jokerul » Dum Iun 14, 2015 5:35 pm

Pana la urma am dublat codul pentru fiecare zona pe care vreau sa o sterg. Am atasat un exemplu in atasament. Am preferat aceasta varianta pentru ca imi ofera posibilitatea de a pune si o conditie.

Aceasta varianta este foarte simpla si o voi folosi cand am strict celule blank.

Cod: Selectaţi tot

Range("C4:C" & Rows.Count).SpecialCells(xlBlanks).EntireRow.Delete
Codul de mai sus l-am folosit pe celule care contin formule si nu a dat randament, sper sa nu fi gresit pe undeva.

Multumesc foarte mult Indigo pentru ajutorul oferit
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Tocmai cand credeam si eu ca o scot la capat,
se gasi unul sa mute capatul mai incolo ...

Închis

Înapoi la “Visual Basic for Application (VBA) cu Excel - Intrebari tehnice”