Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

RESOLU Accélérer un LOOP

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

C

chacal33

Guest
Bonjour à toutes et à tous.

J'ai créé une macro qui fait ce que je veux, mais c'est très lent.
Sauriez-vous comment accélérer le processus?

Code:
Sub BUDGET()


For i = 2 To 10000


Sheets("Feuil1").Select
If Sheets("Feuil1").Range("D" & i).Value <> "Tâcherons" And Sheets("Feuil1").Range("D" & i).Value <> "" And Sheets("Feuil1").Range("K" & i).Value <> "" And Sheets("Feuil").Range("A30").Value = "ABC" Then
    
    Sheets("Feuil2").Range("A30").Value = Sheets("Feuil1").Range("K" & i).Value
   
    Sheets("Feuil2").Select
    Range("B30").Select
    
   Dim strName As String
    strName = InputBox("Veuillez rentrer le montant du budget", "Budget")
    ActiveCell.Value = strName

ElseIf Sheets("Feuil1").Range("D" & i).Value <> "Tâcherons" And Sheets("Feuil1").Range("D" & i).Value <> "" And Sheets("Feuil1").Range("K" & i).Value <> "" And Sheets("BILAN").Range("A30").Value <> Sheets("Feuil1").Range("K" & i).Value And Sheets("Feuil2").Range("A31").Value = "ABC" Then

    Sheets("Feuil2").Range("A31").Value = Sheets("Feuil1").Range("K" & i).Value

    Sheets("Feuil2").Select
    Range("B31").Select
    
   Dim strName1 As String
    strName1 = InputBox("Veuillez rentrer le montant du budget", "Budget")
    ActiveCell.Value = strName1


End If

Next i

End Sub

Merci de vos retours.

PS: J'ai déjà désactivé dans le classeur les calculs automatiques.
 
Dernière modification par un modérateur:
Re : Accélérer un LOOP

Bonjour,

Tu fais une boucle sur 10 000 lignes. Combien en as-tu exactement ?
Recherche la dernière ligne utile : derligne=sheets("Feuil1").Range("A65536").End(Xlup).Row
for i= 2 to derligne
....
 
Re : Accélérer un LOOP

Bonjour,

Ne pas travailler sur des cellules mais sur des tableaux VBA (matrices).

Bien sûr pas d'InputBox dans la boucle, sauf si c'est très occasionnel.

Nombreux exemples sur le forum.

A+
 
Re : Accélérer un LOOP

Bonjour à tous.


Code:
Sub BUDGET()
Dim i&, s$, x
    With Sheets("Feuil1")
        For i = 2 To 10000
            If .Cells(i, 4).Value <> "Tâcherons" And .Cells(i, 4).Value <> "" And .Cells(i, 11).Value <> "" Then
                If Sheets("Feuil").Range("A30").Value = "ABC" Then
                    s = InputBox("Veuillez rentrer le montant du budget", "Budget")
                    Sheets("Feuil2").Range("A30:B30").Value = Array(.Cells(i, 11).Value, s)
                ElseIf Sheets("BILAN").Range("A30").Value <> .Cells(i, 11).Value And Sheets("Feuil2").Range("A31").Value = "ABC" Then
                    s = InputBox("Veuillez rentrer le montant du budget", "Budget")
                    Sheets("Feuil2").Range("A31:B31").Value = Array(.Cells(i, 11).Value, s)
                End If
            End If
        Next i
    End With
End Sub
Sous toutes réserves, car :
  1. on ne sait pas ce que doit faire la procédure ;
  2. on ne dispose d'aucun support permettant de tester le code.


Bonne soirée.


ℝOGER2327
#7273


Mercredi 4 Palotin 141 (Sainte Susan Calvin, docteur - fête Suprême Quarte)
4 Floréal An CCXXII, 6,3262h - aubépine
2014-W17-3T15:10:58Z
 
Dernière édition:
Re : Accélérer un LOOP

Re...


Bonjour à tous,

merci Roger pour ton option. C'est exactement ce que je cherchais et ça fonctionne du feu de Dieu!

A+
Au poil !
Comme quoi il faut croire au coup de bol...



ℝOGER2327
#7275


Jeudi 5 Palotin 141 (Sainte Poignée, veuve et Sainte Jutte, recluse - fête Suprême Quarte)
5 Floréal An CCXXII, 6,1803h - rossignol
2014-W17-4T14:49:58Z
 
- 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
872
Réponses
33
Affichages
3 K
O
  • Question Question
Microsoft 365 Problème Exit sub
Réponses
9
Affichages
1 K
omario1995
O
Réponses
8
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…