Thema Datum  Von Nutzer Rating
Antwort
13.05.2011 14:10:07 sanv0
NotSolved
Blau VBA Zeile merken
13.05.2011 16:33:59 Till
NotSolved

Ansicht des Beitrags:
Von:
Till
Datum:
13.05.2011 16:33:59
Views:
745
Rating: Antwort:
  Ja
Thema:
VBA Zeile merken

Du weist WertB ja garkeinen Wert zu... außerdem musst du im Elseif Teil eine weitere Variable hochzählen (z.B. i) und dann z.B Worksheets("Statistik").Cells(2+i, 2).Value = Cells(t, 27).Value  schreiben. Ansonsten wird die Ausgabezeile immer wieder überschrieben.

Das .Activate kannst du dir sparen und stattdessen Sheets(1).Cells(t,16).value schreiben, das ist wesentlich schneller. Außerdem würde ich den Worksheet nicht per Name (Statistik) sondern per Index ansprechen. Ist ebenfalls deutlich schneller. Merkt man aber alles erst bei größeren Datenmengen. Hier bietet sich außerdem eine With Anweisung an. Spart Tipparbeit und lässt sich schneller ausführen. Am besten ist es allerdings eh mit Arrays zu arbeiten, grade wenn man ganze Tabellenbläter durchsucht.

Sub TabellenVergleichen()
    
    'dim
        Dim tab1, tab2, res$(), r&, t&
        Dim AnzZeilen&
        Dim WertA#, WertB#
        
    'set
        AnzZeilen = 100
        
        With Sheets(1)
        tab1 = .Range(.Cells(1, 1), .Cells(AnzZeilen, 39)).Value
        End With
        
        ReDim res(AnzZeilen - 3, 5)
        
        WertB = 10
        
    'vergleichen
        For t = 3 To AnzZeilen
            
            WertA = tab1(t, 16)
            
            If WertA < WertB Then
            
                res(r, 2) = tab1(t, 27)
                res(r, 3) = tab1(t, 11)
                res(r, 4) = tab1(t, 39)
                res(r, 5) = tab1(t, 1)
                r = r + 1
                
            End If
          
        Next
    
    'ergebnisse eintragen
        With Worksheets("Statistik")
        .Range(.Cells(2, 2), .Cells(2 + UBound(res), 2 + UBound(res, 2))).Value = res
        End With
        
End Sub

So könnte es klappen, musst natürlich noch die richtigen Werte zuweisen. Das mit den Array Zuweisungen wirkt vielleicht etwas verwirrend aber eigentlich ist es einfacher, da du weniger schreiben musst und nicht in Gefahr läufst z.B den falschen Sheet anzusprechen.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
13.05.2011 14:10:07 sanv0
NotSolved
Blau VBA Zeile merken
13.05.2011 16:33:59 Till
NotSolved