Mise à jour cellules

Bonjour,

j'ai un fichier Excel avec les 12 mois de janvier à décembre et une 13éme feuil année (qui calcul la clôture de l'année.

Sur chaque SUR j'ai des personnes à partir de la 10éme ligne avec Nom (colonne D), Prénom (colonne E) et un Identifiant (colonne B).

Je veux faire un programme VBA qui me permettra si je fais une mise à jour sur un nom ou un prénom que ça se répercute sur toutes mes feuils puisque chaque personne a son unique identifiant et les colonnes aussi restent les mêmes sur mes feuils.

Merci d'avance.

Bonjour,

Un début de réponse, à méditer, en l'absence de fichier.

Cdlt.

Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim wsSource As Worksheet, ws As Worksheet
Dim lo As ListObject
Dim strCell As String

    Application.ScreenUpdating = False

    On Error GoTo Erreur

    Set wsSource = ActiveSheet
    Set lo = wsSource.ListObjects(1)

    If Not Intersect(Target, lo.DataBodyRange) Is Nothing Then
        If Target.Count > 1 Or Target.Column < 4 Then Exit Sub
        Application.EnableEvents = False
        strCell = Target.Address
        For Each ws In ActiveWorkbook.Worksheets
            If ws.Name <> wsSource.Name Then
                ws.Range(strCell) = Target.Value
            End If
        Next ws
        Application.EnableEvents = True
    End If

Fin:
    Set lo = Nothing
    Set wsSource = Nothing
    Exit Sub
Erreur:
    Application.EnableEvents = True
    Resume Fin

End Sub

Merci pour ce début de réponse, pour l'adapter se sera pas difficile.

Je reviens vers vous dès que ça va marcher.

Encore merci.

J'ai essayé de l'adapter.

ça marche sur votre fichier mais sur le mien avec des données qui étaient déjà saisies ça ne marche pas.

Serait il possible de l'affecter à un bouton pour un e foi qu'on clic ça se déclenche? car ça aussi j'ai essayé en enlevant le Private mais ça réagi pas.

Merci d'avance.

Re,

Tu n'es pas nouveau sur le forum.

Tu sais qu'un fichier représentatif (anonymisé) permet des réponses adaptées.

Dons, pas de bras, pas de chocolat.

Joins un fichier.

Cdlt.

Merci pour votre aide.

Je vous met en pj le fichier j'ai mis les entêtes à la bonne place.

Re,

Que veux dire avec ce fichier remanié?

Les tableaux sont sensés avoir des tailles identiques!

Pourquoi la colonne F ne comporte pas d'entête de colonne?

Quelle est cette ligne ajoutée en feuille 'janvier' avec des des commentaires 'à enlever'?

Quels sont les calculs à effectuer en feuille 'Synthèse'?

* autre question : pourquoi ne pas avoir une feuille 'Liste', avec un tableau Identifiant/Nom/Prénom? Ceci pour éviter des saisies inutiles, génératrices d'erreurs potentielles. Et ne travailler qu'avec les identifiants.

J'ai cependant revu mon classeur, en intégrant une procédure pour créer les tableaux.

Procédure que tu peux copier et tester dans ton classeur (le vrai).

Impératif : 1 classeur de 13 feuilles (12 mois et 1 synthèse).

A te relire, peut-être avec un classeur représentatif de tes données incluant les calculs à réaliser?

Option Explicit
Dim ws As Worksheet
Dim lo As ListObject
Dim lRow As Long
' Efface et crée 13 tableaux correspondant aux 12 mois de l'année, plus une synthèse
Public Sub CreerTableaux()
Dim i As Byte
Dim x As Long
Dim bln As Boolean

    Application.ScreenUpdating = False

    For i = 1 To 13
        ' janvier=1, décembre=12, Synthèse=13
        On Error Resume Next
        Worksheets(i).ListObjects(1).Unlist
        On Error GoTo 0
        Set lo = Worksheets(i).ListObjects.Add(xlSrcRange, _
                Worksheets(i).Range("B10").CurrentRegion, , xlYes)
        lo.Name = "tbl_" & Format(i, "00")
        lo.TableStyle = ""
        lRow = lo.ListRows.Count
        If i = 1 Then x = lRow
        If x <> lRow Then bln = True
    Next i

    If bln Then MsgBox "Les tableaux n'ont pas les mêmes dimensions!", vbCritical

    Set lo = Nothing

End Sub

Rebonjour,

je m'excuse de n'avoir pas donné toutes les précisions nécessaires.

Je n'avez pas pensé mettre un fichier au debut de mes messages car le fichier comportait beaucoup de données et de macros.

Les données sont générées et calculées automatiquement par d'autres macros que je n'avais pas crée.

Le problème que j'ai pausé au début est la suivante, si on importe des données et à la suite on se rend compte que certains Noms ou Prenons sont mal écrits. Pour corriger le problème, je suis obligé de changer le Nom ou le Prénom page par page. Et comme chaque personne a son propre identifiant, j'avais pensé qu'il serait possible de faire un macro pour que les noms de même identifiant puissent être changés sur toutes les autres feuilles en se basant sur la 1ére feuille (mois de janvier).

Merci encore pour ce que vous avez déjà fait.

Bonjour,

Jean-Eric encore merci, votre solution peut marcher pour création de nouvelles données mais en ce qui me concerne, ils existe déjà un gros volume de données.

je reviens encore avec mon fichier. J'essaye d'être le plus explicite possible.

Je rappelle actuellement des personnes l'utilisent chaque jour et des macro calculent automatiquement les valeurs. On sait rendu compte qu'il existe des Prénoms ou des Noms qui sont mal écrit. L'idéal serait si on corrige un Nom ou un Prénom au niveau du mois de janvier, un macro nous aide à le corriger sur les mois qui restent jusqu'à la feuille de calcul Synthèse.

NB: chaque mois des personnes peuvent être ajoutées comme j'ai essayé de le montrer au mois de février et Avril mais l'ordre ne change pas et chaque personne a son identifiant.

D'avance merci.

Bonjour,

ci-joint une solution un plus adaptée.

Merci

13xlp-essai.xlsm (55.80 Ko)
Rechercher des sujets similaires à "mise jour"