Récupérer la valeur d'une cellule venant de différents onglets

natorp

XLDnaute Accro
Bjr à toutes et tous

J'ai un fichier avec un onglet général "Outillages" et différents onglets par atelier, une fois que le chef d'atelier a renseigné l'agent disposant du matériel, j'aimerais que cette valeur revienne dans l'onglet général

Merci de votre attention, cordialement, Gérard
 

Pièces jointes

  • Outillage_atelier_GG.xls
    180 KB · Affichages: 84

Modeste

XLDnaute Barbatruc
Re : Récupérer la valeur d'une cellule venant de différents onglets

Bonjour natorp, Gérard et puis tous les autres,

J'ai jeté un oeil au fichier et en mettant au point une proposition de solution, je me suis aperçu que plusieurs outils portaient un nom identique ... tu ne dois pas faire de distinction entre les "coffrets 6 tournevis isolés" qui seraient prêtés dans les différents ateliers :confused:
 

natorp

XLDnaute Accro
Re : Récupérer la valeur d'une cellule venant de différents onglets

Modeste,

Merci pour t'être penché sur le problème
Si un "coffret de 6 tournevis isolés" est attribué à plusieurs ateliers il sera inscrit plusieurs fois dans le feuille "outillages", une ligne par atelier et par personne.
Est-ce que cela répond à ta question ?

cordialement, Gérard
 

Modeste

XLDnaute Barbatruc
Re : Récupérer la valeur d'une cellule venant de différents onglets

Re-bonjour Gérard,
Salut R@chid :)

Sans trop de conviction, un essai par macro: le code suivant est à placer dans le module ThisWorkbook du classeur.
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Sh.Name = "Outillages" Then Exit Sub
    If Target.Count > 1 Or Target.Column <> 12 Or Target = "" Then Exit Sub
    Outil = Cells(Target.Row, 1)
    Set trouve = Sheets("Outillages").[A:A].Find(what:=Outil, LookIn:=xlValues, lookat:=xlWhole)
    If Not trouve Is Nothing Then
        If trouve.Offset(0, 12) = "" Then
            Sheets("Outillages").Cells(trouve.Row, 13) = Target
            Exit Sub
        Else
            premAdresse = trouve.Address
            Do
                Set trouve = Sheets("Outillages").[A:A].FindNext(trouve)
                If trouve.Offset(0, 12) = "" Then Sheets("Outillages").Cells(trouve.Row, 13) = Target: Exit Sub
            Loop While Not trouve Is Nothing And trouve.Address <> premAdresse
        End If
    End If
End Sub

Attention, la macro s'applique à toutes les feuilles, sauf la feuille "Outillages". Une adaptation sera nécessaire si le classeur contient d'autres feuilles!
 

natorp

XLDnaute Accro
Re : Récupérer la valeur d'une cellule venant de différents onglets

Re,

Merci Modeste, cela fonctionne. Tu parles d'adaptation pour d'autres feuilles, à quel niveau ?

Merci beaucoup, Gérard
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Récupérer la valeur d'une cellule venant de différents onglets

Re²,

Tu parles d'adaptation pour d'autres feuilles, à quel niveau ?
Si tu n'as que tes feuilles "Outillages" d'une part et, d'autre part, que des feuilles relatives à un atelier ou l'autre, il n'y a pas d'adaptation à apporter.

Si, par contre, d'autres feuilles que celles citées ci-dessus sont présentes et que le code ne doit pas s'exécuter à chaque changement de valeur en colonne L, il faudra le préciser dans le code. Comme je le disais, sans voir le classeur, on ne peut pas savoir.
Si la seconde hypothèse est correcte et que tu n'as qu'une ou deux feuilles à exclure, tu peux le faire à cette ligne:
VB:
If Sh.Name = "Outillages" Or Sh.Name = "Mon_Autre_Feuille" Or sh.Name = "La_Troisième_Feuille" Then Exit Sub
S'il y en a nettement plus, dis-le nous, on adaptera (mais je présume que ce ne sera pas le cas!?)
 

natorp

XLDnaute Accro
Re : Récupérer la valeur d'une cellule venant de différents onglets

Modeste,

Merci pour ces précisions, il y aura effectivement une seule autre feuille qui est celle des agents par atelier, que je n'ai pas mis sur l'exemple pour ne pas alourdir ni avoir avoir à anonymiser....

C'est super sympa, bonne journée, Gérard
 

Discussions similaires