julien974
XLDnaute Occasionnel
Bonjour le forum,
J'ai conçu une macro pour effectuer mon classement ABC de produits ds mon stock.
Je débute en VBA mais j'ai quand même réussi à faire quelque chose qui tourne. Mais ma macro ne fonctionne plus alors que je n'ai rien touché, c'est à n'y rien comprendre. Je vous mets le code ci dessous.
De plus pensez vous qu'il serait possible d'améliorer ce code pour une plus grande exécution de la macro?
	
	
	
	
	
		
Merci de votre aide,
Juli3n974
	
		
			
		
		
	
				
			J'ai conçu une macro pour effectuer mon classement ABC de produits ds mon stock.
Je débute en VBA mais j'ai quand même réussi à faire quelque chose qui tourne. Mais ma macro ne fonctionne plus alors que je n'ai rien touché, c'est à n'y rien comprendre. Je vous mets le code ci dessous.
De plus pensez vous qu'il serait possible d'améliorer ce code pour une plus grande exécution de la macro?
		HTML:
	
	
	Sub rotations()
    
    
   'ROTATIONS
   'J'aimerai ici supprimer tout sauf la première ligne
    Sheets("Maj rot.").Select
    Rows("2:2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
   
   'Copier coller des colonnes de données dans le feuille d'analyse
    Sheets("Base EP").Select 'problème à ce niveau "Execution interrompue"
    Columns("A:G").Select
    Selection.Copy
    Sheets("Maj rot.").Select
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    
    'Tri décroissant
    
    ActiveSheet.UsedRange.Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Sort Key1:=Range("G2"), Order1:=xlDescending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal
    
    'Classement ABC (Loi de PARETO 80/20)
    
    Range("H2").Select
    Range("H2").FormulaR1C1 = "=VLOOKUP(RC[-5],MATRICECONTENANTS,4,0)"
    Range("H2").Offset(0, 1).FormulaR1C1 = "=RC[-4]/RC[-1]"
    Range("H2:I" & Range("A65536").End(xlUp).Row).FillDown
    
    ActiveSheet.UsedRange.Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Sort Key1:=Range("I2"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
        
    Range("J2").FormulaR1C1 = "=RC[-1]"
    Range("J3").FormulaR1C1 = "=RC[-1]+R[-1]C"
    Range("J3:J" & Range("A65536").End(xlUp).Row).FillDown
    Dim Ligne As Long
    Ligne = ActiveSheet.Range("A65536").End(xlUp).Row + 1
    ActiveSheet.Range("I" & Ligne).FormulaR1C1 = "=SUM(R2C:R[-1]C)"
    ActiveSheet.Range("I" & Ligne).Name = "hihi"
    
    Range("K2").FormulaR1C1 = "=RC[-1]/hihi"
    Range("K2:K" & Range("A65536").End(xlUp).Row).FillDown
    
    Dim Ligne2 As Long
    Ligne2 = ActiveSheet.Range("A65536").End(xlUp).Row + 1
    ActiveSheet.Range("E" & Ligne2).FormulaR1C1 = "=COUNTA(R2C:R[-1]C)-1"
    ActiveSheet.Range("E" & Ligne2).Name = "haha"
    
    Range("L2").FormulaR1C1 = "=1/haha"
    Range("L2:L" & Range("A65536").End(xlUp).Row).FillDown
    
    Range("M2").FormulaR1C1 = "=RC[-1]"
    Range("M3").FormulaR1C1 = "=RC[-1]+R[-1]C"
    Range("M3:M" & Range("F65536").End(xlUp).Row).FillDown
    
    Range("N2").FormulaR1C1 = "=IF(RC[-3]="""","""",IF(RC[-3]<=0.8,""A"",IF(RC[-3]>=0.95,""C"",""B"")))"
    Range("N2:N" & Range("A65536").End(xlUp).Row).FillDown
    
    End SubMerci de votre aide,
Juli3n974
 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		