Recherche valeur tableau puis copie colonne

Fermé
siouplait - 4 déc. 2013 à 17:33
Cpafo Messages postés 1 Date d'inscription jeudi 5 décembre 2013 Statut Membre Dernière intervention 5 décembre 2013 - 5 déc. 2013 à 10:04
Bonjour,


Je me permets d'investir les lieux après des heures de désarroi à tenter de programmer une macro...

Je vous explique la situation :

Je souhaite mettre en place un comparateur d'après des données stockées sur un autre onglet.

J'ai créé un userform dans lequel on peut choisir jusqu'à 5 valeurs à comparer (liste de choix déroulante).

Prenons l'exemple pour une valeur pour l'instant :
Après avoir renseigné ces combobox, je souhaiterai que la macro recherche la valeur dans un autre onglet (sur une ligne), qu'elle copie la colonne de la valeur trouvée pour enfin la recopier sur un autre onglet.

Tout cela pour pouvoir obtenir au final 2, 3, 4 ou 5 colonnes les unes à côté des autres.

Je vous serais reconnaissant au plus haut point de bien vouloir m'aider à trouver une solution ou tout du moins des pistes de réflexion!

Merci d'avance
A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 5/12/2013 à 08:46
Bonjour,

Un exemple à adapter
https://www.cjoint.com/?3LfiIYg5i42

comme je n'allais créer un userform juste pour te donner une piste, REf est ici une valeur. a toi d'adapter car tu as été plutôt avare dans tes renseignements

Option Explicit
Const Lig As Integer = 3
Sub xxx()
Dim Col1 As Integer, Derlig As Integer
Dim Ref 'à preciser
Dim Col2 As Integer, Tablo()
'Ref = comboBox1.Value 'USERFORM
Ref = "zaza100" 'MAQUETTE W
With Sheets(1)
Col1 = .Rows(Lig).Find(Ref).Column
Derlig = .Columns(Col1).Find("*", , , , , xlPrevious).Row
Tablo = Application.Transpose(.Range(.Cells(Lig, Col1), .Cells(Derlig, Col1)).Value)
End With

With Sheets(2)
On Error Resume Next
Col2 = .Rows(Lig).Find("*", , , , , xlPrevious).Column + 1
If Err.Number > 0 Then Col2 = 1

.Cells(Lig, Col2).Resize(UBound(Tablo), 1) = Application.Transpose(Tablo)
End With

End Sub


La maquette de Travail
https://www.cjoint.com/?3LfiSQ3WV5x

Michel
0
Cpafo Messages postés 1 Date d'inscription jeudi 5 décembre 2013 Statut Membre Dernière intervention 5 décembre 2013
Modifié par Cpafo le 5/12/2013 à 10:13
Bonjour Michel,

Tout d'abord merci de ta réponse!

J'ai tenté d'appliquer ta formule mais malheureusement ça me donne toujours le même résultat... C'est-à-dire pas grand chose.

J'avais "tenté" un code de type :

Sub chercher()

ComboBox2.Value = dim1
ComboBox3.Value = dim2
ComboBox4.Value = dim3
ComboBox5.Value = dim4
ComboBox6.Value = dim5


dim1 As Variant
dim2 As Variant
dim3 As Variant
dim4 As Variant
dim5 As Variant
x As Range


Set x = Sheets("Compagnies").Range("D1:Y1").Find(dim1, , xlValues, xlWhole, , , False)


End Sub


..que je voulais compléter par la suite mais ça ne semble pas fonctionner non plus.

Voici le fichier, tu y verras surement plus claire : https://www.cjoint.com/c/CLfkneUe6QO

Je reste pendu à ta réponse en espérant y voir plus clair ^^
0