problème VBA Excel rempalcer rechercheV
Bonjour a tous
Donc je suis nouveau sur ce site, pour le travail (je suis alternant et j'ai commencé cette année)
ca j'ai jamais vu aucun autre langages que le C / C++
et mon patron m'a mis sur un projet super dur en VBA Ecxel..
Donc mon niveau est super faible et le temps m'est compté car je dois donner le dossier fini jeudi 31 ^^
donc je vous explique mon problèmes (en diminué)
j'ai un classeur "SCH" avec une feuille "RE" qui sert de base de donnée
j'en ai un autre classeur "CE2000" avec une feuille "CE"
dans "RE" il y a 8(de A à H) colonnes et 51000 lignes ^^
les colonnes qui m'intéresse sont la B et la H
dans la B il y a des références et dans la H les prix
dans "CE" il y a en gros 2 colonnes (la K et la L)
dans la K il y a des références et dans la L je voudrait mettre les prix
mais bon ca serrais trop simple si ca serrait que ca...
dans "RE" les références sont dans l'ordre alphabétique
dans "CE" les références sont dans l'ordre de ca fonction
donc pas le même ordre du tout.
je voudrait donc mettre un bouton dans ma feuille "CE"
qui quand j'appuie dessus pour une plage donnée va chercher le prix par rapport a la référence et le copie.
et avant mon fichier marchait très bien mais avec des RechercheV...
et donc la base de donné à grossis donc il marche plus :(
pour ceux qui connaisse pas rechercheV,
tu choisis que ca te recherche par exemple "AZE" dans un fichier définie
ca va lire dans le fichier sans l'ouvrir
et tu dit qu'il copie la 3ème ligne par rapport a la ligne a droite ou il a trouvé
il la copie dans ton fichier, dans la cellule ou tu as fait ta rechercheV
(désoler je n'explique pas super bien)
Je voudrait donc faire comme une rechercheV
mais en VBA
bon bha j'ai presque trouvé, merci pour l'aide
Bonjour a tous
Donc pour ceux qui recherche comme moi et qui n'on pas d'aide je vous met ce que j'ai trouvé :
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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| Private Sub CommandButton4_Click()
'ICI LA MACRO RECHERCHE LES REFERENCES DANS LE FICHIER RESSOURCE ET
'COPIE DANS CETTE FEUILLE LES PRIX
Sheets("Ma_feuille_ou_je_veux_insérer_les_prix").Select
Dim rngArticle As Range
Dim myWs As Worksheet
Set myWs = ThisWorkbook.ActiveSheet
Set rngArticle = myWs.Range(myWs.Range("K4"), myWs.Range("K4").End(xlDown))
'c'est ici la plage de donné que je veux recherché
' OUVERTURE DU FICHIER DE PRIX (en caché)
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
Dim xlWk As Workbook
Set xlWk = xlApp.Workbooks.Open("C:\Users\fichier_de_prix.xls")
Dim xlWs As Worksheet
Set xlWs = xlWk.Worksheets(1)
' RECHERCHE DE L'ARTICLE DANS L'AUTRE FICHIER(la base de donnée)
Dim rngArticleRecherche As Range
Set rngArticleRecherche = xlWs.Range(xlWs.Range("B2"), xlWs.Range("B65536").End(xlUp))
'c'est ici la plage de donné dans la quel je recherche
Dim rngRefTrouve As Range
Dim cell As Range
For Each cell In rngArticle
Set rngRefTrouve = rngArticleRecherche.Find(cell.Value, , xlValues, xlWhole)
If rngRefTrouve Is Nothing Then
'MsgBox ("ATTENTION l'une ou plus des références est non trouvée")
cell.Offset(, 1).Value = "#N/A"
'si il n'a pas trouvé la ref, je met non-attribué dans la cellule de droite
Else
cell.Offset(, 1).Value = rngRefTrouve.Offset(, 6).Value
'si il trouve alors il met la valeur de la 6em cellule de mon dossier ressources
'dans la cellule de droite de mon dossier que je veux compléter
End If
Next
' LIBERATION DES RESSOURCES (fermeture du fichier caché)
Set xlWs = Nothing
xlWk.Close (False)
Set xlWk = Nothing
xlApp.Quit
Set xlApp = Nothing
End Sub |
Ce code permet de faire une rechercheV sans utiliser toute la RAM
c'est a dire qu'il va chercher une plage de cellule dans un autre fichier "sans l'ouvrir"
et copie la Xème cellule dans ta feuille de départ.