Εμφάνιση ενός μόνο μηνύματος
  #4  
Παλιά 13-11-10, 13:17
Το avatar του χρήστη gr8styl
gr8styl Ο χρήστης gr8styl δεν είναι συνδεδεμένος
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

Καλημέρα Νίκο.
Θεωρώ ότι πριν καταφύγουμε σε VBA καλό είναι να προσπαθούμε να λύσουμε το πρόβλημα/ερώτημα χωρίς VBA, γιατί έτσι μαθαίνουμε πολλά.

Τώρα για μια προσέγγιση λύσης με VBA (αν και δεν είμαι ειδικός και καλό θα ήταν να τον κρίνουν οι γκουρού της VBA) θα πρότεινα τον παρακάτω κώδικα Sub HideLines()
όπου Range("D1:D1000") η περιοχή που θα γίνει ο έλεγχος και what:=0 η τιμή που αναζητάμε.
Δεν θα μας χάλαγε να βάλουμε σαν MyRange ολόκληρη την στήλη D ("D:D") νομίζω ότι είναι πολύ γρήγορος.
:icon_out:
Τα λέμε
Θανάσης

Κώδικας:
Sub HideLines()
Dim c, last, MyRange As Range
Dim i As Double
Dim s As String

Set MyRange = Range("D1:D1000")
i = MyRange.Cells.Count
Set last = MyRange.Cells(i)
Set c = MyRange.Find(what:=0, after:=last)
If Not c Is Nothing Then s = c.Address
Do Until c Is Nothing
    c.EntireRow.Hidden = True
    Set c = MyRange.FindNext(after:=c)
    If c.Address = s Then Exit Do
Loop
MsgBox i - MyRange.Cells.SpecialCells(xlCellTypeVisible).Count & _
    " rows are hidden now."
End Sub
Απάντηση με παράθεση