Excel - Pobriši vrstice, ki ne vsebujejo X

disco

Fizikalc
21. jul 2007
1.102
0
36
Ve kdo, kako bi napisal makro, ki bi pobrisal vse vrstice, razen tistih, ki vsebujejo besedo TEST?

Polja imam takole

nekaj TEST|ASDF|NEKAJ takoj
še nekaj ASDF|ASDAF asdf

Pobriše drugo vrstico, pusti prvo.

Našel sem tole, ampak ne deluje dobro...verjetno ga moti, ker imam določene besede v isti celici ločene s pipom |

Koda:
For i = 2000 To 1 Step -1 
If InStr(Cells(i, 1), "TEST") = 0 Then
Rows(i).Delete
End If
Next i

Hvala
 

doto

Fizikalc
25. jul 2007
3.175
0
36
Koda je vredu, ampak preverja samo vrednosti v prvem stolpcu. Æe je "TEST" v katerem drugem stolpcu tega ne zazna.
 

disco

Fizikalc
21. jul 2007
1.102
0
36
Ok, da malo hijackam lastno temo

Bi znal kdo popravit tole funkcijo, da bi naredila naslednje

1. Pobrisala vse stolpce, razen stolpca A, B in H, ki bi morala potem postat A, B, C
2. Pobrisala vse vrstice, od vrednosti 9456 do začetka, ki se nahaja v stolpcu A
3. Pobrisala celotni stolpec A, tako da B postane A in C postane B
4. Zamenjala stolpca, da bo B=A in A=B, torej vrednosti v B bi morale bit v A (to sicer ni nujno, ampak zgornja funkcija preverja samo v prvem stolpcu, kar ni prav)
5. Pobriše vse vrstice, ki ne vsebujejo vrednosti TEST

OK, to je to
smile-1.gif


Hvala
 

amacar

Majstr
29. apr 2010
4.174
490
83
Rajši povej kaj hočeš dosečti, ker se mi zdi veliko kolobocij z brisanjem in zamenjavo stolpcev. Lahko mi pišeš tudi na ZS, za par € se spravim naredit tole.
 

marko1

Pripravnik
1. jul 2008
274
0
16
jp, prilozi excel datoteko in napisi kaj zelis

ne razumem kaj tocno hoces pod tocko 2, tocko 5 pa pravis da imas ze reseno?

tocke 1&3&4:

Sub Alter()
' Deletes Columns from 16362 to 9 (from XFD to I - I included)
' Deletes Columns from 7 to 3 (from G to C - G and C included)
' Deletes Column A
' Replaces Column A and B
Dim X As Long
Application.ScreenUpdating = False
For X = 16362 To 9 Step -1
Columns(X).Delete
Next
For X = 7 To 3 Step -1
Columns(X).Delete
Next
Columns(1).Delete
Columns("A:A").Cut
Columns("C:C").Insert Shift:=xlToRight
Application.ScreenUpdating = True
End Sub
 

disco

Fizikalc
21. jul 2007
1.102
0
36
Tkole je

Dvakrat tedensko dobim eno bazo uporabnikov v csv formatu, ki ima zapis posameznega userja v vrsticah.
A1 = ID userja
B1 = email userja
C1 = kraj userja
...
H1 = izbrane lastnosti, ki so ločene s pipom (lastnost1|lastnost2|,..)

Sedaj pa bi rad dobil ven samo maile, grupirane po posamezni lastnosti, fora je pa ta, da dobim vedno celotno bazo, zato moram pobrisat vse zapise za nazaj, ki sem jih že vnesel, torej od nekega IDja, npr. od 4.000 do 1, tako da mi ostanejo samo userji od 4.001 in naprej.
Ker ima en user lahko več lastnosti, se bo moral podvojit. Bilo bi pa idealno, če bi za vsako lastnost naredil svoj sheet in tja dal samo maile, ki imajo izbrano to lastnost. En mail bi bil tako lahko v več sheetih.

Excel je pripet, mogoče bo bolj jasno kaj bi rad.

Hvala
 

Priponke

  • 1885082-Zvezek1.xlsx
    11,5 KB · Ogledi: 177