08. april 2010 - 23:45Der er
17 kommentarer og 1 løsning
VBA: skjul rækker med 0 i 2 kolonner
Hej alle sammen
Jeg har googlede en del rundt, for at finde svar på dette.
Jeg vil gerne have en makro der tjekker kolonne k og j for om der er en række, hvor begge kolonner indeholder 0. Hvis det er tilfældet skal den gemme rækken.
Derudover skal rækkerne kunne komme frem igen, hvis cellerne bliver <>0.
Jeg har fundet frem til dette indlæg - men her tjekkes der kun i 1 kolonne:
i = 20 Do Until Trim(Cells(i, 1).Value) = "" Criteria = True Criteria = True And (Cells(i, 9).Value = 0) And Cells(i, 2).Value <> "" Criteria = True And (Cells(i, 11).Value = 0) And Cells(i, 2).Value <> "" If Criteria Then Rows(i).EntireRow.Hidden = True i = i + 1 Loop
Application.ScreenUpdating = True
Men synes ikke jeg kan få det til at virke, og er ikke sikker på ved ændringer at den tjekker tidligere gemte rækker igennem og viser igen.
Prøv i et helt tomt excel dok. at indsætte denne kode:
Sub test()
Dim Criteria As Boolean Dim i As Integer
' On Error GoTo slut Sheets("Ark1").Activate i = 1 For i = 1 To 20
' Criteria = False If (Cells(i, 1).Value = "0") And (Cells(i, 2).Value = "0") Then
Criteria = True Rows(i).EntireRow.Hidden = True End If
If Criteria = False Then Rows(i).EntireRow.Hidden = False End If Next i 'slut: 'Exit Sub
End Sub
Se om den arbejder?
ja, prøv så at indsætte noget tekst i henholdvis: Skriv i celle a1 og a2 hhv. 1 og 0 a3 og a4 hhv. 0 og 0 a5 og a6 hhv. 0 og 0 a7 og a8 hhv. 1 og 0 a9 og a10 hhv. 0 og 0
On Error GoTo slut Sheets("Skabelon").Activate i = 20
For i = 20 To 65 Step 1 If (Cells(i, 9).Value = "0") And (Cells(i, 11).Value = "0") Or (Cells(i, 9).Formula = "#N/A") And (Cells(i, 11).Formula = "#N/A") Then Criteria = True Rows(i).EntireRow.Hidden = True End If
If Criteria = False Then Rows(i).EntireRow.Hidden = False End If
Jeg tjekkede lige en ekstra gang her til morges - og ser ud til at den laver nogle mærkelige ting, når man ændrer skjult række til et tal. Så må desværre gå tilbage til at vise alle rækker ved opstart af koden - men ellers virker den :)
Mærkelig = viser ikke rækken :)
Koden jeg nu bruger er:
Sub test()
Dim Criteria As Boolean Dim i As Integer
Rows("20:65").EntireRow.Hidden = False On Error GoTo slut Sheets("Skabelon").Activate i = 1
For i = 20 To 65 If (Cells(i, 9).Value = "0") And (Cells(i, 11).Value = "0") Then Criteria = True Rows(i).EntireRow.Hidden = True End If
'If Criteria = False Then 'Rows(i).EntireRow.Hidden = False 'End If slut: Next i
End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.