Excel VBA Rechercher et Afficher les données
Bonjour,
Je cherche désespérément une solution sur vba par macro pour afficher des données selon plusieurs critères:
1/ J'ai dans une feuille un tableau (Sheets "BDD") en colonne les données pré-enregistrer dans ce tableau j'ai besoin d'afficher les données de la colonne Y:Y en fonction de plusieurs critères de la feuille ("FEuil1") positioné en range ("C2:C12") pour les codes produits / Range ("A1") pour un critère géographique/Range ("B2") pour la période.
2/ Ainsi la macro recherche les données de la ( Sheets("BDD")) en fonction des criètères de la ("Feuil1") & Range ("A1") & Range ("B2")
Soit dans la Sheets ("BDD") chaque critère de la feuil1 se retrouve dans l'ordre:
- Code produit Colonne A:A
- Géographie colonne B:B
- Période colonnne C:C
- Données que l'on veut afficher à côté de chaque code Produit, soit pour chaque code une valeur se trouve en colonne Y:Y
3/Afficher les données à coté de chaque code produit dans la feuil1 soit "D2:D12" et si pas de données trouvé, afficher 0
Je précise que j'ai essayé avec une formule matricielle index equiv avec concaténation et que cela marche très bien, mais c'est hyper lourd au niveau temps de chargement je préfèrerai en vba, d'où l'idée de faire appel à votre aide.
Merci beaucoup pour le coup de main, j'ai essayé différentes techniques mais je tourne beaucoup en rond...je ne trouve pas la solution sur les différents forum. Et comme ici j'avais déjà reçu une superbe aide!!!
Merci beaucoup
Merci pour le conseil mais une boucle avec Find ?
Merci,
J'ai suivi votre conseil en utilisant l'enregistreur Macro, mais ça ne m'avance pas trop...
Voici où j'en sui à partir de plusieurs forum...:calim2:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Sub rechercherafficher()
Dim a as String
Dim b as String
Dim c as Range
Dim h as Range
a= Range ("A2") ' correspond au critère 1
b= Range ("B3") ' correspond au critère 2
c = Range ("C2:C12) ' correspond au critère Code produit où je vais affecter une boucle pour chaque ligne
For each cell in c
Nom= cell.Value
With Sheets ("BDD")
set h = .columns("A:A" & "C:C"& "M:M"&"Y:Y").Find (Nom)
' "A:A" correspond au code produit soit c/ C:C correspond au critère 1 période/ "M:M" correspond au criètre 2 géographie/ "Y:Y" à la donnée que l'on recherche soit "Nom= Cell.value) le fameux find (Nom)
if not h is nothing then
Sheets ("Feuil1"). range ("D" & cell.row).value = h.value
Else
MsgBox "Ligne pas encore crée)
End if
End with
next cell
End Sub |
Le problème ici s'il y en a qu'un (...) c'est que je ne sais pas comment dans le code cumulé les différents critères....
merci encore pour le coup de main.
Ricoeva
1 pièce(s) jointe(s)
Ci-joint le fichier en exemple
Merci encore pour le coup de main, je suis vraiment navré de demander de l'aide...mais je ne trouve pas la solution...
Au passage je n'ai pas réussi à mettre le fichier avec la macro sans passer par le fichier zip
merci beaucoup
J'ai excel 2010
ricoeva
Extraction et Modification de la base de Donnée
Bonjour,
Je me demander si tu connaissais un moyen simple par vba une fois l'extraction des lignes faite (grâce à toi hier soir) sur la feuil1, d'écraser les données de la BDD une fois modofication faite dans la feuil1 suite à l'extraction.
Par Ecraser je veux dire copier les données de la feuil1 et de remplacer les données dans la BDD.
Est-ce que le vba filtre automatique marcherai dans l'autre sens ?
Merci
Mercatog tu n'as pas une idée pour la partie Modification?
Bonjour Mercatog,
Tu n'aurais pas une idée sur cette partie de là de modification d'enregistrement ?:calim2:
Ci-dessous le lien de ce nouveau tag crée:
http://www.developpez.net/forums/d12...-base-donnees/
Merci pour le coup de main