Macro qui tourne pendant très longtemps

  • Initiateur de la discussion Initiateur de la discussion Machapi
  • 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 !

Machapi

XLDnaute Nouveau
Bonjour,

J'ai crée un petit code VBA qui a l'objectif suivant :

J'ai une liste de références sur une feuille, je compare ses références avec celles présentes sur une autre feuille. Si les références sont égales je veux écrire la quantité adequouat dans la première feuille.

Ca donne ca :
Code:
Sub prendre()

Dim i As Integer
Dim j As Integer

For i = 2 To 5050
For j = 2 To 3250
    If Sheets("bon").Cells(i, 1).Value = Sheets("donnee").Cells(j, 1).Value Then
    Sheets("donnee").Cells(j, 2).Copy Sheets("bon").Cells(i, 2)
    End If
 Next
 Next


End Sub

Voilà la marco met vraiment beaucoup de temps à se réaliser (plus de 5 minutes). Comment puis-je l'améliorer ?
 
Re : Macro qui tourne pendant très longtemps

Bonjour Machapi

A tester:

Code:
Sub test()
tablo1 = Sheets("bon").Range("A2:B5050")
tablo2 = Sheets("donnee").Range("A2:B3250")
For n = LBound(tablo1, 1) To UBound(tablo1, 1)
 For m = LBound(tablo2, 1) To UBound(tablo2, 1)
   If tablo1(n, 1) = tablo2(m, 1) Then
     tablo2(m, 2) = tablo1(n, 2)
   End If
 Next
Next
Sheets("donnee").Range("A2").Resize(UBound(tablo2, 1), UBound(tablo2, 2)) = tablo2
End Sub
 
Re : Macro qui tourne pendant très longtemps

Bonjour Machapi, PierreJean,

C'est sans garantie, mais puisque je l'ai élaborée je propose une autre solution qui devrait quand même accélérer un peu le processus:

Code:
Sub prendre()

Dim i As Integer
Dim Cel As Range

For i = 2 To 5050
  Set Cel = Sheets("donnee").Range("A2:A3250").Find(Sheets("bon").Cells(i, 1).Value, LookIn:=xlValues, lookat:=xlWhole)
  If Not Cel Is Nothing Then Cel.Copy Sheets("bon").Cells(i, 2)
Next
End Sub
Mais il est vrai que la solution manipulant des tableaux devrait être bien plus rapide.

A +

Cordialement.
 
- 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

Discussions similaires

Réponses
4
Affichages
581
Réponses
5
Affichages
710
Réponses
8
Affichages
651
Réponses
8
Affichages
270
Réponses
10
Affichages
533
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
372
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
218
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
2
Affichages
427
Réponses
5
Affichages
478
Retour