Aumentare la velocità



  • Aumentare la velocità
    di Black lion (utente non iscritto) data: 28/11/2010

    Salve a tutti

    avrei bisogno di un vostro aiuto
    ho creato una macro che mi permette di filtrare un file di testo che ho importato in excel prendendone solo la parte che mi serve, in un colonna, per ogni rigo, ho creato una formula che mi scrive la parola che io voglio e mi scrive "no" per quello che non mi serve. la macro invece serve a creare un'altra colonna che mi mette in ordine solo quello che mi serve lasciano i "no" e chiude il ciclo se trova una cella vuota.
    questo è il codice (ci ho provato sia con il for che con il while ma i tempi superano i 2 minuti per un testo di 4000 righe)


    grazie
     
        Dim x, As Integer
        x = 5
        For i = 5 To 7000
            If (Cells(i, 40) = "") Then
                Exit For
            ElseIf (Cells(i, 40) <> "NO") Then
                Cells(x, 42) = Cells(i, 40)
                Cells(x, 43) = Cells(i, 41)
                x = x + 1
            End If
        Next
    -------------------------------------------------
        Dim x, k As Integer
        x = 5
        k = 5
        Do While (Cells(k, 40) <> "")
            If (Cells(k, 40) <> "NO") Then
                Cells(x, 42) = Cells(k, 40)
                Cells(x, 43) = Cells(k, 41)
                x = x + 1
            End If
            k = k + 1
        Loop
    
    



  • di Isy (utente non iscritto) data: 29/11/2010

    Avrai sicuramente già inserito questo codice.
    nel caso aumenterà sicuramente la velocità!
    a risentirci..
     
    'All'inizio del ciclo inserisci:
        With Application
            .EnableEvents = False
            .Calculation = xlCalculationManual
            .ScreenUpdating = False
        End With
        '-------------------------------------
        'Inserisci qui il tuo codice
        '-------------------------------------
        'Al terminare del ciclo inserisci:
        With Application
            .EnableEvents = True
            .Calculation = xlCalculationAutomatic
        End With



  • di Black lion (utente non iscritto) data: 01/12/2010

    No non l'ho ancora fatto

    che cosa fa?

    grazie