Recherche V multiples résultats

Bonjour, je me permets de vous solliciter pour automatiser mon fichier Excel à 100%, celui-ci est déjà automatisé mais pas complètement.

Je voudrais rentrer tout d'abord la référence de la pièce page Suivi puis cliquer sur le bouton validé.

je voudrais affecter à ce bouton une macro qui me permettrait de faire plusieurs exécutions en même temps. Là vient le problème...

Etape 1: La référence renseignée da

218suppression-vierge.zip (494.06 Ko)

ns le champ va dans la colonne A page "suivi"

Etape 2: Les infos Colonne B/C/D/E sont remplies automatiquement ( déjà fait) via page 'Article FID"

Etape 3: copier coller Colonne A/B/C/D page suivi vers suivie suppression article

Etape 4: Page Récupération info, recherche X de toutes les Machines liées (Page Utilisations) et copier coller le nombre de fois ou la machine est utilisé

Etape 5 Remplissage des infos concernant la machine ( Colonne B/C) via la page "Base machine 1"

et chaque fois qu'on rajoute une référence, on ajoute toutes les infos en bas du tableau

Le plus est d'avoir un bouton effacé pour reset les tableaux page suivi/suivi suppression article/récupération info

PS: un exemple est présent dans la feuille Excel

Je vous remercie par avance de votre aide.

Bonjour,

Merci d'éviter d'ouvrir deux fils sur le même sujet. Un des deux sera supprimé suivant votre réponse sur la question ci-dessous

Avant de vous répondre, quel est le bon ? Celui ci ou celui là https://forum.excel-pratique.com/excel/recherche-x-via-bouton-182748)

Cordialement

Bonjour,

https://forum.excel-pratique.com/excel/recherche-x-via-bouton-182748
est le mauvais poste, comment puis-je supprimer le poste et à partir de quand on peut reposter si on a pas eu de retour

Merci

Cordialement

Bonjour

comment puis-je supprimer le poste et à partir de quand on peut reposter si on a pas eu de retour

Vous ne pouvez pas supprimer un fil créé. Les accès sont réservés aux modérateurs et à l'administrateur. Je l'ai supprimé
En principe pour reposter, vous utilisez le bouton "Répondre".

Etape 3: copier coller Colonne A/B/C/D page suivi vers suivie suppression article

Pourquoi ne pas simplement mettre la référence dans cette feuille au moment où vous l'ajoutez dans la feuille Suivi ? On évite la formule en colonne A du coup

Dites moi avant que je vous poste le code

NB : Vous êtes en tableau structuré vous pouvez déjà modifier les formules dans votre feuille Suivi :

en B2 : =SIERREUR(INDEX(ITEMBL[Libellé article];EQUIV($A2;ITEMBL[Référence];0));"")
en C2 : même formule mais vous remplacez Libellé article par --> "Emplacement"
en D2 : idem que B2 mais vous remplacez Libellé article par --> "Quantité"
en E2 : idem que B2 mais vous remplacez Libellé article par --> "Prix unitaire"

Bonjour,

Merci pour votre réponse.

J'ai changé les formules, mais quelle est la différence entre ce que j'ai mis et cette formule? ça fonctionne mais c'est simplement pour ma culture

Effectivement vous avez raison, c'est une solution plus simple de remplir au moment de la saisie. J'ai cherché compliqué alors que c'est plus simple.

Merci de votre aide

J'ai changé les formules, mais quelle est la différence entre ce que j'ai mis et cette formule? ça fonctionne mais c'est simplement pour ma culture

Avec ces formules vous utilisez les fonctionnalités du tableau structuré. Nul besoin de prendre les colonnes entières de votre feuille. A ne jamais faire d'ailleurs.
Comme dans cette formule de la feuille Récupération où vous utilisez ceci --> 'Base machine1'!E:E. Pourquoi utilisez 1000000de lignes dans une formule lorsque le tableau n'en a que 100 par exemple. Il faut toujours essayer de dimensionner la plage utile. Avec les tableau structuré c'est nettement plus facile puisque exel voit directement les lignes du tableau et pas plus bas.
Vous pouvez d'ailleurs revoir les formules dans les autres feuilles aussi

Effectivement vous avez raison, c'est une solution plus simple de remplir au moment de la saisie. J'ai cherché compliqué alors que c'est plus simple.

Le code à utiliser et à lier à votre bouton Valider

Sub Actualiser_suivi()
Dim lig As Integer

With ActiveSheet
    If .TextBox1.Value <> vbNullString Then
        With .ListObjects(1)
            If .ListRows.Count = 0 Then
                .ListRows.Add: lig = 1
            Else: .ListRows.Add: lig = .ListRows.Count
            End If
            .DataBodyRange.Item(lig, 1) = ActiveSheet.TextBox1.Value
        End With

        With Feuil5.ListObjects(1)
            If .ListRows.Count = 0 Then
                .ListRows.Add: lig = 1
            Else: .ListRows.Add: lig = .ListRows.Count
            End If
            .DataBodyRange.Item(lig, 1) = ActiveSheet.TextBox1.Value
        End With
        .TextBox1.Value = vbNullString
    End If
End With
End Sub

Faites un test

Si terminé,

Cordialement

Bonjour,

Merci pour vos explications

Le tableau Récupération info ne fonctionne pas, est-ce normal ?

Le bouton doit récupérer les informations de la page "Utilisations", on récupère toutes les lignes ou la référence pièce est renseignée (RechercheV multiple solution)

Bonjour

Le code proposé fonctionne comme demandé ?

Le tableau Récupération info ne fonctionne pas, est-ce normal ?

Oui je n'ai pas encore regardé.

1. si vous entrez deux fois le même code (exemple 33906) dans la feuille Suivi, on doit également récupérer encore une fois les infos dans cette feuille Récupération info ?
2. En colonne A vous avez le lien machine et pas de formule. Normal ? (NB : bien sûr on peut le récupérer avec le code)

Bonjour,

