GNT sans publicité, site mobile, fonctionnalitées exclusives...

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
Lire les 8 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
francois.forcet
Le #5428201
Salut Julie
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 !!!!!
JulieH
Le #5428171
Bonjour et merci pour ta réponse,

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

Salut Julie
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 !!!!!


francois.forcet
Le #5428101
Rebonjours Julie

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 !!!!
JB
Le #5428011
Bonjour,

Pourquoi VBA?

=SI(ESTNA(EQUIV(B2;Bureau;0));"";INDEX(Noms;EQUIV(B2;Bureau;0)))

JB



On 31 mar, 14:13, JulieH
Bonjour et merci pour ta réponse,

        Je ne suis pas sùre de m'être bien expliquée. En tou s les cas, je ne
m'en sors pas avec ton code.
        J'ai mis un exemple simplifié sur Cjoint.

Julie

http://cjoint.com/?dFolwM6nt5




Salut Julie
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).Activ ate
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 !!!!!- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



JulieH
Le #5427981
Effectivement, c'était parfait et surtout beaucoup plus rapide que ce
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

Rebonjours Julie

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 !!!!


Publicité
Suivre les réponses
Poster une réponse
Anonyme