Macro au résultat très alléatoire

Lipaika

XLDnaute Nouveau
Bonjour,

J'ai une macro qui traite énormément de fichiers, beaucoup de ligne, qui remplit des formules.
Voici mon problème, si je lance la macro et que je ne touche plus à rien, alors j'obtiens le bon résultat sinon, j'ai des incohérences dans les résultats.

J'aimerais pouvoir faire autre chose pendant que ma macro tourne.

Je pense que le problème vient du fait que j'utilise des select/activesheet...Mais comment faire autrement??
Voici une de mes procédures pour vous donner une idée:

Code:
Private Sub Copy_Neighbour_from_RNO()
wkb_RNP.Activate
Sheets.Add after:=Sheets(Worksheets.Count)

ActiveSheet.name = RNP_in_RNO_results_sh
ligne = 2
For i = 1 To UBound(wkb_RNO)
    wkb_RNO(i).Activate
    Sheets(RNO_results_sh).Select
    If (RNO_col_request < RNO_col_UniqID) Then
        Range(Cells(2, RNO_col_request), Cells(2, RNO_col_UniqID)).Select
    Else
        Range(Cells(2, RNO_col_UniqID), Cells(2, RNO_col_request)).Select
    End If
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    wkb_RNP.Activate
    Sheets(RNP_in_RNO_results_sh).Select
    Cells(ligne, 1).Select
    ActiveSheet.Paste

    ligne = Rows(ActiveSheet.UsedRange.Rows.Count + 1).Row + 1
Next i

    wkb_RNO(1).Activate
    
    'Copy Title from RNO
    Sheets(RNO_results_sh).Select
     If (RNO_col_request < RNO_col_UniqID) Then
        Range(Cells(1, RNO_col_request), Cells(1, RNO_col_UniqID)).Select
    Else
        Range(Cells(1, RNO_col_UniqID), Cells(1, RNO_col_request)).Select
    End If

    Selection.Copy
    
    wkb_RNP.Activate
    Sheets(RNP_in_RNO_results_sh).Select
    Cells(1, 1).Select
    ActiveSheet.Paste
    
    Columns("A:B").Select
    Selection.Interior.ColorIndex = 35
    Columns("A:B").EntireColumn.AutoFit
    
    wkb_RNP.Activate
    Sheets(RNP_in_RNO_results_sh).Select
    NB_INTRA_FROM_RNO = Rows(ActiveSheet.UsedRange.Rows.Count + 1).Row - 2
End Sub
 
C

Compte Supprimé 979

Guest
Re : Macro au résultat très alléatoire

Salut Lipaika,

Qu'entends-tu par
J'aimerais pouvoir faire autre chose pendant que ma macro tourne.

Si tu veux utiliser Excel, il suffit d'ouvrir une 2ème instance, c'est à dire d'aller dans le menu -> Démarrer -> Tous les programmes -> Microsoft Office -> Excel

pour les autres programmes, je ne vois pas en quoi ça pose problème !?

A+
 

Lipaika

XLDnaute Nouveau
Re : Macro au résultat très alléatoire

Bonjour,

Ma macro manipule beaucoup de données (~30.000 lignes). J'utilise des formules qui s'appliquent à toute une colonne. Ainsi j'active :
Application.Calculation = xlCalculationAutomatic
puis je le remet en manuel pour gagner en process.
Cependant ce n'est pas toujours fiable.
Est-ce le seul moyen d'arriver au bon résultat?

Merci
 

Discussions similaires

Réponses
5
Affichages
313

Statistiques des forums

Discussions
312 690
Messages
2 090 976
Membres
104 720
dernier inscrit
drd74