< návrat zpět

MS Excel


Téma: Porovnanie hodnot a znazanie prislusneho riadku rss

Zaslal/a 20.5.2015 9:19

nio313Ahoj,

Potrebujem poradit. V prilohe je subor o troch stlpcoch. Potrebujem porovnat hodnoty v stlpci A a B v prislusnom riadku. Ak su rovne nule zmaz dany riadok. Snad som sa vymackol dobre.

Příloha: 7z25035_prehlad.7z (7kB, staženo 22x)
Zaslat odpověď >

icon #025037
eLCHa
Vymáčkl jste se dobře, ale uložil jste jako 7z.

Použijte Automatický filtr - vyfiltrujte 0, data označte a vyberte pouze viditelné (ALT+;), klepněte pravým tlačítkem a dejte odstranit celý řádek. Pak zrušte filtr.citovat
#025039
nio313
Myslel som nejak podobne ako je tento kod : Ja potrebujem len nulky a nie vyhodnotit ale zmazat riadok.

Public Sub kontrola()

Dim rd As Single

Dim sl As Single

Dim jmeno As String

rd = 5 ' první řádek

sl = 2 ' první sloupec

Do While Cells(rd, sl + 1) <> "" Or Cells(rd + 1, sl + 1) <> ""

If Cells(rd, sl) <> "" Then jmeno = Cells(rd, sl)

If Cells(rd, sl + 1) <> "" Then

If Left(Cells(rd, sl + 1), Len(jmeno)) = jmeno Then Cells(rd, sl + 2) = "OK" Else Cells(rd, sl + 2) = "NOK"

End If



rd = rd + 1

Loop

End Subcitovat
#025040
nio313
Uz som na to prisiel.. 1 Ale dik za ochotu.citovat
#025054
elninoslov
Neviem, ako ste to poriešili, ale ak by ešte niekto mal záujem, tak asi takto by to mohlo byť:
Sub ClearZeroRows()
Dim PR As Long, Pole(), i As Long, Zero As Range
PR = Cells(Rows.Count, 1).End(xlUp).Row
If PR < 2 Then Exit Sub
Pole = Range("A2:B2").Resize(PR - 1).Value
For i = LBound(Pole) To UBound(Pole)
If Pole(i, 1) = 0 And Pole(i, 2) = 0 Then
If Zero Is Nothing Then Set Zero = Rows(i + 1) Else Set Zero = Union(Zero, Rows(i + 1))
End If
Next i
If Not Zero Is Nothing Then Zero.EntireRow.Delete
End Sub


EDIT: A ak by bolo potrebné celé riadky nemazať, napr. kvôli iným dátam vedľa tabuľky, tak potom takto:
Sub ClearZeroRows2()
Dim PR As Long, Pole(), i As Long, NonZero(), NZ As Long
PR = Cells(Rows.Count, 1).End(xlUp).Row
If PR < 2 Then Exit Sub
Pole = Range("A2:C2").Resize(PR - 1).Value
ReDim NonZero(1 To UBound(Pole), 1 To 3)
For i = LBound(Pole) To UBound(Pole)
If Pole(i, 1) <> 0 Or Pole(i, 2) <> 0 Then
NZ = NZ + 1
NonZero(NZ, 1) = Pole(i, 1)
NonZero(NZ, 2) = Pole(i, 2)
NonZero(NZ, 3) = Pole(i, 3)
End If
Next i
Range("A2:C2").Resize(PR - 1).Value = NonZero
End Sub
citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Čas od do

jarek1111 • 18.4. 13:46

Čas od do

lubo • 18.4. 11:13

Čas od do

jarek1111 • 18.4. 8:32

Čas od do

jarek1111 • 18.4. 8:31

Makro smyčka

MilanKop • 18.4. 7:18

Makro smyčka

elninoslov • 18.4. 0:18

Makro smyčka

MilanKop • 17.4. 21:33