luno123
XLDnaute Occasionnel
Bonjour tout le monde,
Ci-dessous mon code. J'ai un petit souci avec les colonnes nom et prénoms. La largeur de ces 2 colonnes ne permet pas aux contenus de s'afficher correctement. Donc une mise en forme automatique de ces 2 colonnes s'impose. J'ai trouvé un truc: en mettant un espace entre les guillemets et les mots "nom" ou "prénoms" comme vous pouvez le constater sur mon code.
Pensez-vous à une autre méthode plus esthétique?
Merci d'avance.
Luno
Sub AffecterSalariés()
Dim Collec As New Collection
Dim Cell As Range
Dim ITM As Byte
Application.ScreenUpdating = False
With Sheets("Salariés")
For Each Cell In .Range("B4:B" & .Range("B65536").End(xlUp).Row)
On Error Resume Next
Collec.Add (Cell), CStr(Cell)
On Error GoTo 0
Next
For ITM = 1 To Collec.Count
On Error Resume Next
Application.DisplayAlerts = False
Sheets(Collec(ITM)).Delete
Application.DisplayAlerts = True
On Error GoTo 0
Sheets.Add
ActiveSheet.Name = Collec(ITM)
Range("A1") = " Nom "
Range("B1") = " Prénoms "
Range("C1") = "Salaire Brut"
Range("D1") = "Chges Pat."
Range("A1: D1").Interior.ColorIndex = 16
Range("F1:F1").Interior.ColorIndex = 8
Range("F1") = "Coût total des salaires"
Columns("A:C").EntireColumn.AutoFit
Columns("F:F").EntireColumn.AutoFit
Next
For Each Cell In .Range("B4:B" & .Range("B65536").End(xlUp).Row)
Range(Cell.Offset(0, 2), Cell.Offset(0, 3)).Copy Destination:=Sheets(Cell.Value).Range("A" & Sheets(Cell.Value).Range("A65536").End(xlUp).Row + 1)
Cell.Offset(0, 6).Copy Destination:=Sheets(Cell.Value).Range("C" & Sheets(Cell.Value).Range("A65536").End(xlUp).Row)
Cell.Offset(0, 7).Copy Destination:=Sheets(Cell.Value).Range("D" & Sheets(Cell.Value).Range("A65536").End(xlUp).Row)
Sheets(Cell.Value).Range("G1") = Sheets(Cell.Value).Range("G1") + Cell.Offset(0, 6) + Cell.Offset(0, 7)
Next
End With
End Sub
Ci-dessous mon code. J'ai un petit souci avec les colonnes nom et prénoms. La largeur de ces 2 colonnes ne permet pas aux contenus de s'afficher correctement. Donc une mise en forme automatique de ces 2 colonnes s'impose. J'ai trouvé un truc: en mettant un espace entre les guillemets et les mots "nom" ou "prénoms" comme vous pouvez le constater sur mon code.
Pensez-vous à une autre méthode plus esthétique?
Merci d'avance.
Luno
Sub AffecterSalariés()
Dim Collec As New Collection
Dim Cell As Range
Dim ITM As Byte
Application.ScreenUpdating = False
With Sheets("Salariés")
For Each Cell In .Range("B4:B" & .Range("B65536").End(xlUp).Row)
On Error Resume Next
Collec.Add (Cell), CStr(Cell)
On Error GoTo 0
Next
For ITM = 1 To Collec.Count
On Error Resume Next
Application.DisplayAlerts = False
Sheets(Collec(ITM)).Delete
Application.DisplayAlerts = True
On Error GoTo 0
Sheets.Add
ActiveSheet.Name = Collec(ITM)
Range("A1") = " Nom "
Range("B1") = " Prénoms "
Range("C1") = "Salaire Brut"
Range("D1") = "Chges Pat."
Range("A1: D1").Interior.ColorIndex = 16
Range("F1:F1").Interior.ColorIndex = 8
Range("F1") = "Coût total des salaires"
Columns("A:C").EntireColumn.AutoFit
Columns("F:F").EntireColumn.AutoFit
Next
For Each Cell In .Range("B4:B" & .Range("B65536").End(xlUp).Row)
Range(Cell.Offset(0, 2), Cell.Offset(0, 3)).Copy Destination:=Sheets(Cell.Value).Range("A" & Sheets(Cell.Value).Range("A65536").End(xlUp).Row + 1)
Cell.Offset(0, 6).Copy Destination:=Sheets(Cell.Value).Range("C" & Sheets(Cell.Value).Range("A65536").End(xlUp).Row)
Cell.Offset(0, 7).Copy Destination:=Sheets(Cell.Value).Range("D" & Sheets(Cell.Value).Range("A65536").End(xlUp).Row)
Sheets(Cell.Value).Range("G1") = Sheets(Cell.Value).Range("G1") + Cell.Offset(0, 6) + Cell.Offset(0, 7)
Next
End With
End Sub
Dernière édition: