Macro : Boucle ? recherche ? utiliser les coordonnées de cellule ?

sourcier08

XLDnaute Occasionnel
Bonjour à tous,

Cela fait 2 jours que je flanche sur mon problème. C'est pourquoi, je viens vous l'exposer.

À l'aide d'une macro, j'aimerai effectuer une recherche dans un tableau. Chaque colonne est identifiée (plage nommée) respectivement : éléments, item1, item2, item3, item4.
Ce que j'ai essayé de faire, c'est une recherche inclue dans une boucle telle que

Code:
For each x in range("item1 ")
       If  x = "la valeur choisie" then
       
récupère la valeur de la cellule dans la plage éléments qui est sur la même ligne que l'item trouvé dans le tableau et va la coller sous la valeur choisie


            Exit For
       End If
Next x


ensuite, on répète ça pour les 3 autres items

et le tour est joué

Je n'y arrive pas. Ça ne doit pourtant pas être bien compliqué mais je ne m'en sors pas.
Depuis deux jours que je m'arrache les cheveux avec ça. Je n'ai trouvé aucun exemple pouvant m'aider...


Je remercie d'avance ceux qui pourront m'aider sur ce sujet.
En expliquant le mieux possible les codes que vous fournirez.
 

Pièces jointes

  • test1.xlsm
    17.8 KB · Affichages: 41
  • test1.xlsm
    17.8 KB · Affichages: 48
  • test1.xlsm
    17.8 KB · Affichages: 49

kjin

XLDnaute Barbatruc
Re : Macro : Boucle ? recherche ? utiliser les coordonnées de cellule ?

bonsoir,
Pas sûr d'avoir tout compris...
Voir PJ
A+
kjin
 

Pièces jointes

  • sourcier.xls
    36.5 KB · Affichages: 61
  • sourcier.xls
    36.5 KB · Affichages: 61
  • sourcier.xls
    36.5 KB · Affichages: 48

sourcier08

XLDnaute Occasionnel
Re : Macro : Boucle ? recherche ? utiliser les coordonnées de cellule ?

Salut,

Merci pour ce début. Mais effectivement, tu n'as pas bien compris (sûrement que j'aurais du ajouter quelques explications)

Par rapport au tableau de gauche, dans la seconde colonne, nous commençons les éléments.
Nous voyons que seul john possède l'élément "feu" qui est dans la plage que j'ai nommé item1.
Donc, seul le prénom de john doit apparaître dans la première colonne du tableau à droite "qui item1" car en H3, je choisis l'élément "feu" à rechercher sur la première colonne du tableau "éléments".
En suivant ce principe, si je viens à mettre "terre" en I3, john et jeanne devraient apparaître en I4 et I5.

Pour résumer, la colonne H est liée à B, I à C, J à D et K à E.


Je pense que ces explications t'aideront à mieux m'aider.

Par contre, si tu peux mettre des commentaires dans le code afin de m'expliquer le mieux possible le code, ça m'aiderait encore plus. Je n'ai pas envie de venir ici, demander un code, dire merci et au revoir sans savoir comment il fonctionne.
J'aime bien apprendre et en retour donc, pouvoir aider d'avantage les autres...

Je te remercie beaucoup.


En fait, j'ai bien regardé ton code, je n'ai pas tout saisi et je me pencherai bien dessus mais j'ai réussi à l'adapter pour qu'il réagisse comme je veux. J'ai du renommer quelques cellules/plage en plus (je m'y attendais à l'origine) mais, tout va bien...


Je te remercie. Mon gamin sera super content.
 

Pièces jointes

  • sourcier.xls
    39 KB · Affichages: 40
  • sourcier.xls
    39 KB · Affichages: 40
  • sourcier.xls
    39 KB · Affichages: 41
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Macro : Boucle ? recherche ? utiliser les coordonnées de cellule ?

Bonsoir,
J'ai juste réadapté les plages nommées et rajouté des listes de validation pour le choix des éléments en H3:K3
Deux solutions: l'une qui actualise le tirage en appuyant sur le bouton, l'autre qui actualise dès qu'un nouveau choix est validé dans les listes.
La liste des éléments nommées "Elements" est commune aux 2 solutions et peut être située n'importe où dans le classeur
Code:
Sub NewChoix()
Dim rng As Range, choix As Range
Dim Adresse$, x As Byte, y As Byte
x = 4
y = 2
With Feuil1
    [Tirage].ClearContents
    [Base].Interior.ColorIndex = xlNone
    For Each choix In [MonChoix]
        Set rng = [Base].Columns(y).Find(choix)
        If Not rng Is Nothing Then
            Adresse = rng.Address
            Do
                .Cells(x, choix.Column) = .Cells(rng.Row, 1)
                rng.Interior.ColorIndex = choix.Interior.ColorIndex 'facultatif
                x = x + 1
                Set rng = [Base].Columns(y).FindNext(rng)
            Loop While Not rng Is Nothing And rng.Address <> Adresse
        End If
        x = 4
        y = y + 1
    Next
End With
End Sub
Le reste du code est situé dans le module de chacune des 2 feuilles
Voir PJ
A+
kjin
 

Pièces jointes

  • sourcier2.xls
    53.5 KB · Affichages: 38
Dernière édition:

sourcier08

XLDnaute Occasionnel
Re : Macro : Boucle ? recherche ? utiliser les coordonnées de cellule ?

Juste un petit message pour présenter la version finale de ce que mon gamin voulait réellement. Il a beaucoup changé d'avis en cours de route mais j'ai fini par réussir à faire ce qu'il voulait.

Par contre, pour le tri (afin de supprimer l'ingrédient qu'il retrouve forcément mais qui est mon choix donc inutile de l'afficher dans les trouvailles), ne sachant pas le faire proprement, je l'ai enregistré la macro avec l'outil d'enregistrement. Ce n'est pas propre mais ça fonctionne.


Merci beaucoup kjin pour l'aide.
 

Pièces jointes

  • Skyrim_alchimiste.xlsm
    35.9 KB · Affichages: 56
Dernière édition:

Discussions similaires

Réponses
4
Affichages
166

Statistiques des forums

Discussions
312 155
Messages
2 085 815
Membres
102 991
dernier inscrit
remyexcel