luno123
XLDnaute Occasionnel
Bonjour,
J'ai une macro ci dessous qui fonctionne bien pour l'instant.
Sub RépartirImmo()
Dim Collec As New Collection
Dim Cell As Range
Dim ITM As Byte
Application.ScreenUpdating = False
With Sheets("IMMO")
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") = "Désignation du bien"
Range("B1") = "Numéro Compte"
Range("C1") = "Montant Amortissements"
Range("A1:C1").Interior.ColorIndex = 13
Range("E1") = "Montant total des autres amortissements"
Range("E2") = "Montant total des amortissements des véhicules"
Columns("A:C").EntireColumn.AutoFit
Columns("E:E").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, 11).Copy Destination:=Sheets(Cell.Value).Range("C" & Sheets(Cell.Value).Range("A65536").End(xlUp).Row)
Sheets(Cell.Value).Range("F1") = Sheets(Cell.Value).Range("F1") + Cell.Offset(0, 11)
If Sheets(Cell.Value).Name = "ImmoStructure" Then
Sheets("Frais Structure").Range("C17") = Sheets(Cell.Value).Range("F1") / 1000
ElseIf Sheets(Cell.Value).Name = "ImmoCommercial" Then
Sheets("Frais Commerciaux").Range("C17") = Sheets(Cell.Value).Range("F1") / 1000
ElseIf Sheets(Cell.Value).Name = "ImmoFabrication" Then
Sheets("Frais Fabrication").Range("D16") = Sheets(Cell.Value).Range("F1") / 1000
End If
Next
End With
Application.Goto reference:=Sheets("IMMO").Range("A1"), scroll:=True
End Sub
Je souhaite y apporter quelques critères en plus.
A partir de la feuille "IMMO" (feuille en rouge), je crée (en appuyant sur répartir) 3 feuilles cibles (ImmoStructure, ImmoFabication,ImmoCommercial) où sont réparties les immo en fonction de leur affectation(Cf. colonne B de la feuille IMMO).
Sur chaque nouvelle feuille ainsi créée j'ai pour l'instant le total des amortissements qui est envoyé automatiquement (via la macro) sur 3 autres feuilles en couleur verte sur mon exemple (Frais Structure, Frais Commercial, Frais Fabrication).
Mon souhait est de rajouter un autre critère à ma macro dans les 3 feuilles cibles. Ce critère me permettrait de distinguer, le total des amortissements des véhicules(F2) pour chaque service & le total du reste des autres amortissements(F1).
POUR ËTRE PLUS CLAIR: la somme de la colonne C des feuilles cibles(ImmoStructure, ImmoFabication,ImmoCommercial) devrait être éclatée en 2:
- Une première somme qui ne contient que les montants des immo des véhicules (partie grisée) ayant comme numéro de compte 21820000
- une deuxième somme regroupant tout le reste.
En guise d'illustration, on devrait avoir par exemple pour la feuille ImmoCommercial:
- en cellule F1: 2 614.42 euros
- en F2: 18 598.13 correspondant à la partie grisée.
PS/ Au niveau des 3 feuilles (FraisStructure, FraisFabrication, FraisCommercial), les montants précédement calculés, sont exprimés en Keuros donc divisés par 1000 pour une question d'espace.
Merci d'avance pour votre aide.
J'ai une macro ci dessous qui fonctionne bien pour l'instant.
Sub RépartirImmo()
Dim Collec As New Collection
Dim Cell As Range
Dim ITM As Byte
Application.ScreenUpdating = False
With Sheets("IMMO")
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") = "Désignation du bien"
Range("B1") = "Numéro Compte"
Range("C1") = "Montant Amortissements"
Range("A1:C1").Interior.ColorIndex = 13
Range("E1") = "Montant total des autres amortissements"
Range("E2") = "Montant total des amortissements des véhicules"
Columns("A:C").EntireColumn.AutoFit
Columns("E:E").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, 11).Copy Destination:=Sheets(Cell.Value).Range("C" & Sheets(Cell.Value).Range("A65536").End(xlUp).Row)
Sheets(Cell.Value).Range("F1") = Sheets(Cell.Value).Range("F1") + Cell.Offset(0, 11)
If Sheets(Cell.Value).Name = "ImmoStructure" Then
Sheets("Frais Structure").Range("C17") = Sheets(Cell.Value).Range("F1") / 1000
ElseIf Sheets(Cell.Value).Name = "ImmoCommercial" Then
Sheets("Frais Commerciaux").Range("C17") = Sheets(Cell.Value).Range("F1") / 1000
ElseIf Sheets(Cell.Value).Name = "ImmoFabrication" Then
Sheets("Frais Fabrication").Range("D16") = Sheets(Cell.Value).Range("F1") / 1000
End If
Next
End With
Application.Goto reference:=Sheets("IMMO").Range("A1"), scroll:=True
End Sub
Je souhaite y apporter quelques critères en plus.
A partir de la feuille "IMMO" (feuille en rouge), je crée (en appuyant sur répartir) 3 feuilles cibles (ImmoStructure, ImmoFabication,ImmoCommercial) où sont réparties les immo en fonction de leur affectation(Cf. colonne B de la feuille IMMO).
Sur chaque nouvelle feuille ainsi créée j'ai pour l'instant le total des amortissements qui est envoyé automatiquement (via la macro) sur 3 autres feuilles en couleur verte sur mon exemple (Frais Structure, Frais Commercial, Frais Fabrication).
Mon souhait est de rajouter un autre critère à ma macro dans les 3 feuilles cibles. Ce critère me permettrait de distinguer, le total des amortissements des véhicules(F2) pour chaque service & le total du reste des autres amortissements(F1).
POUR ËTRE PLUS CLAIR: la somme de la colonne C des feuilles cibles(ImmoStructure, ImmoFabication,ImmoCommercial) devrait être éclatée en 2:
- Une première somme qui ne contient que les montants des immo des véhicules (partie grisée) ayant comme numéro de compte 21820000
- une deuxième somme regroupant tout le reste.
En guise d'illustration, on devrait avoir par exemple pour la feuille ImmoCommercial:
- en cellule F1: 2 614.42 euros
- en F2: 18 598.13 correspondant à la partie grisée.
PS/ Au niveau des 3 feuilles (FraisStructure, FraisFabrication, FraisCommercial), les montants précédement calculés, sont exprimés en Keuros donc divisés par 1000 pour une question d'espace.
Merci d'avance pour votre aide.
Pièces jointes
Dernière édition: