Office: Makro zu langsam

Helfe beim Thema Makro zu langsam in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hi, hab es jetzt endlich geschafft meine beiden Makros zu schreiben wie ich es brauch (und die funktionieren sogar *freu*) allerdings ist mein... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Madde, 26. November 2007.

  1. Madde Erfahrener User

    Makro zu langsam


    Hi, hab es jetzt endlich geschafft meine beiden Makros zu schreiben wie ich es brauch (und die funktionieren sogar *freu*)

    allerdings ist mein zweites mit ~5min Durchlaufzeit etwas langsam.
    kennt ihr da möglichkeiten noch etwas Zeit einzusparen?
    Code:
    Option Explicit
    
    Sub Search()
    Dim tempStatus                              As String
    Dim tempOutput                              As String
    Dim Duration                                As String
    Dim startdate                               As String
    Dim I                                       As Integer 'Zeile Status
    Dim K                                       As Integer 'Zeile Output
    
        Sheets("Status").Select
        
        For I = 1 To 1922                          ' Last line of Status
            Sheets("Status").Select
            Cells(I, 4).Select
            If ActiveCell.Value = "Transform" Or ActiveCell.Value = "Load" Or ActiveCell.Value = "Submit source file" Or ActiveCell.Value = "Extract data" Or ActiveCell.Value = "Pre-validate" Or ActiveCell.Value = "Validation" Then
                Cells(I, 2).Select
                tempStatus = Trim(ActiveCell.Value)
                Cells(I, 3).Select
                tempStatus = tempStatus & Trim(ActiveCell.Value)
                Cells(I, 4).Select
                tempStatus = UCase(tempStatus) & Trim(UCase(ActiveCell.Value))
                
           
            
                If I = 83 Then
                    'Stop
                End If
                
                Sheets("Output").Select
            
                For K = 1 To 1136                   'last line of Output
                     'Cells(K, 5).Select
                    tempOutput = ""
                    'If ActiveCell.Value = "Transform" Or ActiveCell.Value = "Load" Or ActiveCell.Value = "Submit Source file" Or ActiveCell.Value = "Extract data" Or ActiveCell.Value = "Pre-Validate" Or ActiveCell.Value = "Validation" Then
                        Cells(K, 3).Select
                        tempOutput = tempOutput & Trim(ActiveCell.Value)
                        Cells(K, 4).Select
                        tempOutput = tempOutput & Trim(ActiveCell.Value)
                        Cells(K, 5).Select
                        tempOutput = UCase(tempOutput) & Trim(UCase(ActiveCell.Value))
                        If tempStatus = tempOutput Then
                            'Dauer übertragen
                            Sheets("Status").Select
                            Cells(I, 6).Select
                            Duration = ActiveCell.Value
                            Cells(I, 7).Select
                            startdate = ActiveCell.Value
                            'Anderes Tabellenblatt selektieren
                            Sheets("Output").Select
                            Cells(K, 6).Value = Duration
                            'Start-Datum übertragen
                            Cells(K, 8).Value = startdate
                            'Wert ist eindeutig, daher kann Schleife beendet werden
                            Exit For
                         End If
                         
                        If K = 55 Then
                              'Stop
                        End If
                        
                    'End If
                Next
        End If
        Next
       
    End Sub
    
    
    Sub Action2()
    
    Application.ScreenUpdating = False
    Application.Run "Search"
    Application.ScreenUpdating = True
    
    End Sub
    das ist mein komplettes makro, screenupdateing ausschalten spart schon enorm Zeit.
    allerdings soll das makro später noch überschaubar bleiben, also bitte nicht zuviel rauskürzen oder abkürzen damit auch andere damit arbeiten können und es verstehen :)

    Danke für eure Hilfe

    MFG
     
  2. schatzi Super-Moderator
    Hallo!

    Wie ich bereits hier im allerersten Satz schrieb:
    Dieser Teil zum Beispiel:
    Code:
      For I = 1 To 1922                          ' Last line of Status
            Sheets("Status").Select
            Cells(I, 4).Select
            If ActiveCell.Value = "Transform" Or ActiveCell.Value = "Load" Or ActiveCell.Value = "Submit source file" Or ActiveCell.Value = "Extract data" Or ActiveCell.Value = "Pre-validate" Or ActiveCell.Value = "Validation" Then
                Cells(I, 2).Select
                tempStatus = Trim(ActiveCell.Value)
                Cells(I, 3).Select
                tempStatus = tempStatus & Trim(ActiveCell.Value)
                Cells(I, 4).Select
                tempStatus = UCase(tempStatus) & Trim(UCase(ActiveCell.Value))
                
    macht genau das gleiche wie
    Code:
        For I = 1 To 1922                          ' Last line of Status
            Sheets("Status").Select
            If Cells(I, 4) = "Transform" Or Cells(I, 4) = "Load" Or Cells(I, 4) = "Submit source file" Or Cells(I, 4) = "Extract data" Or Cells(I, 4) = "Pre-validate" Or Cells(I, 4) = "Validation" Then
                tempStatus = UCase(Trim(Cells(I, 2)) & Trim(Cells(I, 3)) & Trim(Cells(I, 4)))
    
     
  3. Madde Erfahrener User
    jo das habe ich mal ausprobiert, aber an der geschwindigkeit ändert das leider kaum etwas.

    trotzdem danke, dann ist das nicht soviel code =)
     
Thema:

Makro zu langsam

Die Seite wird geladen...
  1. Makro zu langsam - Similar Threads - Makro

  2. Makro Zip-Datei von Webseite runterladen, auspacken, kopieren

    in Microsoft Excel Hilfe
    Makro Zip-Datei von Webseite runterladen, auspacken, kopieren: Hallo Zusammen, ich habe ein Makro gefunden von dem ich denke, dass es koennen sollte was ich braeuchte, eine Datei herunterladen, auspacken und den Inhalt in die Datei kopieren in der das Makro...
  3. Makro für variable Anzahl von Datensätzen

    in Microsoft Excel Hilfe
    Makro für variable Anzahl von Datensätzen: Hallo zusammen, ich habe wieder einmal ein kleines Excel-Problem, bei dem Ihr mir sicherlich helfen könnt. Ich habe eine Excel-Liste, das ist ein Export aus einem anderen Programm (siehe...
  4. Makro aus personal.xls starten

    in Microsoft Excel Hilfe
    Makro aus personal.xls starten: Auf einem Arbeitsblatt habe ich mehrere Buttons. Die zugehörigen Makros sind in personal.xls gespeichert. Aus dem Code-Editor heraus kann ich die Makros ohne Problem starten. auf dem Arbeitsblatt...
  5. Dokumente und Blatt umbenennen

    in Microsoft Word Hilfe
    Dokumente und Blatt umbenennen: Ich lade mir jeden Tag csv-Dateien von meiner Bank herunter. Diese sind mit Datum versehen, also die Datei selbst und das erste Blatt, z.B. "Konto_13.02.2024". Wenn ich ein Makro erstelle, in dem...
  6. Speichern mit dem Titel der Zelle A2

    in Microsoft Excel Hilfe
    Speichern mit dem Titel der Zelle A2: Moin moin, Ich habe per Makro einen Arbeitsablauf aufgezeichnet der soweit auch funktioniert. Dieser Endet jedoch im "Speichern Unter" Fenster, welches durch das Klicken von "Drucken als PDF"...
  7. Barcode Scanliste Makro anpassen

    in Microsoft Excel Hilfe
    Barcode Scanliste Makro anpassen: Hallo zusammen! Einer der Mitglieder hier hat mir eine Funktionsliste erstellt, mit der man Barcodes scannt und danach einen Wert über die Bildschirmtastatur eingibt. Die Barcodes hatten bisher...
  8. Makro wird nicht angezeigt im Makro Auswahlfenster

    in Microsoft Excel Hilfe
    Makro wird nicht angezeigt im Makro Auswahlfenster: Hallo, wenn ich mein Makro ausführen möchte, öffnet sich das Makro Auswahlfenster. Allerdings wird das Makro nicht aufgelistet. Das Makro befindet sich in der PERSONAL.xlsb Arbeitsmappe. Die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden