Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Condenser les données d'un tableau

FCMLE44

XLDnaute Impliqué
Supporter XLD
Bonjour

Etape 2 de mon projet

Les onglets se créant automatiquement en fonction des données de la feuille DSN, je souhaite, pour chaque onglet créé condenser les données obtenues.

Feuille TC :
En ligne 4 colonne AN, je souhaite condenser les données se trouvant en colonne AD à AK (cf exemple fichier joint).

Lors de la mise à jour de chaque onglet via macro Balaye1, il se mettrait à jour automatiquement

Cordialement
 

Pièces jointes

  • DSN ESSAI.xls
    94 KB · Affichages: 51

FCMLE44

XLDnaute Impliqué
Supporter XLD
Merci

Je suis sincèrement désolé d'être un boulet mais je débute et je nage un peu.
Je vous demande de me pardonner et de rester abonner à cette discussion

Ci-joint le fichier modifié
Je reste à votre disposition en cas de besoin
 

Pièces jointes

  • GigogneFCMLE44v2(1).xlsm
    145.8 KB · Affichages: 31

Dranreb

XLDnaute Barbatruc
Je n'en a plus besoin à priori. Continuez à renseigner la table pour les autres colonnes aussi.
Faites en sorte que tout soit comme dans la feuille DSN: en texte (sauf le numéro de colonne dans le récapitulatif, bien sûr)
 
Dernière édition:

FCMLE44

XLDnaute Impliqué
Supporter XLD
Yes j'ai compris. Ca marche.
Par contre j'ai un souci quand je supprime les onglets hors table et récap, et que je me mets des données réelles, il beugue
VB:
With ThisWorkbook.Worksheets: For F = FSiret1.Index To .Count: .Item(F).Name = .Item(F).CodeName: Next F: End With
F = FSiret1.Index - 1
???
 

Dranreb

XLDnaute Barbatruc
Ne supprimez plus de feuille à l'avenir.
Allez sur l'objet Worksheet représentant la 1ère des feuilles. Changez sa 1ère propriété (Name) en FSIRET1

On ne peut vraiment pas éviter de l'envoyer à 2 endroits différents ?
 

Dranreb

XLDnaute Barbatruc
Il vaudrait vraiment mieux éviter de faire ça. Un de ces jour vous voudrez peut être totaliser tout ça horizontalement et vous ne vous rappellerez plus que certaines choses seront ainsi comptées deux fois.
 

Dranreb

XLDnaute Barbatruc
Il y aurait néanmoins possibilité de spécifier deux numéros de colonnes:
Dans les déclaration ajoutez un petit tableau, ColsRéc()
À l'initialisation du dico :
VB:
For LRc = 1 To UBound(TRc, 1)
   DicRécap(TRc(LRc, 1) & "|" & TRc(LRc, 2) & "|" & TRc(LRc, 3)) = Array(TRc(LRc, 4), TRc(LRc, 5)): Next LRc
À la ventilation :
VB:
            CléRécap = Détail(30) & "|" & Détail(31) & "|" & Détail(33)
            If DicRécap.Exists(CléRécap) Then
               ColsRéc = DicRécap(CléRécap)
               C = ColsRéc(0): If C > 1 Then TRc(LRc, C) = TRc(LRc, C) + Détail(38)
               C = ColsRéc(1): If C > 1 Then TRc(LRc, C) = TRc(LRc, C) + Détail(38)
               End If
 

FCMLE44

XLDnaute Impliqué
Supporter XLD
Lorsque je mets ce code
VB:
 CléRécap = Détail(30) & "|" & Détail(31) & "|" & Détail(33)
            If DicRécap.Exists(CléRécap) Then
               ColsRéc = DicRécap(CléRécap)
               C = ColsRéc(0): If C > 1 Then TRc(LRc, C) = TRc(LRc, C) + Détail(38)
               C = ColsRéc(1): If C > 1 Then TRc(LRc, C) = TRc(LRc, C) + Détail(38)
               End If

Le système bugge.
Erreur de compilation
Variable non définie
 

Dranreb

XLDnaute Barbatruc
Ajoutez la déclaration de ColRéc().
Pour les formats, profitez de la boucle For LRc = 4 To LRc Step 5 tout en bas qui met les formules.
Aidez vous de l'enregistreur de macro pour les modèles, moi je suis fatigué.
 

FCMLE44

XLDnaute Impliqué
Supporter XLD
J'ai créé cette macro avec le générateur de macros pour mon format
VB:
Sub Format()
'
' Format Macro
'
 
'
    Range("A1:A4,B1:H1,B4:H4").Select
    Range("H4").Activate
    Selection.Font.Bold = True
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent4
        .TintAndShade = 0.599993896298105
        .PatternTintAndShade = 0
    End With
    Range("B3:H3,E2").Select
    Range("E2").Activate
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark2
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -4.99893185216834E-02
        .PatternTintAndShade = 0
    End With
    Range("A1:H4").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
    Range("A1").Select
    With Selection.Font
        .Name = "Calibri"
        .Size = 14
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With
End Sub

Lorsque je le mets avant la boucle, j'obtiens un débogage
 

Dranreb

XLDnaute Barbatruc
En fait y a qu'une chose à tirer de tout ce fatras : ExpressionRange.Font.Bold = True pour mettre en gras.
Pour mettre en jaune orange pâle je fais : ExpressionRange.Interior.Color = RGB(255, 240, 186)
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…