Regroupements de plusieurs données dans une seule feuille

Bonjour à tous,

Voici mon problème, j'ai plusieurs feuilles avec des donnés et dans ses feuilles, un récap.

Dans chaque récap de chaque feuille je souhaite tous regrouper en une seule feuille mais dans un modèle bien défini.

Mais dois apparaitre dans cette feuille que les éléments avec montants...

JE suis complètement perdu....

Merci à tous de vos réponse

Help meeeeeeeeeeeeeeeee svp

Aurélie.

bonjour,

voici (incomplet car infos manquantes, libellé,CNA,...)

lancer la macro via alt-F8

Sub conso()
    Dim dl&, dlws&, i&, k& 'long
    Dim uc$, site$, da$       'string
    Dim ws As Worksheet
    Dim debit As Currency, credit As Currency

    With Sheets("feuil1")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        k = dl
        For Each ws In Worksheets
            If ws.Name <> .Name Then
                uc = ws.Range("B10")
                site = Split(ws.Range("B9"), " / ")(1)
                da = ws.Range("D9")
                dlws = ws.Cells(Rows.Count, "L").End(xlUp).Row
                For i = 15 To dlws
                    Select Case ws.Cells(i, "L")
                    Case "", "TOTAL", "TOTAL HT"
                    Case Else
                        debit = ws.Cells(i, "M")
                        credit = ws.Cells(i, "N")
                        If debit <> 0 Or credit <> 0 Then
                            k = k + 1
                            .Cells(k, 3) = uc
                            .Cells(k, 1).Resize(, 2) = site
                            .Cells(k, 5) = ws.Cells(i, "L")
                            .Cells(k, 9) = debit
                            .Cells(k, 10) = credit
                            .Cells(k, 16) = ws.Cells(i, "O")
                            .Cells(k, 15) = da
                        End If
                    End Select
                Next i
            End If
        Next
    End With
End Sub

Super merci beaucoup.

Comment je fais si j'ai des nouvelles feuilles?

Et pour inserer les libéllés?

Merci encore

Aurélie

Encore merci h2so4

Voici mon fichier j'ai un débogage....

6debogage.xlsx (543.18 Ko)

Sub conso()

Dim dl&, dlws&, i&, k& 'long

Dim uc$, site$, da$ 'string

Dim ws As Worksheet

Dim debit As Currency, credit As Currency

With Sheets("feuil1")

dl = .Cells(Rows.Count, 1).End(xlUp).Row

k = dl

For Each ws In Worksheets

If ws.Name <> .Name Then

uc = ws.Range("B10")

Split(ws.Range("B9"), " / ")(1)

da = ws.Range("D9")

dlws = ws.Cells(Rows.Count, "L").End(xlUp).Row

For i = 15 To dlws

Select Case ws.Cells(i, "L")

Case "", "TOTAL", "TOTAL HT"

Case Else

debit = ws.Cells(i, "M")

credit = ws.Cells(i, "N")

If debit <> 0 Or credit <> 0 Then

k = k + 1

.Cells(k, 3) = uc

.Cells(k, 1).Resize(, 2) = site

.Cells(k, 5) = ws.Cells(i, "L")

.Cells(k, 9) = debit

.Cells(k, 10) = credit

.Cells(k, 16) = ws.Cells(i, "O")

.Cells(k, 15) = da

End If

End Select

Next i

End If

Next

End With

End Sub

site = Split(ws.Range("B9"), " / ")(1)

Qui est surligné

et le CNA = Compte général

Je suis tellement épaté de votre talent....

Bonjour,

voici une correction pour le problème mentionné.

