vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Schleifen zusammen legen 
Autor: hepsen
Datum: 10.04.06 10:51

Guten morgen,

ich hab hier momentan vier schleifen die beim öffnen der form ausgeführt werden. sie prüfen ob ein file aus der filelistbox in eine exceltabelle ist und schreibt sie dann mit entsprechenden hintergrundfarben in einen tree.

da ich jetzt jedoch für 4 farben auch 4 schleifen habe ist diese funktion sehr langsam sobald die excel tabelle mehrere einträge hat und vergleichen muss.

kann man die schleifen irgendwie zusammenlegen, so dass das excel file nur einmal durchsucht wird?

hier der jetzige code:


 
 
Option Explicit
 
 
 
Public sPath, bname As String
 
Public sID As String
 
Public Dateiname As String
 
Public i, intCounter As Integer
 
Public lngNumberOfRows, lngRowNumber As Long
 
 
 
Private Sub Form_Load()
 
    Dim x, o As Integer
 
    Dim isnotin As Boolean
 
    Dim lngBackColor0, lngBackColor1, lngBackColor2, lngBackColor3 As Long
 
 
 
    lngBackColor0 = &HFFFFC0
 
    lngBackColor1 = &HFF00&
 
    lngBackColor2 = &HFFFF&
 
    lngBackColor3 = &HFF&
 
 
 
    frmMain.testExcel
 
    lngNumberOfRows = frmMain.xlWS.Cells(frmMain.xlWS.Rows.Count, 1).End( _
      xlUp).Row
 
 
 
    For x = 0 To File1.ListCount - 1
 
    isnotin = True
 
        For i = 1 To lngNumberOfRows Step 1
 
            bname = File1.List(x)
 
            If (frmMain.xlWS.Cells(i, 1) = File1.List(x) And _
 
                frmMain.xlWS.Cells(i, 4) = "in field" And _
 
                frmMain.xlWS.Cells(i, 18) = frmMain.uID) Then
 
                isnotin = False
 
              End If
 
        Next i
 
        If (isnotin) Then
 
                Tree1.Nodes.Add Text:=bname
 
                o = Tree1.Nodes.Count
 
                Tree1.Nodes(o).BackColor = lngBackColor0
 
        End If
 
    Next x
 
 
 
    For x = 0 To File1.ListCount - 1 Step 1
 
        For i = 1 To lngNumberOfRows Step 1
 
            If ((frmMain.xlWS.Cells(i, 1) = File1.List(x) And _
 
                frmMain.xlWS.Cells(i, 4) = "in field") And _
 
                (frmMain.xlWS.Cells(i, 18) = frmMain.uID And _
 
                frmMain.xlWS.Cells(i, 19) = "1")) Then
 
                Tree1.Nodes.Add Text:=File1.List(x)
 
                o = Tree1.Nodes.Count
 
                Tree1.Nodes(o).BackColor = lngBackColor1
 
            End If
 
        Next i
 
    Next x
 
 
 
    For x = 0 To File1.ListCount - 1 Step 1
 
        For i = 1 To lngNumberOfRows Step 1
 
            If ((frmMain.xlWS.Cells(i, 1) = File1.List(x) And _
 
                frmMain.xlWS.Cells(i, 4) = "in field") And _
 
                (frmMain.xlWS.Cells(i, 18) = frmMain.uID And _
 
                frmMain.xlWS.Cells(i, 19) = "2")) Then
 
                Tree1.Nodes.Add Text:=File1.List(x)
 
                o = Tree1.Nodes.Count
 
                Tree1.Nodes(o).BackColor = lngBackColor2
 
            End If
 
        Next i
 
    Next x
 
 
 
    For x = 0 To File1.ListCount - 1 Step 1
 
        For i = 1 To lngNumberOfRows Step 1
 
            If ((frmMain.xlWS.Cells(i, 1) = File1.List(x) And _
 
                frmMain.xlWS.Cells(i, 4) = "in field") And _
 
                (frmMain.xlWS.Cells(i, 18) = frmMain.uID And _
 
                frmMain.xlWS.Cells(i, 19) = "3")) Then
 
                Tree1.Nodes.Add Text:=File1.List(x)
 
                o = Tree1.Nodes.Count
 
                Tree1.Nodes(o).BackColor = lngBackColor3
 
            End If
 
        Next i
 
    Next x
 
 
 
 If Tree1.Nodes.Count = 0 Then
 
 MsgBox "No files to open!", vbOKOnly
 
 Else
 
    Tree1.Nodes(1).Selected = True
 
 End If
 
 
 
End Sub
Also hier die erklärung was es momentan macht: in der filelist stehen dateien (meist so 30-40) dann wird geschaut ob das erste file drin steht, wenn nicht, erhält es farbe 0, steht es jedoch drin wird auf die 19te zelle in der reihe geschaut, da steht ein counter (von 1- 3) und je nachdem wird dann farbe 1, 2 oder 3 übergeben. voll langsam wenn er 4 mal 30 dateien durchsucht.....
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Schleifen zusammen legen949hepsen10.04.06 10:51
Re: Schleifen zusammen legen531hepsen11.04.06 12:32
Re: Schleifen zusammen legen524Danzi11.04.06 13:01
Re: Schleifen zusammen legen557hepsen11.04.06 13:32
Re: Schleifen zusammen legen501hepsen11.04.06 13:39
Re: Schleifen zusammen legen537Danzi11.04.06 14:20
Re: Schleifen zusammen legen502hepsen11.04.06 14:27
Re: Schleifen zusammen legen516Danzi11.04.06 16:48
Re: Schleifen zusammen legen491hepsen11.04.06 17:05
Re: Schleifen zusammen legen524hepsen11.04.06 19:50
Re: Schleifen zusammen legen566Danzi12.04.06 08:31
Re: Schleifen zusammen legen523Buggy06.05.06 15:54
Re: Schleifen zusammen legen565Danzi06.05.06 19:03
Re: Schleifen zusammen legen479Buggy07.05.06 12:13
Re: Schleifen zusammen legen504Danzi08.05.06 10:10

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel