Mise en forme venue de nulle part

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:

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
 

guiguigui69008

XLDnaute Nouveau
Re : Mise en forme venue de nulle part

Ci joint le fichier dont je vous parle, la feuille source est la feuille "gestion des stocks", la feuille de destination, "synthèse des stocks" et c'est dans la deuxième feuille, ou plein de cases sont oranges. Faites le test: changer la couleur de remplissage de ce qui est en orange, puis lancer la mise à jour de la synthèse, et la, tout redevient orange!

Merci de votre aide


Nota: je voulais le mettre en PJ, mais vu la limite de fichier acceptée par le site... ba je me suis retrouvé fucked up

Mais bon, voila le liens pour récupérer le fichier :
Partage-Facile : Fichier qr4.10.b02_gestion_des_stocks_testforum.xlsm.html]Partage-Facile : Fichier qr4.10.b02_gestion_des_stocks_testforum.xlsm.html]Partage-Facile
 

guiguigui69008

XLDnaute Nouveau
Re : Mise en forme venue de nulle part

Simplifier? Mon fichier fait 3Mo, un excel avec une macro, ca fait tout de suite plus de 289Ko! c'est la limite qui est dérisoire. mais bref, voila un autre lien sur un autre hebergeur. Puis les pubs, j'en ai eu qu'une, sans AdBlock ni rien.

Télécharger QR4.10.B02 Gestion des stocks TESTforum.xlsm - Envoi, hebergement, partage gratuit et rapide de fichiers avec TeraFiles.net
 

ralph45

XLDnaute Impliqué
Re : Mise en forme venue de nulle part

Bonjour guiguigui69008, bonjour Victor21 ;)

Pas trop le temps de regarder le fichier, mais je me souviens d'une discussion d'il y a quelques mois avec une mise en forme incompréhensible et difficilement modifiable : :mad:
il fallait en fait passer par les styles :p

> Peut-être à voir de ce côté...

A plus !

Edit :
ouala, ouala... https://www.excel-downloads.com/threads/affectation-bordure-impossible.173431/
 
Dernière édition: