guiguigui69008
XLDnaute Nouveau
Bonjour, je vous écris car j'ai un petit soucis, avec une macro.
Cette macro a été créée par mon prédécesseur, elle sert à créer une synthèse de stocks. dans un première feuille,a chaque entrée de stock, on créé une ligne. puis la synthèses analyses ces lignes, tri les pièces, supprime les doublons en additionnant les quantités, et effectue une mise en forme. jusque là tout va bien. le problème c'est que la macro me fait une mise en forme que je ne vois pas dans le code, et qui m'embête assez. voila le code. je vous explique le problème après:
	
	
	
	
	
		
Vers la fin du code, un paragraphe s'intitule "'définition de la couleur et du quadrillage des cellules remplies"
ce paragraphe me met 3 groupe de colonne en couleur, comme indiqué dans le code. Les colonnes 1 à 6 d'une couleur, 7 à 10 d'une autre couleur, et 11à 15 d'une dernière couleur. le problème est que la 16ème Colonne, est coloré en Orange, et que toutes les lignes situé en dessous de mon tableau (de la ligne 1059 à la ligne 64558) sont aussi colorées en orange sur les colonnes 1 à 16 ...
comprenez vous pourquoi? j'ai parcouru le programme, mais je n'ai pas compris pourquoi cela arrivait.
Merci d'avance.
Guillaume
	
		
			
		
		
	
				
			Cette macro a été créée par mon prédécesseur, elle sert à créer une synthèse de stocks. dans un première feuille,a chaque entrée de stock, on créé une ligne. puis la synthèses analyses ces lignes, tri les pièces, supprime les doublons en additionnant les quantités, et effectue une mise en forme. jusque là tout va bien. le problème c'est que la macro me fait une mise en forme que je ne vois pas dans le code, et qui m'embête assez. voila le code. je vous explique le problème après:
		Code:
	
	
	Sub Synthese_stocks()
'Génération de la fiche des stocks partagés
Dim Rep As Integer
    
    Rep = MsgBox("Voulez-vous effacer les données actuelles et créer la nouvelle fiche des stocks ?", vbYesNo + vbQuestion, "Attention !")
    If Rep = vbYes Then
    'réponse positive
    
    
Application.ScreenUpdating = False
    'effacement des données précédentes
    Worksheets("synthese des stocks").Range("A6:J65000").ClearContents
    Worksheets("synthese des stocks").Range("A6:J65000").Select
    
  
    
    
    'remise a zéro du format des cellules
    Range("A6:P65000").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    With Selection.Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    
    'remise a zéro de l'alignement des cellules
    Range("A6:A65000").Select
    With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Range("B6:B65000").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Range("C6:C65000").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Range("D6:D65000").Select
    With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Range("E6:E65000").Select
    With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Range("F6:I65000").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Range("J6:N65000").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Range("O6:O65000").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    
    'Nombre de lignes à analyser
    Message1 = "Vous devez indiquer ici le nombre de lignes de la feuille 'gestion des stocks MCE-5' que vous souhaitez analyser"
    Titre1 = "Veuillez indiquer le nombre de lignes à analyser"
    nivdef = "2000"
    nivaff = InputBox(Message1, Titre1, nivdef)
 'Numéro de ligne initial dans stock DE
 j = 6
For i = 9 To nivaff
'référence MCE-5 et révision
If Sheets("gestion des stocks MCE-5").Cells(i, 5).Value <> "" And Sheets("gestion des stocks MCE-5").Cells(i, 6).Value <> "" And Sheets("gestion des stocks MCE-5").Cells(i, 10).Value <> "" Then
       
        'référence mce-5
        Sheets("synthese des stocks").Cells(j, 1).Value = Sheets("gestion des stocks MCE-5").Cells(i, 5).Value
        'révision
        Sheets("synthese des stocks").Cells(j, 2).Value = Sheets("gestion des stocks MCE-5").Cells(i, 6).Value
        'Référence 2
        Sheets("synthese des stocks").Cells(j, 3).Value = Sheets("gestion des stocks MCE-5").Cells(i, 7).Value
        'désignation réduite
        Sheets("synthese des stocks").Cells(j, 4).Value = Sheets("gestion des stocks MCE-5").Cells(i, 10).Value
        'désignation complémentaire
        Sheets("synthese des stocks").Cells(j, 5).Value = Sheets("gestion des stocks MCE-5").Cells(i, 11).Value
        'type de pièce
        Sheets("synthese des stocks").Cells(j, 6).Value = Sheets("gestion des stocks MCE-5").Cells(i, 12).Value
        'quantité stock mce-5
        Sheets("synthese des stocks").Cells(j, 7).Value = Sheets("gestion des stocks MCE-5").Cells(i, 42).Value
        'quantité stock multi DE
        Sheets("synthese des stocks").Cells(j, 8).Value = Sheets("gestion des stocks MCE-5").Cells(i, 43).Value
        'quantité stock mono DE
        Sheets("synthese des stocks").Cells(j, 9).Value = Sheets("gestion des stocks MCE-5").Cells(i, 44).Value
        'quantité stock mono certam
        Sheets("synthese des stocks").Cells(j, 10).Value = Sheets("gestion des stocks MCE-5").Cells(i, 45).Value
        
        j = j + 1
End If
Next
'Premier tri
    ActiveWorkbook.Worksheets("synthese des stocks").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("synthese des stocks").AutoFilter.Sort.SortFields.Add _
        Key:=Range("A5"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("synthese des stocks").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
    
'Suppression des doublons
For c = 6 To nivaff
If Sheets("synthese des stocks").Cells(c, 1).Value <> "" Then
    If Sheets("synthese des stocks").Cells(c, 1).Value = Sheets("synthese des stocks").Cells(c + 1, 1).Value And Sheets("synthese des stocks").Cells(c, 2).Value = Sheets("synthese des stocks").Cells(c + 1, 2).Value And Sheets("synthese des stocks").Cells(c, 4).Value = Sheets("synthese des stocks").Cells(c + 1, 4).Value And Sheets("synthese des stocks").Cells(c, 5).Value = Sheets("synthese des stocks").Cells(c + 1, 5).Value Then
    Sheets("synthese des stocks").Cells(c, 7).Value = Sheets("synthese des stocks").Cells(c + 1, 7).Value + Sheets("synthese des stocks").Cells(c, 7).Value
    
    Worksheets("synthese des stocks").Range(Cells(c + 1, 1), Cells(c + 1, 10)).Select
    Selection.Delete Shift:=xlUp
    
    c = c - 1
    
    End If
End If
Next
'Second tri
    ActiveWorkbook.Worksheets("synthese des stocks").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("synthese des stocks").AutoFilter.Sort.SortFields.Add _
        Key:=Range("C5"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("synthese des stocks").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
'Suppression des doublons
For c = 6 To nivaff
If Sheets("synthese des stocks").Cells(c, 1).Value <> "" Then
    If Sheets("synthese des stocks").Cells(c, 1).Value = Sheets("synthese des stocks").Cells(c + 1, 1).Value And Sheets("synthese des stocks").Cells(c, 2).Value = Sheets("synthese des stocks").Cells(c + 1, 2).Value And Sheets("synthese des stocks").Cells(c, 4).Value = Sheets("synthese des stocks").Cells(c + 1, 4).Value And Sheets("synthese des stocks").Cells(c, 5).Value = Sheets("synthese des stocks").Cells(c + 1, 5).Value Then
    Sheets("synthese des stocks").Cells(c, 7).Value = Sheets("synthese des stocks").Cells(c + 1, 7).Value + Sheets("synthese des stocks").Cells(c, 7).Value
    
    Worksheets("synthese des stocks").Range(Cells(c + 1, 1), Cells(c + 1, 10)).Select
    Selection.Delete Shift:=xlUp
    
    c = c - 1
    
    End If
End If
Next
'Troisième tri
    ActiveWorkbook.Worksheets("synthese des stocks").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("synthese des stocks").AutoFilter.Sort.SortFields.Add _
        Key:=Range("B5"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("synthese des stocks").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
'Suppression des doublons
For c = 6 To nivaff
If Sheets("synthese des stocks").Cells(c, 1).Value <> "" Then
    If Sheets("synthese des stocks").Cells(c, 1).Value = Sheets("synthese des stocks").Cells(c + 1, 1).Value And Sheets("synthese des stocks").Cells(c, 2).Value = Sheets("synthese des stocks").Cells(c + 1, 2).Value And Sheets("synthese des stocks").Cells(c, 4).Value = Sheets("synthese des stocks").Cells(c + 1, 4).Value And Sheets("synthese des stocks").Cells(c, 5).Value = Sheets("synthese des stocks").Cells(c + 1, 5).Value Then
    Sheets("synthese des stocks").Cells(c, 7).Value = Sheets("synthese des stocks").Cells(c + 1, 7).Value + Sheets("synthese des stocks").Cells(c, 7).Value
    
    Worksheets("synthese des stocks").Range(Cells(c + 1, 1), Cells(c + 1, 10)).Select
    Selection.Delete Shift:=xlUp
    
    c = c - 1
    
    End If
End If
Next
'tri final par référence mce-5
    ActiveWorkbook.Worksheets("synthese des stocks").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("synthese des stocks").AutoFilter.Sort.SortFields.Add _
        Key:=Range("A5"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("synthese des stocks").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
'Suppression des doublons
For c = 6 To nivaff
If Sheets("synthese des stocks").Cells(c, 1).Value <> "" Then
    If Sheets("synthese des stocks").Cells(c, 1).Value = Sheets("synthese des stocks").Cells(c + 1, 1).Value And Sheets("synthese des stocks").Cells(c, 2).Value = Sheets("synthese des stocks").Cells(c + 1, 2).Value And Sheets("synthese des stocks").Cells(c, 3).Value = Sheets("synthese des stocks").Cells(c + 1, 3).Value And Sheets("synthese des stocks").Cells(c, 4).Value = Sheets("synthese des stocks").Cells(c + 1, 4).Value Then
    Sheets("synthese des stocks").Cells(c, 7).Value = Sheets("synthese des stocks").Cells(c + 1, 7).Value + Sheets("synthese des stocks").Cells(c, 7).Value
    
    Worksheets("synthese des stocks").Range(Cells(c + 1, 1), Cells(c + 1, 10)).Select
    Selection.Delete Shift:=xlUp
    
    c = c - 1
    
    End If
End If
Next
'Calcul du nombre d'articles
lignevide = Worksheets("synthese des stocks").Range("A12000").End(xlUp).Row + 1
    
MsgBox "Calcul de la fiche terminé" & Chr(13) & Chr(10) & Chr(10) & "Nombre d'articles = " & lignevide - 6
t = lignevide - 1
    
    
'définition de la couleur et du quadrillage des cellules remplies
    Worksheets("synthese des stocks").Range(Cells(6, 1), Cells(t, 6)).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = 0.799981688894314
        .PatternTintAndShade = 0
    End With
    Worksheets("synthese des stocks").Range(Cells(6, 7), Cells(t, 10)).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent3
        .TintAndShade = 0.799981688894314
        .PatternTintAndShade = 0
    End With
    Worksheets("synthese des stocks").Range(Cells(6, 11), Cells(t, 15)).Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent4
        .TintAndShade = 0.799981688894314
        .PatternTintAndShade = 0
    End With
'bordures
    Worksheets("synthese des stocks").Range(Cells(6, 1), Cells(t, 16)).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    End If
'Si on a pas une PAP alors on barre la case n° de lot
For d = 6 To nivaff
If Sheets("synthese des stocks").Cells(d, 1).Value <> "" Then
    If Sheets("synthese des stocks").Cells(d, 6).Value <> "PAP" Then
        
    Worksheets("synthese des stocks").Cells(d, 12).Select
    With Selection.Borders(xlDiagonalDown)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlDiagonalUp)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    
    End If
    
End If
Next
'inutile
Worksheets("synthese des stocks").Range("A1").Select
Application.ScreenUpdating = True
End Sub
	Vers la fin du code, un paragraphe s'intitule "'définition de la couleur et du quadrillage des cellules remplies"
ce paragraphe me met 3 groupe de colonne en couleur, comme indiqué dans le code. Les colonnes 1 à 6 d'une couleur, 7 à 10 d'une autre couleur, et 11à 15 d'une dernière couleur. le problème est que la 16ème Colonne, est coloré en Orange, et que toutes les lignes situé en dessous de mon tableau (de la ligne 1059 à la ligne 64558) sont aussi colorées en orange sur les colonnes 1 à 16 ...
comprenez vous pourquoi? j'ai parcouru le programme, mais je n'ai pas compris pourquoi cela arrivait.
Merci d'avance.
Guillaume