IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Fonction de recherche avec résultats multiples


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Janvier 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2023
    Messages : 2
    Par défaut Fonction de recherche avec résultats multiples
    Bonsoir à tous. Après avoir écumé la mer de VB script (développement de macros sous Catia), je m'attaque non sans mal à du VBA sous Excel.
    Il me reste un problème sur lequel je but. J'ai une base de données avec laquelle je travaille afin d'en extraire différentes parties pour réaliser plusieurs documents.
    Dans le tableau en pièce jointe, je rempli la cellule jaune (ensemble mécano-soudé) et grâce (logiquement) à la macro , les références des composants sont inscrit dans les colonnes Bleu et verte.
    Via des fonctions, j'arrive à récupérer : les images des pièces, leur emplacement de stockage et la quantité par produit final. Manuellement ce la fonctionne parfaitement.
    Lorsque je lis la macro elle me trouve bien les références que je cherche, par contre elle ne les inscrits pas. La suite de ma problématique sera de trier ces données par type et par emplacement.
    Tous les pièces catégorisées en APF devrons être dans la colonne verte et les autres dans la colonne bleu. De plus, les pièces devrons être triées dans l'ordre croissant suivant le critère Emplacement.
    Mais chaque chose en sont temps.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Sub test()
    Dim i As Byte, Col As Byte
    Dim ProductRef As Range
    Dim Last_Row As Integer
    Dim nblig As Integer
    Dim PartNbr As String
    With Workbooks(Db_Name).Sheets("Catalogue")
        For Each ProductRef In .ListObjects("BDD").ListColumns(19).DataBodyRange
            On Error Resume Next
            With ThisWorkbook.Sheets("FDP")
            Col = .Range("B4").Find(ProductRef.Value, LookIn:=xlValues, lookat:=xlWhole).Column
                 If Col > 0 Then
                       Last_Row = .Cells(Rows.Count, Col).End(xlUp).Row + 1
                      .Cells(Last_Row, Col) = ProductRef.Offset(0, -17).Value
                        PartNbr = ProductRef.Offset(0, -17).Value
                 End If
               Col = 0
            End With
        Next ProductRef
    End With
    End Sub
    02Fabrication.zip
    03Soudure.zip
    Fiche de poste kit soudure automatiqueS.xlsm
    Organisation_fabricationS.xlsm
    Images attachées Images attachées  

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Supprimez déjà la ligne On Error Resume Next afin de voir l'erreur que renvoie VBA.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Janvier 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2023
    Messages : 2
    Par défaut
    Bonjour.

    J'ai cette erreur
    Nom : Capture d’écran 2023-02-19 184128.png
Affichages : 99
Taille : 7,1 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Col = .Range("B4").Find(ProductRef.Value, LookIn:=xlValues, lookat:=xlWhole).Column

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il vaudrait mieux éditer votre code avec les balises prévues à cet effet car il est difficile de vous aider sans préciser le numéro de la ligne où se trouve l'erreur.

    Vous avez imbriqué deux blocs With...End...With qui n'ont aucun lien de parenté entre-eux

    Le premier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Workbooks(Db_Name).Sheets("Catalogue")
    Le second
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ThisWorkbook.Sheets("FDP")
    donc inévitablement c'est le crash avec la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Col = .Range("B4").Find(ProductRef.Value, LookIn:=xlValues, lookat:=xlWhole).Column
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [Toutes versions] Fonction de recherche avec plusieurs résultats
    Par Theboobasparks dans le forum Excel
    Réponses: 9
    Dernier message: 27/01/2019, 19h13
  2. [XL-2003] Fonction recherche avec résultat = n° lignene
    Par Toto_le_héros38 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2011, 19h10
  3. Recherche avec réponse multiple
    Par exover dans le forum Excel
    Réponses: 12
    Dernier message: 26/03/2008, 17h36
  4. Recherche avec résultat en %
    Par Jimy6000 dans le forum Excel
    Réponses: 4
    Dernier message: 13/02/2008, 04h25
  5. Recherchev poussée avec résultats multiples
    Par solorac dans le forum Excel
    Réponses: 13
    Dernier message: 22/06/2007, 12h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo