• Initiateur de la discussion Initiateur de la discussion Claudy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Claudy

Guest
Bonjour à tous…
J’ai un tableau facturier :
Voir en annexe,
Comment, par macro, détailler en sous tableaux, par frais généraux… ???
Mon tableau n’est qu’un exemple, les frais généraux étant répartis en 15 catégories différentes, sur plusieurs centaines de lignes dans mon facturier.
Merci d’avance
Claudy
 

Pièces jointes

Re bonjour...
(Apres avoir résolu mes prob de téléchargement!!)
merci, je connaissais les filtres, simples ou élaborés, mais j'aurais voulu automatiser par macro, plutot que de faire cela à la "mimine"
A+
Claudy
 
Bonjour,
Je ne peux pas télécharger ton fichier (je récupérerai plus trad download express) mais vois côté tableaux croiséx dynamiquex : cela devrait répondre à ta question en mettant frais généraux en page.
Chris
 
Bonjour,

On peut le faire avec formules, mais ça risque d'être un fichier très lourd.
Fonction INDEX EQUIV avec concaténation de 2 critères de recherche
=SI($A6="";"";INDEX(fournisseur;EQUIV($B$1&$A6;type&nb;0)))
(Formule matricielle)

Pour avoir l'ordre chrono : trier les données de la 1ère feuille.
 

Pièces jointes

Bon dimanche à tous...
me revoila, avec un peu de retard:
J'ai travailler sur mes frais généraux et sur une macro dans mon classeur, avec la procédure Select case que j'utilise pour la première fois!
Et bien , ca va po!
Y a t il une bonne âme pour regarder à ma procédure vba!
Merci d'avance Claudy



Sub testFraisGeneraux()
Dim cel As Variant
For Each cel In Range("B2:B50")
Select Case cel.Value
Case cel.Value = Range("I2").Value 'Frais généraux1

Range("H1").End(xlDown).Offset(1, 0) = cel.Offset(0, 3).Value
Range("I1").End(xlDown).Offset(1, 0) = cel.Offset(0, 1).Value
Range("J1").End(xlDown).Offset(1, 0) = cel.Offset(0, 2).Value

Case cel = Range("M2").Value 'Frais généraux2

Range("L1").End(xlDown).Offset(1, 0) = cel.Offset(0, 3).Value
Range("M1").End(xlDown).Offset(1, 0) = cel.Offset(0, 1).Value
Range("N1").End(xlDown).Offset(1, 0) = cel.Offset(0, 2).Value

Case cel = Range("Q2").Value 'Frais généraux3
Range("P1").End(xlDown).Offset(1, 0) = cel.Offset(0, 3).Value
Range("Q1").End(xlDown).Offset(1, 0) = cel.Offset(0, 1).Value
Range("R1").End(xlDown).Offset(1, 0) = cel.Offset(0, 2).Value


End Select
Next
End Sub
 
Salut Claudy. OK, je vois que tu tenais à ton tableau. Voici donc ta macro modifiée pour faire ça correctement. Bon travail

Sub TestFraisGeneraux()
Dim PlageTotale As Range, Cel As Range, Dest As Range
Dim FG1 As Range, FG2 As Range, FG3 As Range
With Worksheets("Feuil1")
Set PlageTotale = .Range("B2", .Range("F1").End(xlDown))
Set FG1 = .Range("H3")
Set FG2 = .Range("L3")
Set FG3 = .Range("P3")
End With

Application.ScreenUpdating = False
For Each Cel In PlageTotale
Select Case Cel.Value
Case Range("I2").Value 'Frais généraux1
Set Dest = FG1
Set FG1 = FG1.Offset(1, 0)
Case Range("M2").Value 'Frais généraux2
Set Dest = FG2
Set FG2 = FG2.Offset(1, 0)
Case Range("Q2").Value 'Frais généraux3
Set Dest = FG3
Set FG3 = FG3.Offset(1, 0)
End Select

If Not Dest Is Nothing Then
With Dest
.Value = Cel.Offset(0, 3).Value
.Offset(0, 1).Value = Cel.Offset(0, 1).Value
.Offset(0, 2).Value = Cel.Offset(0, 2).Value
End With
Set Dest = Nothing
End If
Next Cel
Application.ScreenUpdating = True
End Sub
 
Bonsoir Ti...
C'est SUPER!!!
Tip top ce qu'il me fallait.
Il va falloir maintenant que j'adapte( 15 sous tableaux frais généraux, pour quelques milliers de factures)
Grand merci,
Bonne fin de WE.
Claudy
🙂)
Ci joint le fichier avec les deux méthodes:filtres et macro
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour