Recherche de coordonnees multiples
Bonjour a tous,
Merci d'avance a ceux qui prendront un peu de temps pour m'aider !
(et desolee par avance du clavier sans accents)
Je suis assez novice et manque de syntaxe pour rediger ce que je cherche
Je cherche a faire un bout de code me permettant de trouver dans une seule colonne (tres longue, environ 3000 lignes, suceptible d'augmenter) toutes les coordonnees (lignes du coup) des cellules ou apparait une certaine valeure (recuperee ailleurs). Note : au max il y aura 4-5 valeurs recuperees
Je pensais donc faire une boucle for parcourant toutes les lignes et entrant le numero de la ligne en variable de sortie (du style var1, var2, var3..., incrementees en fonction de la boucle for). Du coup je supposais faire une boucle for et a l'interieur une boucle if pour creer la variable si on trouve la valeur dans la ligne concernee. Le probleme est que je n'arrive pas a ecrire le code !
Bien sur si vous avez une meilleure idee de recherche n'hesitez pas !
Apres j'utiliserai les variables crees a autre chose.
Merci infiniement pour votre aide !
Bonjour
Tu devrais joindre ton fichier et donner un exemple de ce que tu souhaites obtenir.
Bye !
Si ca peut aider j'avais trouve ca mais le soucis est que je n'ai pas exactement compris ce que me sort RechFind.
'Retourne toutes les adresses trouvées dans la recherche
'WksN = nom de la feuille
'Plage = les coordonnées de la plage à parcourir.
'Retour dans le tableau donner en argument.
Function RechFind(ByVal Cle As String, ByVal WksN As String, ByVal Plage As String, ByRef TBadress() As Variant)
Dim Cherche, Ix As Long, PrAddress As String
With Sheets(WksN).Range(Plage)
Set Cherche = .Find(Cle)
If Not Cherche Is Nothing Then
PrAddress = Cherche.Address
Do
ReDim Preserve TBadress(Ix)
TBadress(Ix) = Cherche.Address
Set Cherche = .FindNext(Cherche)
Ix = Ix + 1
Loop While Not Cherche Is Nothing And Cherche.Address <> PrAddress
End If
End With
'nombre d'occurence(s) trouvée(s), Retour 0 si aucune occurence
RechFind = Ix
Set Cherche = Nothing 'Libére la mémoire occupée par l'objet.
End Function
Sub RechMulti(a)
Dim R As Long, TB() As Variant
Dim i As Integer
Dim what As String
what = a
R = RechFind(what, "BOM", "D:D", TB())
If R > 0 Then
For i = 0 To R - 1 ' ou ubound(TB)
'exemple
Sheets("BOM").Cells(i, 12) = Range(TB(i)).Row
Next i
End If
End SubEt je ne comprend pas exactement ce que fait l'exemple a la fin du sub. Pour ma part, j'aimerai, avec le numero de ligne que je cherche, sortir la valeur de la cellule sur la meme ligne 2 colonnes apres
Bref j'essaye de faire un genre vlookup multiple si vous me suivez
Avec document pour etre plus clair et plus complet
Le but serait que quand je change un F# dans la premiere colonne de la feuille Items (1), je fasse un genre de vlookup multiple pour recuperer en variable les valeurs des "Components" de la feuille BOM
Apres, pour info, je les traiterai pour les mettre dans les bonnes cases de la feuille Item (1) en fonction de leur premiere lettre.
Il me faudra donc egalement faire une private sub pour quand je change mon F#
Desolee des trois messages, c'est pas evident a expliquer mais j'espere etre un minimum clair.
maud_summer a écrit :j'espere etre un minimum clair.
Désolé mais pour moi, ça ne l'est pas du tout.
Tu devrais donner un exemple de ce que tu attends.
Bye !
Bonjour,
et tu veux ça absolument en vba ?
un filtre élaboré ne convient pas ?
pourquoi les titres des 2 feuilles ne sont pas identiques ? Pense bien que toi tu connais ton sujet, pas nous
P.