Macro au résultat très alléatoire

  • Initiateur de la discussion Initiateur de la discussion Lipaika
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

Lipaika

Guest
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
 
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+
 
Re : Macro au résultat très alléatoire

Je remarque que si j'utilise internet, la macro n'avance pas (plus d'1H), comment être qu'elle tourne bien pendant que je fais autre chose.
Y a t'il des priorités à mettre??

Merci
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
173
Réponses
5
Affichages
908
Retour