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 à 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
Retour