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 !

M

Machapi

Guest
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.
 
Re : Macro qui tourne pendant très longtemps

Edit : tout vas bien.

Merci je vais essayer avec ce que vous me proposez. (quand elle aura fini de tourner j'ai essayé de la modifier seule mais c'est toujours aussi long ...)
 
- 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
15
Affichages
784
Réponses
4
Affichages
733
Réponses
5
Affichages
910
Réponses
8
Affichages
780
Réponses
8
Affichages
390
Retour