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 SubMerci 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 SubRebonjour,
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.