Programme à simplifier

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

Bonjour anthony

Pour garder la visibilité sur le site, voici la partie facile que je me suis attardé.

ancien code:


Code:
Option Explicit



Sub Macro2()
''
Dim valeur As Variant
Dim stock As Integer
Dim entree As Integer
Dim mois As Object



Load Userform2
Userform2.Show



Sheets('Quel fusible pour quel appareil').Select
stock = Range('f135').Value
valeur = Range('d135').Value
Range('f21').Value = valeur
entree = Range('f21').Value
If entree > stock Then
Do
msgbox ('Il ne reste plus assez de fusibles de ce type !')
valeur = 0
entree = 0
Load Userform2
Userform2.Show
valeur = Range('d135').Value
Range('f21').Value = valeur
entree = Range('f21').Value
Loop Until entree <= stock
Range('f20').Value = valeur
Else: Range('f20').Value = valeur
End If
Sheets('Feuil1').Select

    If Range('m5').Value >= 0 Then
    Range('k5').Value = Range('k5').Value - Range('m5').Value
    
    End If
     If Range('m6').Value >= 0 Then
    Range('k6').Value = Range('k6').Value - Range('m6').Value
    
    End If
     If Range('m7').Value >= 0 Then
    Range('k7').Value = Range('k7').Value - Range('m7').Value
    
    End If
     If Range('m8').Value >= 0 Then
    Range('k8').Value = Range('k8').Value - Range('m8').Value
    
    End If
     If Range('m9').Value >= 0 Then
    Range('k9').Value = Range('k9').Value - Range('m9').Value
    
    End If
     If Range('m10').Value >= 0 Then
    Range('k10').Value = Range('k10').Value - Range('m10').Value
    
    End If
     If Range('m11').Value >= 0 Then
    Range('k11').Value = Range('k11').Value - Range('m11').Value
    
    End If
     If Range('m12').Value >= 0 Then
    Range('k12').Value = Range('k12').Value - Range('m12').Value
    
    End If
         If Range('m13').Value >= 0 Then
    Range('k13').Value = Range('k13').Value - Range('m13').Value
    
    End If
         If Range('m14').Value >= 0 Then
    Range('k14').Value = Range('k14').Value - Range('m14').Value
    
    End If
         If Range('m14').Value >= 0 Then
    Range('k14').Value = Range('k14').Value - Range('m14').Value
    
    End If
         If Range('m15').Value >= 0 Then
    Range('k15').Value = Range('k15').Value - Range('m15').Value
    
    End If
         If Range('m16').Value >= 0 Then
     Range('k16').Value = Range('k16').Value - Range('m16').Value
    
    End If
         If Range('m17').Value >= 0 Then
    Range('k17').Value = Range('k17').Value - Range('m17').Value
    
    End If
         If Range('m18').Value >= 0 Then
    Range('k18').Value = Range('k18').Value - Range('m18').Value
    
    End If
         If Range('m19').Value >= 0 Then
    Range('k19').Value = Range('k19').Value - Range('m19').Value
    
    End If
         If Range('m20').Value >= 0 Then
    Range('k20').Value = Range('k20').Value - Range('m20').Value
    
    End If
         If Range('m21').Value >= 0 Then
    Range('k21').Value = Range('k21').Value - Range('m21').Value
    
    End If
         If Range('m22').Value >= 0 Then
    Range('k22').Value = Range('k22').Value - Range('m22').Value
    
    End If
         If Range('m23').Value >= 0 Then
    Range('k23').Value = Range('k23').Value - Range('m23').Value
    
    End If
    
    If Range('m24').Value >= 0 Then
    Range('k24').Value = Range('k24').Value - Range('m24').Value
    
    End If
    
    If Range('m25').Value >= 0 Then
    Range('k25').Value = Range('k25').Value - Range('m25').Value
    
    End If
    If Range('m26').Value >= 0 Then
    Range('k26').Value = Range('k26').Value - Range('m26').Value
    
    End If
    If Range('m27').Value >= 0 Then
    Range('k27').Value = Range('k27').Value - Range('m27').Value
    
    End If
   Sheets('Quel fusible pour quel appareil').Select
   Range('f20').Value = '0'
   Range('f21').Value = '0'
 
 If Range('f135').Value = 1 Then
    msgbox ('Il ne reste plus qu'un seul fusible de ce type !')
  End If
    
    
    If Range('f135').Value > 1 And Range('f135').Value <= 5 Then
    msgbox ('Il ne reste plus que ' & Range('f135').Value & ' fusibles de ce type')
    End If
 
    If Range('f135').Value = 0 Then
    msgbox ('Il n'y a plus de fusible de ce type !')
     msgbox ('Pensez à réapprovisionner rapidement !')
    End If
Range('d135').Value = 0
  End Sub
  Sub Macro3()

Dim valeur As Variant
Dim entree As Integer

Load UserForm1
UserForm1.Show

Sheets('Quel fusible pour quel appareil').Select
valeur = Range('c135').Value
Range('g21').Value = valeur
entree = Range('g21').Value
If entree < 0 Then
Do
msgbox ('Veuillez ajouter des fusibles !')
valeur = 0
entree = 0
Load UserForm1
UserForm1.Show
valeur = Range('c135').Value
Range('g21').Value = valeur
entree = Range('g21').Value
Loop Until valeur >= 0
Range('g20').Value = valeur
Else: Range('g20').Value = valeur
End If


Sheets('Feuil1').Select
    If Range('l5').Value > 0 Then
    Range('k5').Value = Range('l5').Value
    
    End If
     If Range('l6').Value > 0 Then
    Range('k6').Value = Range('l6').Value
    
    End If
     If Range('l7').Value > 0 Then
    Range('k7').Value = Range('l7').Value
    
    End If
     If Range('l8').Value > 0 Then
    Range('k8').Value = Range('l8').Value
    
    End If
     If Range('l9').Value > 0 Then
    Range('k9').Value = Range('l9').Value
    
    End If
     If Range('l10').Value > 0 Then
    Range('k10').Value = Range('l10').Value
    
    End If
     If Range('l11').Value > 0 Then
    Range('k11').Value = Range('l11').Value
    
    End If
     If Range('l12').Value > 0 Then
    Range('k12').Value = Range('l12').Value
    
    End If
         If Range('l13').Value > 0 Then
    Range('k13').Value = Range('l13').Value
    
    End If
         If Range('l14').Value > 0 Then
    Range('k14').Value = Range('l14').Value
    
    End If
         If Range('l14').Value > 0 Then
    Range('k14').Value = Range('l14').Value
    
    End If
         If Range('l15').Value > 0 Then
    Range('k15').Value = Range('l15').Value
    
    End If
         If Range('l16').Value > 0 Then
     Range('k16').Value = Range('l16').Value
    
    End If
         If Range('l17').Value > 0 Then
    Range('k17').Value = Range('l17').Value
    
    End If
         If Range('l18').Value > 0 Then
    Range('k18').Value = Range('l18').Value
    
    End If
         If Range('l19').Value > 0 Then
    Range('k19').Value = Range('l19').Value
    
    End If
         If Range('l20').Value > 0 Then
    Range('k20').Value = Range('l20').Value
    
    End If
         If Range('l21').Value > 0 Then
    Range('k21').Value = Range('l21').Value
    
    End If
         If Range('l22').Value > 0 Then
    Range('k22').Value = Range('l22').Value
    
    End If
         If Range('l23').Value > 0 Then
    Range('k23').Value = Range('l23').Value
    
    End If
    
    If Range('l24').Value > 0 Then
    Range('k24').Value = Range('l24').Value
    
    End If
    
    If Range('l25').Value > 0 Then
    Range('k25').Value = Range('l25').Value
    
    End If
    If Range('l26').Value > 0 Then
    Range('k26').Value = Range('l26').Value
    
    End If
    If Range('l27').Value > 0 Then
    Range('k27').Value = Range('l27').Value
    
    End If
    
    
    Sheets('Quel fusible pour quel appareil').Select
    Range('g20').Value = '0'
     Range('g21').Value = '0'
   

  If Range('f135').Value = 1 Then
    msgbox ('Il n'y a qu'un seul fusible de ce type !')
  End If
    
    
    If Range('f135').Value > 1 And Range('f135').Value <= 5 Then
    msgbox ('Il n'y a que ' & Range('f135').Value & ' fusibles de ce type !')
    End If
 
Range('c135').Value = 0
 valeur = 0
  
  End Sub


Et le nouveau:

Code:
Option Explicit



Sub Macro2()
''
Dim valeur As Variant
Dim stock As Integer
Dim entree As Integer
Dim mois As Object



Load Userform2
Userform2.Show



Sheets('Quel fusible pour quel appareil').Select
stock = Range('f135').Value
valeur = Range('d135').Value
Range('f21').Value = valeur
entree = Range('f21').Value
If entree > stock Then
Do
msgbox ('Il ne reste plus assez de fusibles de ce type !')
valeur = 0
entree = 0
Load Userform2
Userform2.Show
valeur = Range('d135').Value
Range('f21').Value = valeur
entree = Range('f21').Value
Loop Until entree <= stock
Range('f20').Value = valeur
Else: Range('f20').Value = valeur
End If
Sheets('Feuil1').Select
     
    For iRef = 5 To 27
        If Cells(iRef, 7 + iRef).Value >= 0 Then
           Cells(iRef, 6 + iRef).Value = Cells(iRef, 6 + iRef).Value - Cells(iRef, 7 + iRef).Value
    Next iRef
    
   Sheets('Quel fusible pour quel appareil').Select
   Range('f20').Value = '0'
   Range('f21').Value = '0'
 
 If Range('f135').Value = 1 Then
    msgbox ('Il ne reste plus qu'un seul fusible de ce type !')
  End If
    
    
    If Range('f135').Value > 1 And Range('f135').Value <= 5 Then
    msgbox ('Il ne reste plus que ' & Range('f135').Value & ' fusibles de ce type')
    End If
 
    If Range('f135').Value = 0 Then
    msgbox ('Il n'y a plus de fusible de ce type !')
     msgbox ('Pensez à réapprovisionner rapidement !')
    End If
Range('d135').Value = 0
  End Sub
  Sub Macro3()

Dim valeur As Variant
Dim entree As Integer

Load UserForm1
UserForm1.Show

Sheets('Quel fusible pour quel appareil').Select
valeur = Range('c135').Value
Range('g21').Value = valeur
entree = Range('g21').Value
If entree < 0 Then
Do
msgbox ('Veuillez ajouter des fusibles !')
valeur = 0
entree = 0
Load UserForm1
UserForm1.Show
valeur = Range('c135').Value
Range('g21').Value = valeur
entree = Range('g21').Value
Loop Until valeur >= 0
Range('g20').Value = valeur
Else: Range('g20').Value = valeur
End If


Sheets('Feuil1').Select
    
    For iRef = 5 To 19
        If Cells(iRef, 6 + iRef).Value >= 0 Then
           Cells(iRef, 5 + iRef).Value = Cells(iRef, 6 + iRef).Value
    Next iRef
    
    For iRef = 100 To 127
        If Cells(iRef, iRef - 89).Value >= 0 Then
           Cells(iRef, iRef - 88).Value = Cells(iRef, iRef - 89).Value
    Next iRef
    
    
    Sheets('Quel fusible pour quel appareil').Select
    Range('g20').Value = '0'
     Range('g21').Value = '0'
   

  If Range('f135').Value = 1 Then
    msgbox ('Il n'y a qu'un seul fusible de ce type !')
  End If
    
    
    If Range('f135').Value > 1 And Range('f135').Value <= 5 Then
        msgbox ('Il n'y a que ' & Range('f135').Value & ' fusibles de ce type !')
    End If
 
Range('c135').Value = 0
 valeur = 0
  
  End Sub

Je te renvoie ton fichier.
 
Bonsoir anthony

Cette variable que j'ai crée iRef(i pour integer et Ref pour référence), sert de facon logique dans ton code. Utiliser cells au lieu de range est parfois un avantage. Cells marche comme ceci: Cells(Ligne#,Colonne#). Comme par exemple dans:

Code:
For iRef = 5 To 27
        If Cells(iRef, 7 + iRef).Value >= 0 Then
           Cells(iRef, 6 + iRef).Value = Cells(iRef, 6 + iRef).Value - Cells(iRef, 7 + iRef).Value
    Next iRef

cette portion Cells(iRef, 7 + iRef).Value commence lors du départ de la bouble For a 5. Et avant tu faisait référence a la colonne M soit la 12ieme colonne. Donc 7 + iRef(qui vaut 5 au départ) ....! Tada!!

Si tu as d'autre question ou modifs n'hésite pas.
 
- 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

N
  • Question Question
Réponses
2
Affichages
600
Nono1853
N
N
Réponses
2
Affichages
2 K
N
S
Réponses
4
Affichages
2 K
S
T
Réponses
1
Affichages
483
M
Réponses
10
Affichages
1 K
M
Retour