XL 2016 saisie automatique des données dans une feuille recap à partir des autres feuilles

Soumaiya

XLDnaute Nouveau
Bonjour,
pourriez vous m'aider svp,
j'ai un fichier de suivi budgétaire ou le classeurs comporte une douzaine des feuille,
chaque feuille a un tableau ou sont décris les mêmes informations que les autres (code, objectifs, montant, fournisseur....)
j'ai crée une autre feuille dans le même classeur que je vais faire le recap globale des tableau de chaque feuille.
est ce qu'il y'a un moyen de mettre à jour automatiquement la feuille du recap global des que je saisie les données dans les autres feuilles pour eviter de faire deux saisies ou des copie coller?
est il possible de le faire sans utiliser les macros (je suis nul)?
et si ca nécessite obligatoirement l'utilisation des macros est ce que je peut partager le fichier sur drive et que les macros prennent?
MERCI DE M'AIDER SVP
Ci joint un exple du fichier,
 

Pièces jointes

  • EXEMPLE SUIVI.xlsx
    17.7 KB · Affichages: 8

sylvanu

XLDnaute Barbatruc
Supporter XLD
bonsoir Soumaiya, et bienvenu(e) sur XLD,
Un essai en PJ avec :
VB:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    With Range("Tableau5").ListObject
        If Not .DataBodyRange Is Nothing Then
            .DataBodyRange.Delete
        End If
    End With
    For Each F In Worksheets
        If F.Name <> "GLOBAL" Then
            Tableau = Sheets(F.Name).ListObjects(1).Name
            Sheets(F.Name).Range(Tableau).Item(1, 1).Copy
            NbL = [Tableau5].ListObject.ListRows.Count
            Sheets(F.Name).ListObjects(Tableau).DataBodyRange.Copy [Tableau5].Item(NbL + 1, 1)
        End If
    Next F
    Columns.AutoFit
End Sub
La macro est automatique quand on sélectionne la page Global.
 

Pièces jointes

  • EXEMPLE SUIVI.xlsm
    25.7 KB · Affichages: 8

Soumaiya

XLDnaute Nouveau
bonsoir Soumaiya, et bienvenu(e) sur XLD,
Un essai en PJ avec :
VB:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    With Range("Tableau5").ListObject
        If Not .DataBodyRange Is Nothing Then
            .DataBodyRange.Delete
        End If
    End With
    For Each F In Worksheets
        If F.Name <> "GLOBAL" Then
            Tableau = Sheets(F.Name).ListObjects(1).Name
            Sheets(F.Name).Range(Tableau).Item(1, 1).Copy
            NbL = [Tableau5].ListObject.ListRows.Count
            Sheets(F.Name).ListObjects(Tableau).DataBodyRange.Copy [Tableau5].Item(NbL + 1, 1)
        End If
    Next F
    Columns.AutoFit
End Sub
La macro est automatique quand on sélectionne la page Global.
Merci beaucoup Sylvanu, c'est magique, ça fonctionne très bien.
une autre question svp, est ce que c'est possible de partager ce fichier sur drive ?
Pourriez vous svp m'expliquer un peu plus la macro au cas ou prochainement je vais refaire
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
est ce que c'est possible de partager ce fichier sur drive
Aucune idée, essayez.:)
Pourriez vous svp m'expliquer un peu plus la macro
En PJ la même, commentée:
VB:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False                      ' on fige l'écran
    With Range("Tableau5").ListObject                       ' avec le tableau de la page Global
        If Not .DataBodyRange Is Nothing Then               ' s'il est non vide
            .DataBodyRange.Delete                           ' on l'efface
        End If
    End With
    For Each F In Worksheets                                ' pour toutes les feuilles
        If F.Name <> "GLOBAL" Then                          ' sauf evidemment Global
            Tableau = Sheets(F.Name).ListObjects(1).Name    ' on récupère le nom du tableau présent
            NbL = [Tableau5].ListObject.ListRows.Count      ' nombre de ligne du tableau global
            ' on copie le tableau de la feuille concernée à la fin du tableau global
            Sheets(F.Name).ListObjects(Tableau).DataBodyRange.Copy [Tableau5].Item(NbL + 1, 1)
        End If
    Next F
    Columns.AutoFit
End Sub
 

Pièces jointes

  • EXEMPLE SUIVI V2.xlsm
    25.9 KB · Affichages: 8

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 848
dernier inscrit
Djigbenou