XL 2010 VBA-Récap Automatique

MONTREAL2020

XLDnaute Junior
Bonjour,
Je veux rassembler les données de mes commerciaux dans une seule feuille sous forme de récap.
Le nombre de commerciaux peux varier en +/- .
Je ne veux pas que les commerciaux soient limiter par le nombre de lignes à utiliser chacun dans sa feuille.
J'ai vraiment du mal à le réaliser avec mes connaissances rudimentaire sur Excel.
J'ai tenté une VBA mais je n'y comprends absolument rien. En plus je ne souhaite pas que mon fichier plante.

Si vous pouvez me donner un coup de pouce ca serait sympa.

Je joins un fichier
 

Pièces jointes

  • RÉCAP1.xlsx
    16 KB · Affichages: 4

Lolote83

XLDnaute Barbatruc
SAlut Montreal2020,
Peut être avec cette petite macro.
Par contre, il faudrait renommer ton onglet RECAP (avec l'accent) en RECAP (sans accent) car je n'ai pas réussi a reproduire l'accent en majuscule.
VB:
Sub Recap()
    Application.ScreenUpdating = False
    For Each xOng In ThisWorkbook.Sheets
        If xOng.Name <> "RECAP" Then
            With Sheets(xOng.Name)
                xDerLig = .Range("A65000").End(xlUp).Row
                .Range("A2:J" & xDerLig).Copy
            End With
            With Sheets("RECAP")
                xNewLig = .Range("A65000").End(xlUp).Row + 1
                .Range("A" & xNewLig).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            End With
        End If
    Next xOng
    Application.ScreenUpdating = True
    MsgBox "IMPORTATION TERMINEE", vbInformation, "IMPORTATION"
End Sub
@+ Lolote83
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
J'ai oublié deux détails :
1- Vous pouvez ajouter/supprimer des commerciaux ( enfin leur feuille ) tant que vous voulez.
2- Je traite toutes les feuilles excepté Récap. Si vous rajoutez une feuille, par exemple Sommaire, elle serait traitée aussi. Donc il faudra rajouter cette feuille en exception :

VB:
Sub Consolidation()
Dim Sh As Worksheet
Application.ScreenUpdating = False
[A2:K1000].ClearContents
IndexStore = 2
For Each Sh In ActiveWorkbook.Sheets
     ' Traitement des feuilles en exception'
    If Sh.Name <> "RÉCAP" Or Sh.Name <> "Sommaire" Then   ' A modifier si rajout de feuilles.'
        IndexMax = Application.WorksheetFunction.CountA(Worksheets(Sh.Name).Columns("A:A"))
        For Ligne = 2 To IndexMax
            For Colonne = 1 To 10
                Worksheets("Récap").Cells(IndexStore, Colonne) = Worksheets(Sh.Name).Cells(Ligne, Colonne)
            Next Colonne
            Worksheets("Récap").Cells(IndexStore, Colonne) = Sh.Name
            IndexStore = IndexStore + 1
        Next Ligne
    End If
Next Sh
End Sub
 

MONTREAL2020

XLDnaute Junior
SAlut Montreal2020,
Peut être avec cette petite macro.
Par contre, il faudrait renommer ton onglet RECAP (avec l'accent) en RECAP (sans accent) car je n'ai pas réussi a reproduire l'accent en majuscule.
VB:
Sub Recap()
    Application.ScreenUpdating = False
    For Each xOng In ThisWorkbook.Sheets
        If xOng.Name <> "RECAP" Then
            With Sheets(xOng.Name)
                xDerLig = .Range("A65000").End(xlUp).Row
                .Range("A2:J" & xDerLig).Copy
            End With
            With Sheets("RECAP")
                xNewLig = .Range("A65000").End(xlUp).Row + 1
                .Range("A" & xNewLig).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            End With
        End If
    Next xOng
    Application.ScreenUpdating = True
    MsgBox "IMPORTATION TERMINEE", vbInformation, "IMPORTATION"
End Sub
@+ Lolote83
Super .Merci
J'ai oublié deux détails :
1- Vous pouvez ajouter/supprimer des commerciaux ( enfin leur feuille ) tant que vous voulez.
2- Je traite toutes les feuilles excepté Récap. Si vous rajoutez une feuille, par exemple Sommaire, elle serait traitée aussi. Donc il faudra rajouter cette feuille en exception :

VB:
Sub Consolidation()
Dim Sh As Worksheet
Application.ScreenUpdating = False
[A2:K1000].ClearContents
IndexStore = 2
For Each Sh In ActiveWorkbook.Sheets
     ' Traitement des feuilles en exception'
    If Sh.Name <> "RÉCAP" Or Sh.Name <> "Sommaire" Then   ' A modifier si rajout de feuilles.'
        IndexMax = Application.WorksheetFunction.CountA(Worksheets(Sh.Name).Columns("A:A"))
        For Ligne = 2 To IndexMax
            For Colonne = 1 To 10
                Worksheets("Récap").Cells(IndexStore, Colonne) = Worksheets(Sh.Name).Cells(Ligne, Colonne)
            Next Colonne
            Worksheets("Récap").Cells(IndexStore, Colonne) = Sh.Name
            IndexStore = IndexStore + 1
        Next Ligne
    End If
Next Sh
End Sub

cool.

Mais je ne comprends pas trop - EXCEPTION-
Enfin j'ai d'autres caprices :)
- Est-*ce possible de rajouter des colonnes
- Rajouter une feuille pour une liste déroulante
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
1- Dites moi quelles colonnes, et quoi mettre dedans.
2- Dites moi quelle nom de feuille vous voulez pour la nouvelle ... pour la mettre en exception
( "exception" veut dire toutes les feuilles exceptées Récap ou nouvelle feuille sinon elle serait traitée )
3- Que voulez vous dans votre liste déroulante.
 

MONTREAL2020

XLDnaute Junior
Une feuille déroulante:
Liste de noms des produits dédiée pour chaque commercial
Le nom des pays
De sorte a éviter trop de manipulation de leurs part.
Pour les colonne je ne suis trop fixer, avec ton fichier j'ai l'impression que tous est possible (je m'amuse comme un dingue)
Mille merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Vous pouvez rajouter autant de colonnes que vous voulez. J'ai supposé que la question concernait Récap. Un exemple en PJ.
Pour les listes déroulantes, je suppose que vous voulez modifier les feuilles des commerciaux ?
Le mieux est d'avoir une base de données. Ils choisissent un code dans une liste déroulantes et le reste de la ligne se remplit. Mais il faut une base de données complète.
 

Pièces jointes

  • RÉCAP(V2).xlsm
    48.1 KB · Affichages: 5

Discussions similaires

Réponses
4
Affichages
206

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2