Option Explicit
Sub conso()
    Dim dl&, dlws&, i&, k&    'long
    Dim uc$, site$, da$       'string
    Dim ws As Worksheet
    Dim debit As Currency, credit As Currency

    With Sheets("feuil1")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        k = dl
        For Each ws In Worksheets
            If ws.Name <> .Name Then
                uc = ws.Range("B10")
                If InStr(ws.Range("B9"), " / ") > 0 Then
                    site = Split(ws.Range("B9"), " / ")(1)
                Else
                    site = ws.Range("B9")
                End If
                da = ws.Range("D9")
                dlws = ws.Cells(Rows.Count, "L").End(xlUp).Row
                For i = 15 To dlws
                    Select Case ws.Cells(i, "L")
                    Case "", "TOTAL", "TOTAL HT"
                    Case Else
                        debit = ws.Cells(i, "M")
                        credit = ws.Cells(i, "N")
                        If debit <> 0 Or credit <> 0 Then
                            k = k + 1
                            .Cells(k, 3) = uc
                            .Cells(k, 1).Resize(, 2) = Application.Trim(site)
                            .Cells(k, 5) = ws.Cells(i, "L")
                            .Cells(k, 9) = debit
                            .Cells(k, 10) = credit
                            .Cells(k, 16) = ws.Cells(i, "O")
                            .Cells(k, 15) = da
                        End If
                    End Select
                Next i
            End If
        Next
    End With
End Sub

pour le reste où/comment puis-je trouver le CNA et le libellé correspondant à la ligne ajoutée ?

Le libéllé est dans chaque ligne = nature de la dépense et le CNA est égale au compte générale.

Encore MErci

Aurélie

j'abuse mais...je souhaite également lorsque = 0.00€ au débit comme au crédit rien ne s'affiche je ne sais pas si cela est possible.

Merci

Aurélie

bonjour,

dans tes tableaux récaps, il n'y a pas de libellé et je ne vois pas comment faire un lien non ambigu avec le détail. (exemple quel libellé dois-je mettre pour le CG 606300 (outillages ou marchandises ?) pour 606100 (outillages ou fournitures ?)

Mettre le libéllé de la DA en D10, comment faire pour le résultat de la colonne o soit 0012240 au lieu de12240.

Mille Merci

Aurélie

Pareil pour le site et site ligne 00265 eu lieu de 265

MERCIIIIIIIIIIIIIIIIIIIIIIIIIIII

Bonjour,

pas sûr d'avoir compris la réponse à ma question concernant le libellé.

Option Explicit
Sub conso()
    Dim dl&, dlws&, i&, k&    'long
    Dim uc$, site$, da$, libda$     'string
    Dim ws As Worksheet
    Dim debit As Currency, credit As Currency

    With Sheets("feuil1")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        k = dl
        For Each ws In Worksheets
            If ws.Name <> .Name Then
                uc = ws.Range("B10")
                If InStr(ws.Range("B9"), " / ") > 0 Then
                    site = Split(ws.Range("B9"), " / ")(1)
                Else
                    site = ws.Range("B9")
                End If
                da = ws.Range("D9")
                libda = ws.Range("D10")
                dlws = ws.Cells(Rows.Count, "L").End(xlUp).Row
                For i = 15 To dlws
                    Select Case ws.Cells(i, "L")
                    Case "", "TOTAL", "TOTAL HT"
                    Case Else
                        debit = ws.Cells(i, "M")
                        credit = ws.Cells(i, "N")
                        If debit <> 0 Or credit <> 0 Then
                            k = k + 1
                            .Cells(k, 3) = uc
                            .Cells(k, 1).Resize(, 2) = Application.Trim(site)
                            .Cells(k, 5) = ws.Cells(i, "L")
                            If debit <> 0 Then .Cells(k, 9) = debit
                            If credit <> 0 Then .Cells(k, 10) = credit
                            .Cells(k, 16) = ws.Cells(i, "O")
                            .Cells(k, 15) = da
                            .Cells(k, 15).NumberFormat = "0000000"
                            .Cells(k, 11) = libda
                        End If
                    End Select
                Next i
            End If
        Next
    End With
End Sub

c'est super j'exagère mais il me manque juste le site et site ligne à mettre en 00265 au lieu de 265

et c'est parfait

MErciiiiiiiiiiiiiiii

et la colonne CNA remettre le compte général

bonjour,

ajoute cette instruction

.cells(k,1).resize(,2).NumberFormat="00000"

après

.Cells(k, 1).Resize(, 2) = Application.Trim(site)

ou formatte la colonne avec un format personnalisé "00000" après exécution de la macro.

et pour que le colonne CNA reprenne La mème chose que le compte générale?

bonjour,

ajoute ceci à la suite des autres instructions du même type

                            .Cells(k, 13) = .Cells(k, 5)
Rechercher des sujets similaires à "regroupements donnees seule feuille"