Automatisation d'une fiche de synthèse

Bonjour,

Je viens vers vous car je coince un peu sur la récupération de données de multiples pages.

Je possède une page récapitulative ("TCS750") dans laquelle sont présentes toutes les références de mon classeur.

A la fin de chaque années, je dois récupérer le besoin annuel correspondant à chaque références, sachant que toutes ces références et les besoins correspondant sont dispersés un peu partout dans les différentes pages de mon classeur (ici j'ai mis deux pages d'exemples "PDP2018" et "PCP2018"). Actuellement, je récupère les valeurs manuellement ce qui est long est fastidieux.

Auriez-vous une piste sur comment récupérer automatiquement le besoin annuel présent à côté de chaque références et le placer sur ma première page ? Sachant que :

  • Le besoin annuel est toujours une case à droite de la référence.
    Parfois il y a un "0" devant les références donc une référence 4542 peut devenir 04542.
    Les références à récupérer ne sont pas dans le même ordre que celles présentes sur ma page récapitulative.

J'ai essayé de faire quelque chose, mais sans succès, cela me renvoi une erreur :

Sub RangeComparer()

Dim rng As Range

For Each rng In Sheets("TCS750")
If rng.Value = "89792114" Then
rng.Offset(0, 1).Copy Range("B3")

    ActiveWorkbook.Worksheets("PDP2018").rng.Copy
    ActiveWorkbook.Worksheets("TCS750").Range("B3").PasteSpecial Paste:=xlPasteValues, Transpose:=False

Exit For
End If
Next

End Sub

Ci-joint un fichier exemple.

11charge-machine.xlsm (17.27 Ko)

Salut Devery,

Salut le Forum,

Cf si le code ci-dessous te conviens :

Sub Ch()
Dim Ws As Worksheet
Dim C As Range
For x = 3 To Range("A" & Rows.Count).End(xlUp).Row
    For Each Ws In Worksheets
        If Ws.Name <> ActiveSheet.Name Then Set C = Ws.Cells.Find(Cells(x, 1))
        If Not C Is Nothing Then Cells(x, 2) = Ws.Cells(C.Row, C.Column + 1)
    Next Ws
Next
End Sub

Restant à dispo sinon ;D

Bonjour Juice,

Merci de ta réponse si rapide !

Ton programme fonctionne en effet très bien, à un détail près :

Il fonctionne parfaitement même si un 0 est présent devant les numéros dans mes autres pages, mais pas si le 0 est présent dans ma première page.

Penses-tu que cela est possible ? Dans le cas contraire je n'aurais cas enlever les 0 manuellement sur ma première page, cela n'est pas problème .

Par exemple :

Si j'ai 01325344 dans ma page récapitulative et 1325344 dans une autre, le besoin n'est pas récupéré.

Merci !

Reee~

Penses-tu que cela est possible ?

Oui c'est possible, cf le code ci-dessous ^^

On ce "débarrasse" du 0 qu'il y a devant la référence pour ensuite faire la recherche :p

Sub Ch()
Dim Ws As Worksheet
Dim C As Range
Dim R As String
For x = 3 To Range("A" & Rows.Count).End(xlUp).Row
    R = Cells(x, 1)
    If Left(Cells(x, 1), 1) = "0" Then R = Right(Cells(x, 1), Len(Cells(x, 1) - 1))
    For Each Ws In Worksheets
        If Ws.Name <> ActiveSheet.Name Then Set C = Ws.Cells.Find(R)
        If Not C Is Nothing Then Cells(x, 2) = Ws.Cells(C.Row, C.Column + 1)
    Next Ws
Next
End Sub

Restant à dispo ^^

Re :

Un énorme merci à toi Juice !

Ton programme fonctionne parfaitement, cela va me sauver pas mal de temps pour cette fin d'année !

(Et les années prochaines )

Encore merci et bonne année !

Bonjour,

Une proposition sans VBA avec les données mises sous forme de tableaux et Power Query (Récupérer et transformer ; natif Excel 2016).

Le fichier est cependant en xlsm pour l'actualisation de la requête.

A te relire.

Cdlt.

16charge-machine.xlsm (32.95 Ko)

Un plaisir !

Bonne année également

Édit : Salut Jean-Eric!

Merci également d'avoir pris de ton temps pour mon problème Jean-Eric.

Je vais regarder ça de mon côté !

EDIT : Erreur de ma part désolé d'avoir ré-ouvert la discussion.

Rechercher des sujets similaires à "automatisation fiche synthese"