VBA- Crééer un Récap de Facturation

Enzo_Vautor

XLDnaute Nouveau
Bonsoir,

Mon problème c'est la copie des totaux de plusieur tableaux dans un nouveaux.

j'ai beaucoup d'intérogations sur les tableaux excel qui sont dans insertion tableau a coter de tableaux dynamiques.

J'ai plusieur question a vous soumettre la première question est comment appel ton ce type de tableau dans VBA?

Deuxièmement, peut on en VBA selectionner tous les tableaux en meme temps et et copier leurs totaux dans un autre ?

je vt effectuer cette action car j'ai une fichier excel de facturation à préparer pour mon patron et j'aimerai que ce soit en vba pour qu'il n'y ai pas de copier, de décaler ou d'indirect qui pourrait ne plus fonctionner a cause de mauvaise manpulations.

le fichier se présente de tel sorte que chaque feuille comporte un tableau.

-Je veut que pour chaque feuille commencant par "Calc"
Pour ça j'utilise:

For each sh in ThisWorkbook.Worksheets
If Left(sh.Name, 4) = "Calc" then

-la macro copie dans un tableau intituler "RécapFactTab" situer sur la feuille "RécapFacturation "
les cellules B1 et B2 pour chaqu'une des feuilles qui commence par calc ( les cellules B1 et B2 correspondent respectivement au nom d'une entreprise et d'un chantier) :

??????????????
grosse interogation je dois utiliser select case ou simple copie je n'y arrive pas.

- Deplus je veut que sur la même ligne apparaissent aussi la ligne de total des tableaux correspondant

J'ai esseyer ca
Sub Macro1()
Dim sh As Worksheet
For Each sh In Worksheets
If sh.FilterMode Then sh.ShowAllData
Next sh
With Sheets("RécapFacturation").ListObjects("RécapFactTab")
.ShowTotals = False
' Pour suprimmer les données et les réecrire après
For Each sh In Worksheets
If Left(sh.Name, 4) = "calc" Then
' les tableaux a selectionner serait dans des feuilles dont les noms commenceraient par "Calc"
Select Case sh.Name
Case "RécapFacturation"
For lg = 3 To sh.Range("A65536").End(xlUp).Row
lgS = .UsedRange.Rows.Count + 1
.Cells(lgS, 1) = sh.Cells(1, 2)
.Cells(lgS, 3) = sh.Cells(lg, 11)
.Cells(lgS, 4) = sh.Cells(lg, 12)
.Cells(lgS, 5) = sh.Cells(lg, 13)
.Cells(lgS, 6) = sh.Cells(lg, 14)
.Cells(lgS, 7) = sh.Cells(lg, 15)
.Cells(lgS, 8) = sh.Cells(lg, 16)
.Cells(lgS, 9) = sh.Cells(lg, 17)
.Cells(lgS, 10) = sh.Cells(lg, 18)
.Cells(lgS, 10) = sh.Cells(lg, 18)
.Cells(lgS, 10) = sh.Cells(lg, 18)
.Cells(lgS, 10) = sh.Cells(lg, 18)
.Cells(lgS, 10) = sh.Cells(lg, 18)
.Cells(lgS, 10) = sh.Cells(lg, 18)
.Cells(lgS, 10) = sh.Cells(lg, 18)

Next

Case Else
End Select
End If
Next sh
End With
End Sub



s'il vousplait je n'y arrive plus
 

Pièces jointes

  • Classeurtest.xlsm
    217.1 KB · Affichages: 106
  • Classeurtest.xlsm
    217.1 KB · Affichages: 120
  • Classeurtest.xlsm
    217.1 KB · Affichages: 114

Bebere

XLDnaute Barbatruc
Re : VBA- Crééer un Récap de Facturation

bonjour Enzo
ton code revu et corrigé
supprime le cadre bleu pour commencer à la ligne 3
Code:
Sub Macro1()
    Dim sh As Worksheet, Lg As Long, Lgs As Long
    Application.ScreenUpdating = False
    With Sheets("RécapFacturation")
        'supprime les données
        .Range("A3:R" & .Range("A65536").End(xlUp).Row + 1).ClearContents
        For Each sh In Worksheets
            If sh.FilterMode Then sh.ShowAllData
            If Left(sh.Name, 4) = "Calc" Then
                For Lg = 6 To sh.Range("A65536").End(xlUp).Row
                    If sh.Cells(Lg, 12) > 0 Then
                        Lgs = .Range("A65536").End(xlUp).Row + 1
                        .Cells(Lgs, 1) = sh.Cells(1, 2)
                        .Cells(Lgs, 2) = sh.Cells(2, 2)
                        .Cells(Lgs, 3) = sh.Cells(Lg, "J")
                        .Cells(Lgs, 4) = sh.Cells(Lg, "L")
                        .Cells(Lgs, 5) = sh.Cells(Lg, "M")
                        .Cells(Lgs, 6) = sh.Cells(Lg, "O")
                        .Cells(Lgs, 7) = sh.Cells(Lg, "P")
                        .Cells(Lgs, 8) = sh.Cells(Lg, "Q")
                        .Cells(Lgs, 9) = sh.Cells(Lg, "R")
                        .Cells(Lgs, 10) = sh.Cells(Lg, "S")
                        .Cells(Lgs, 11) = sh.Cells(Lg, "U")
                        .Cells(Lgs, 12) = sh.Cells(Lg, "V")
                        .Cells(Lgs, 13) = sh.Cells(Lg, "W")
                        .Cells(Lgs, 14) = sh.Cells(Lg, "X")
                        .Cells(Lgs, 15) = sh.Cells(Lg, "Y")
                        .Cells(Lgs, 16) = sh.Cells(Lg, "Z")
                        .Cells(Lgs, 17) = sh.Cells(Lg, "AA")
                        .Cells(Lgs, 18) = sh.Cells(Lg, "AB")
                    End If
                Next
            End If
        Next sh
        Application.ScreenUpdating = True
    End With
End Sub
 

Enzo_Vautor

XLDnaute Nouveau
Re : VBA- Crééer un Récap de Facturation

Tout d'abord merci de ton attention Bebere mais ce code est faux celui que tu as coriger... il fonctionne très bien mais me recopie un récap de toutes les facture de chaque chantier hors comme je l'ai dis plustôt ce que j'aimerai

c'est just pouvoir récuperer la dernière ligne
celle du total du tableau et la je n'y arrive pas du tout
 

Statistiques des forums

Discussions
298 001
Messages
1 965 024
Membres
200 809
dernier inscrit
Ksiba