VBA recherche dans plusieurs feuilles d'un fichier

Bonjour à tous,

J'ai un fichier de suivi de dépense avec plusieurs onglets. Chaque onglet est un type de dépense: par exemple: personnel, énergie...

Chaque ligne de dépense a un code de bon de commande.

Je voudrais ensuite éditer le bon de commande en rentrant le numéro.

Je voudrais écrire un code VBA qui va chercher ce numéro dans tous les onglets puis afficher les informations (fournisseur, montant) sur le bon de commande.

J'ai essayé d'adapter un code dans mon fichier (ci-joint), mais ça ne marche pas.

Je ne suis pas forte en VBA,

je vous remercie en avance pour vos aides.

Cordialement,

Bonsoir Isabelle,

un peu courtes tes explications pour nous (moi en tout cas!) qui ne sommes pas comptables!

Peux-tu nous mâcher la besogne et nous éviter d'étudier tes tableaux en précisant quelles infos, précisément, il faut aller chercher et leur cellule-destination dans BDC?

Par exemple, je ne vois nulle part une colonne Quantité qui figure, elle dans BDC!

Ce sera avec plaisir!

A+

curulis57 a écrit :

Peux-tu nous mâcher la besogne et nous éviter d'étudier tes tableaux en précisant quelles infos, précisément, il faut aller chercher et leur cellule-destination dans BDC?

@curulis57 : ce que j'ai compris = c'est dans la macro de la feuille BDC qu'il faut en fait corriger ...

Salut Isabelle,

@Steelson, merci de m'avoir laissé cette bouillabaisse de code! Je partage, tu sais!

Voici ta macro en ordre de marche! Je te laisse le soin de compléter et de déterminer l'exactitude de ta pêche aux infos!

Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim sWk As Worksheet
Dim rCel As Range
'
Application.EnableEvents = False
'
If Target.Address = [D3].Address Then
    Range("A27:E43").ClearContents
    Range("D5:E10").ClearContents
    Range("A11:C16").ClearContents
    Range("B59:D59").ClearContents
    '
    sFlag = Target.Value
    For Each sWk In ThisWorkbook.Worksheets
        If sWk.Name <> "BDC" And sWk.Name <> "Frs" Then
            iRow = sWk.Range("A" & Rows.Count).End(xlUp).Row
            Set rCel = sWk.Range("A2:A" & iRow).Find(sFlag, LookIn:=xlValues, lookat:=xlWhole)
            If Not rCel Is Nothing Then
                iLig = rCel.Row
                Cells(27, 1) = sWk.Name
                Cells(5, 4) = sWk.Cells(iLig, 6)
                Cells(29, 1) = sWk.Cells(iLig, 8)
                Cells(13, 5) = sWk.Cells(iLig, 4)
                Cells(11, 1) = sWk.Cells(iLig, 9)
                Cells(16, 1) = sWk.Cells(iLig, 5)
                Cells(17, 1) = "Direction : " & sWk.Cells(iLig, 2)
                Cells(56, 2) = Cells(16, 1)
                Cells(57, 2) = Cells(17, 1)
                Cells(58, 3) = [D3]
                Cells(29, 5) = sWk.Cells(iLig, 20)
                Cells(59, 3) = sWk.Cells(iLig, 11)
                Exit For
            End If
        End If
    Next
End If
'
Application.EnableEvents = True
'
End Sub

Bonne année 2017!

Bon travail!

A+

Je vous remercie pour vos aides. ça a marché très bien

Et je suis désolée pour cette bouillabaisse de code

Vous êtes trop fort!!! j'ai passé des semaines à regarder sur google et je n'arrive jamais

Bonjour, salut Steelson, Curulis,

Juste en passant, j'avais regardé ça hier !Cela m'avait passablement déprimé...

Je m'étais abstenu (pas assez en forme)... Mais je peux donner mon point de vue, qui consiste à rebâtir complètement le fichier !!

Supprimer cette collection d'hyperlinks, les invraisemblables successions de fiches formatées, réduire des 2/3 la taille du fichier...

Et commencer par mettre en place des bases de données dans lesquelles toute recherche pourra aisément s'effectuer, avec un minimum de code...

Avec tous mes voeux....

[insert : Steelson : ton WinList m'a l'air bigrement intéressant !!!! Pour le moment cela m'a fait me poser quelques questions sur les processus actifs... A creuser...]

edit : Toutes mes excuses à Isabelle ! Je ne devais pas être bien réveillé ! Mes remarques ont trait à un autre fichier (donc un autre sujet). J'avais bien vu le tien, mais je n'étais juste pas motivé...

MFerrand a écrit :

[insert : Steelson : ton WinList m'a l'air bigrement intéressant !!!! Pour le moment cela m'a fait me poser quelques questions sur les processus actifs... A creuser...]

Salut MFerrand ... c'est un petit bijou trouvé sur internet (il n'est pas de moi !) à l'occasion de la résolution du problème des sendkeys ! jusqu'à présent j'utilisais AutoIt qui est aussi un outil génial pour communiquer entre appli !

Rechercher des sujets similaires à "vba recherche feuilles fichier"