Salut DJ.Run, le Forum
Huum oui c'était évidemment un manque de précision important dans ta première demande, et je me doute même que sur ce coup ci, il y a des risques pour que tu reviennes dans pas longtemps pour dire que tu t'étais mal exprimé....
Enfin moi, je vois les chose tout simplement, dans la première demande, j'avais compris que la feuille "données" était remise à zéro et réactualisée avec des nouvelles données qui devaient donc s'ajouter à chaque feuille clients au fur et à mesure...
Maintenant avec ce que tu as écrit, il semblerait que ce ne soit manifestement pas le cas et même le contraire...
Donc j'en conclus, et pour rester dans le cadre d'une macro simple, que ta feuille données conserve l'historique de toutes les opérations.... Par conséquent il n'y a pas besoin de se casser la tête avec un tableau indexé séquentiellement pour vérifier les doublons et toute la grosse artillerie... Il suffit de faire une macro qui écrase les anciennes données des feuilles clients comme suit :
Option Explicit
Sub MAJ()
Dim l As Integer, l1 As Integer, x As Integer
Dim cellule As Range, plage As Range
Dim WS As Worksheet
Dim i As Byte
l = Sheets("donnees").Range("d300").End(xlUp).Row + 1
Set plage = Sheets("donnees").Range("d2:d" & l)
For Each WS In Sheets
i = 9
For Each cellule In plage
If WS.Name = cellule.Value Then
WS.Range("b" & i) = cellule.Offset(0, -3).Value
i = i + 1
If i > 66 Then
MsgBox ("LE NOMBRE DE SALARIES MAXIMUM POUR CETTE SOCIETE EST ATTEINT")
GoTo fin
End If
End If
Next cellule
Next WS
fin:
End Sub
J'ai travaillé en macro Standard, ce qui est plus simple pour faire des tests, que Private Sub Workbook_Open.... Tu n'as qu'à faire de même avec ceci dans le Private Module de ThisWorkBook :
Private Sub Workbook_Open()
MAJ
End Sub
Ceci dit dans ton fichier "Test.xls" pense à mettre les déclaration de variables dans la procédure et non pas au dehors, elles n'ont rien à y faire, elle ne sont pas partagées avec d'autre Private Sub....
Bon Appétit
Pas trop chaud à la Réunion, j'ai entendu dire qu'il neigeait (!!!)
@+Thierry