Correspondance liste plan
Le
JulieH
Bonjour à toutes et tous,
Dans un fichier, j'ai 2 feuilles (Pour faire simple, je vais prendre
l'exemple d'élèves) :
Dans la première (BdeD), j'ai une liste de noms en colonne A (longueur
indéfinie) et un numéro de bureau en colonne B.
Dans la seconde (Plan), j'ai une sorte de plan avec les N° de bureaux.
Comme il y en a un peu partout, j'ai défini un Nom avec une plage
discontinue (ListeTables ='Plan de la salle'!$B$2:$AA$2;'Plan de la
salle'!$B$4:$AA$4
Ce que je souhaite faire en VBA :
Parcourir toutes les cellules de la "ListeTables", chaque fois que la
macro trouve le même numéro dans la "BdeD", mettre sur le plan le nom
d'élève correspondant(le mettre dans la cellule en dessous du numéro de
bureau).
Toutes les cellules de mon plan, n'ont pas forcément un nombre
correspondant dans la BdeD.
Merci pour vos idées.
Julie
Dans un fichier, j'ai 2 feuilles (Pour faire simple, je vais prendre
l'exemple d'élèves) :
Dans la première (BdeD), j'ai une liste de noms en colonne A (longueur
indéfinie) et un numéro de bureau en colonne B.
Dans la seconde (Plan), j'ai une sorte de plan avec les N° de bureaux.
Comme il y en a un peu partout, j'ai défini un Nom avec une plage
discontinue (ListeTables ='Plan de la salle'!$B$2:$AA$2;'Plan de la
salle'!$B$4:$AA$4
Ce que je souhaite faire en VBA :
Parcourir toutes les cellules de la "ListeTables", chaque fois que la
macro trouve le même numéro dans la "BdeD", mettre sur le plan le nom
d'élève correspondant(le mettre dans la cellule en dessous du numéro de
bureau).
Toutes les cellules de mon plan, n'ont pas forcément un nombre
correspondant dans la BdeD.
Merci pour vos idées.
Julie

Poser une question


Espérant avoir bien compris ton attente
soit feuil1 colonne A les noms colonne B les numéros
soit feuil2 de B2 à AA4 les numéros
je te propose ce code :
For Each c In Worksheets("Feuil2").Range("B2", "AA4")
Sheets("Feuil1").Activate
Range("B1").Activate
On Error Resume Next
Range("B1", "B" & Range("B65535").End(xlUp).Row).Find(What:=c,
After:=Range("B1"), LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:= _
xlNext, MatchCase:úlse, SearchFormat:úlse).Activate
If ActiveCell.Address c.Offset(1, 0) = Range("A" & ActiveCell.Row)
End If
Next
le nom en feuil2 en dessous du numéro
Celà devrait te convenir
Dis moi !!!!!
Je ne suis pas sùre de m'être bien expliquée. En tous les cas, je ne
m'en sors pas avec ton code.
J'ai mis un exemple simplifié sur Cjoint.
Julie
http://cjoint.com/?dFolwM6nt5
Tes explications étaient parfaites
Je les avais bien cernées
Il fallait seulement bien adapter mon code en fonction de ton document
(Nom onglet, colonnes concernées)
Et tout baigne je pense
Ci-joint ton document corrigé avec ma Macro "Traitement"
http://www.cijoint.fr/cjlink.php?fi...El98Q.xls.
Donnes moi ton sentiment !!!!
Pourquoi VBA?
=SI(ESTNA(EQUIV(B2;Bureau;0));"";INDEX(Noms;EQUIV(B2;Bureau;0)))
JB
On 31 mar, 14:13, JulieH
que j'avais imaginé (2 for each consécutifs).
Si je peux te déranger encore un peu, je souhaiterais mettre une option
supplémentaire :
Dans la colonne suivante, en face chaque nom, j'ai un code : A, B, C, D.
J'aimerais que dans le plan, le fond de la cellule soit en couleur
(rouge si A, bleu si B...).
Encore merci pour l'aide.
Julie