La feuille "Utilisation" est une extraction ( du coup normal qu'il n'y a pas de formule), en rentrant la référence de la machine, on fait une recherche avec des solutions multiple, et on afficher à chaque fois les machines utilisant la pièce ( Est ce nécessaire de récupérer l'info, je ne sais pas)

j'ai modifié un peu et et un rajouté un feuille fournisseur mais la formule ne fonctionne pas

Merci par avance

Re

j'ai modifié un peu et et un rajouté un feuille fournisseur mais la formule ne fonctionne pas

- Modifié quoi ?
- De quelle formule parlez-vous ?

Bonjour,

J’ai modifié les formules pour éviter de sélectionner toute la colonne mais seulement les cellules où il y a des infos, mais j’ai pas réussi à le faire fonctionner page 2 les nouvelles colonnes fournisseurs et Nom frn

re

mais j’ai pas réussi à le faire fonctionner page 2

Page 2 ??? vous parlez de la feuille Suivi je suppose ?

Votre souci est que la colonne A dans la feuille Fournisseur est au format text

Comment complétez-vous la feuille Fournisseur ?


Pour la récupération infos dont vous parliez avant, faites ceci :

1. Dans le code que je vous ai donné dans mon post précédent, à la fin du code juste avant cette ligne --> .textbox1.value = Vbnullstring, ajoutez ceci

Call recup_Info

2. Ajoutez ce code dans le module 2

Sub recup_Info()
Dim prem As String
Dim c As Range
Dim TS As ListObject

Set TS = Sheets("Utilisations").ListObjects(1)

Set c = TS.ListColumns(1).DataBodyRange.Find(ActiveSheet.TextBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
        prem = c.Address
        Do
            With Feuil1.ListObjects(1)
                If .ListRows.Count = 0 Then
                    .ListRows.Add: lig = 1
                Else: .ListRows.Add: lig = .ListRows.Count
                End If
                .DataBodyRange.Item(lig, 4) = ActiveSheet.TextBox1.Value
                .DataBodyRange.Item(lig, 1) = c.Offset(0, 3).Value
                .DataBodyRange.Item(lig, 5) = c.Offset(0, 1).Value
            End With
            Set c = TS.ListColumns(1).DataBodyRange.FindNext(c)
        Loop While Not c Is Nothing And c.Address <> prem
    End If
End Sub

Bonjour

Page 2 ??? vous parlez de la feuille Suivi je suppose ?

Votre souci est que la colonne A dans la feuille Fournisseur est au format text

Comment complétez-vous la feuille Fournisseur ?

J'ai réglé le problème

tout marche sauf que ma formule dans page "Récupération Info" colonne A ne s'applique pas aux prochaines références ajoutées ( quand j'efface la ligne, la formule s'efface aussi et je dois renoter la formule). Comment sauvegarder une formule dans une cellule même si on supprime la valeur de la cellule

=SIERREUR(INDEX(Tableau7[N°machine];EQUIV($D2;Tableau7[Réfpièce];0));"")

c'est pour ça que j'ai mis en place un bouton effacer qui me supprime toutes les valeurs ( tous les tableaux sont vierges) mais on garde les formules.

Sub Effacer()

Range("Tableau4").Select
    Selection.Delete Shift:=xlUp

Range("Tableau26").Select
    Selection.Delete Shift:=xlUp

Range("Tableau2").Select
    Selection.Delete Shift:=xlUp
End Sub

Le tableau 4 s'efface mais pas le reste ...

tout marche sauf que ma formule dans page "Récupération Info" colonne A ne s'applique pas aux prochaines références ajoutées ( quand j'efface la ligne, la formule s'efface aussi et je dois renoter la formule). Comment sauvegarder une formule dans une cellule même si on supprime la valeur de la ce

Les tableaux sont au format structuré, donc votre code d'effacement comme ceci

Sub effacer()
Feuil1.ListObjects(1).DataBodyRange.Delete
Feuil3.ListObjects(1).DataBodyRange.Delete
Feuil5.ListObjects(1).DataBodyRange.Delete
End Sub

Autre point que vous devriez modifier
- Allez dans la feuille Suivi
- Supprimez votre ligne 3
- cliquez dans une cellule du tableau
- allez dans le menu excel et cliquez sur "création de tableau"
- là cochez la case LIGNE TOTAL. Cela va créer une ligne pour vos totaux
- Il vous reste, à cliquer sur B3 et F3 pour choisir dans la liste déroulante ce que vous voulez. (B3 --> nombre, F3 --> Somme)

Conseil : ne creez pas chaque fois un module par code, vous pouvez les regrouper dans un seul. c'est parfois plus pratique pour suivre.

--> Ne repostez pas votre fichier, j'ai votre version 3. Sans quoi je dois recommencer et inutile d'alourdir le forum. Si j'ai besoin, je vous le dirai.

Crdlt

Bonjour,

Les lignes de code pour effacer ne fonctionne pas. Est ce normal ?

image

De plus comment conserver la formule dans la colonne A page Récupération : =SIERREUR(INDEX(Tableau7[N°machine];EQUIV($D2;Tableau7[Réfpièce];0));"")

Quand j'efface ou que ferme mon fichier, je dois de nouveau saisir la formule.

Bonjour

1. Cela ne me dit rien le message. Cliquez sur Debogage pour connaitre la ligne qui bugue. Cela peut venir du fait qu'un des tableaux structurés ne comporte pas de données.
Ajoutez cette ligne juste en dessous de Sub Effacer()

On Error Resume Next

2. Pour la formule, elle reste dans le tableau structuré (même si vous ne la voyez pas). Donc si vous ajoutez une nouvelle ligne elle sera automatiquement récupérée. Vous ne devez pas la remettre.

image image

Bonjour,

Le bug pour effacer à été résolu, merci mais pas pour la formule Colonne. la formule reste dans la colonne B et C mais pas A

Je n'ai pas ce souci...

Bon essayez ceci

- Sélectionnez les cellules du tableau de A2 à E4
- click droite pour choisir l'option "Supprimer" --> "Lignes de Tableau" (attention !! vous devez voir "Lignes de tableau")
- entrez un code de référence en D2

SI vous n'avez toujours pas la formule en A2 :

- remettez la formule en question en A2
- Tout en restant sur A2, allez dans le menu excel et cliquez sur "Création de tableau" (à droite de AIDE)
- A gauche, cliquez sur l'icone "Redimensionner le tableau" puis OK

Refaites un test

Edit : supprimez aussi cette ligne dans le code recup Info --> .DataBodyRange.Item(lig, 1) = c.Offset(0, 2).Value


Bonjour,

Le problème persiste.

j'ai réalisé les manipulations que vous avez indiqué mais ça ne marche pas ( ça marche quand je saisie la référence directement manuellement dans le tableau Récupération info)

Mais lorsque j'ajoute une nouvelle référence via le bouton valider ( exmple référence 33669) la formule colonne A n'est toujours pas la. Pouvez vous essayer de cette manière ?

Que dois-je faire pour les liens ? j'ai supprimé

Mais lorsque j'ajoute une nouvelle référence via le bouton valider ( exmple référence 33669) la formule colonne A n'est toujours pas la. Pouvez vous essayer de cette manière ?

vous avez bien supprimé la ligne de code ?


Edit :

- Veillez à n'avoir que la ligne 2 dans votre tableau (comme sur votre fichier posté en V3)
- Ajoutez votre formule en A2
- éventuellement enregistrez votre fichier
- sélectionnez uniquement A2 à E2, click droite puis "supprimer" --> "Lignes de tableau" (vous devez voir lignes de tableau)
- désactivez la ligne de code que je vous ai mentionnée dans l'édit de mon post précédent (c'est elle qui supprime votre formule)

Faites un test

Rechercher des sujets similaires à "recherche multiples resultats"