VBA recherche de données

Bonjour à tous,

Je viens vers vous car je n'ai aucune idée de comment réaliser la boucle afin de faire ma recherche de données. Après beaucoup d'heures passées à trouver des formules, je n'ai plus d'autres choix de venir vers vous pour du VBA.

Dans le fichier joint en feuille 1 nous pouvons retrouver ma BDD avec le nombre d’occurrence que le code apparait, ainsi que les différents type de matières.

En feuille 2 c'est mon extraction de données. Dans cette feuille, j'aimerais avoir pour chaque code les différentes matières associées. Attention, pour un même code, il peut y avoir différentes matières prioritaires 1. Je pensais à réaliser un copier coller des cellules pleines mais je n'y arrive pas. Si vous avez une solution pour m'aider, j'en serais très reconnaissant!

Merci d'avance.

Damien

9test.xlsx (18.02 Ko)

Salut Damien,

Je ne suis pas sur d'avoir bien compris ton besoin.

Tu as une Base de données en feuil1 et en feuil2 l'exploitation des données de la feuil1.

Avec pour Objectif :

Avoir pour chaque code les matières associées

Proposition de solution :

TCD avec tes codes en ligne et les matières en colonne et nombre de matière en valeur.

a+

6test.xlsx (17.81 Ko)

Bonjour Dgerard7 le forum

bon alors tu veux quoi??? ta colonne occurrence on en fait quoi ???

1) pour une même référence on additionne les occurrences ??

2) les prioritaires 1 à 3, on les notes mais comment? la valeur de la colonne?? et quoi d'autre ??

tu peux nous faire un tableau manuellement du résultat que tu souhaites obtenir pour une ou deux références STP et on va te faire cela

à te relire

a+

Papou

Bonjour Damien et le forum

Voici une idée en PJ

Copie dans la feuille3 de tous les codes qui ont une information en colonne C, D ou E.

Cdt

Henri

4test-dgerard7.xlsm (26.73 Ko)

Re bonsoir,

Je n'avais pas pris en compte la remarque suivante.

Attention, pour un même code, il peut y avoir différentes matières prioritaires 1.

J'ai ajouté une autre macro (Essai3) pour en tenir compte, qui est la synthèse des macros "Essai1" et "Essai2"

cdlt

Henri

Bonsoir Dgérard7 AFEH le forum

Voilà ton fichier en retour avec ce que tu veux

je n'ai pas tenu compte des occurrences, car je ne vois pas à quoi cela servirait.

si besoin tu me le dis et je rajouterai

a+

Papou

PS: AFEH Henri, bien mais un peu compliqué pour rien, mais tu as réussi à sortir un résultat bravo

Bonsoir Dgérard7 AFEH le forum

Voilà ton fichier en retour avec ce que tu veux

la V2 tient compte du nombre d'occurrences, même si je ne vois pas à quoi cela va servir.

a+

Papou

Bonjour,

Paritec écrit:

PS: AFEH Henri, bien mais un peu compliqué pour rien, mais tu as réussi à sortir un résultat bravo

Désolé, mais je construis mes codes avec mes petites connaissances en VBA, et j'aboutis au même résultat que toi.

Pourquoi ma solution suivante (un peu compliqué pour rien, dis-tu) ne te convient pas?

Sub Essai3()
Set Ws1 = Sheets("Feuil1")
    Set Ws2 = Sheets("Feuil3")
     dl1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne feuille1
     dl2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row + 1 'dernière ligne vide feuille3
     For Each c In Ws1.Range("A2:A" & dl1)
     i = c.Row
     If Ws1.Range("C" & i) <> "" Or Ws1.Range("D" & i) <> "" Or Ws1.Range("E" & i) <> "" Then
            If c = Ws2.Range("A" & dl2 - 1) Then
                Ws2.Range("B" & dl2 - 1) = Ws2.Range("B" & dl2 - 1) & " " & Ws1.Range("C" & i)
                Ws2.Range("C" & dl2 - 1) = Ws2.Range("C" & dl2 - 1) & " " & Ws1.Range("D" & i)
                Ws2.Range("D" & dl2 - 1) = Ws2.Range("D" & dl2 - 1) & " " & Ws1.Range("E" & i)
            Else
                Ws1.Range("A" & i).Copy Destination:=Ws2.Range("A" & dl2)
                Ws1.Range("C" & i).Copy Destination:=Ws2.Range("B" & dl2)
                Ws1.Range("D" & i).Copy Destination:=Ws2.Range("C" & dl2)
                Ws1.Range("E" & i).Copy Destination:=Ws2.Range("D" & dl2)
            dl2 = dl2 + 1
            End If
      End If
      Next c

End Sub

On n'est pas sur ce forum pour un challenge, mais pour donner satisfaction au demandeur.

Demandeur qui reste à ce jour sans donner de nouvelles!

Cdt

Henri

Bonjour Henri

Tes codes sont parfait

Bonne journée

Papou

Rechercher des sujets similaires à "vba recherche donnees"