recherche par rapport au titre de la colonne

Le
joseph84
Bonjour tout le monde

je voudrais copier une colonne et la coller sur une colonne qui se
trouve dans un autre classeur

je sais comment faire ca avec les noms des colonnes cad (A,B,C..AB)
mais je voudrais cette fois ci par rapport au titre de cette colonne

exemple:

Classeur source:

A B C D

ID Nom Prenom adresse

12234 torchon joel 12546 drg

562365 roch christian 59856 wef

Classeur destination


A B C
D E F G

ID
Nom adresse Prenom

562365 roch
59856 wef christian

12234 torchon
12546 drg joel

Donc la macro va chercher le titre de la colonne par exemple (Nom)
dans le classeur et camprarer le ID et copy
l information puis elle la colle dans la colonne destination tjr par
rapport a l ID

NB: les noms des colonnes differe d un classeur a l autre et la ligne
ou se trouve les titres differe aussi

merci
.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #23374461
Bonsoir,

Dans le classeur source
La zone des titres (a1;d1) nommée ' titre '
La zone complète des données nommée ' zone '
La zone des noms nommée ' noms '

Dans le classeur destination
En ligne 1 les titres (Orthographe idem que classeur source)
Dans cet exemple les noms se trouvent en colonne 2 (B2 est donc à adapter)
en A2
=SI($B2="";"";INDEX(ClasseurSource!zone;EQUIV($B2;ClasseurSource!noms;0);EQUIV(A$1;ClasseurSource!titre;0)))

Formule a recopier autant de fois que besoin
--
Salutations
JJ


"joseph84"
Bonjour tout le monde

je voudrais copier une colonne et la coller sur une colonne qui se
trouve dans un autre classeur

je sais comment faire ca avec les noms des colonnes cad (A,B,C..AB)
mais je voudrais cette fois ci par rapport au titre de cette colonne

exemple:

Classeur source:

A B C D

ID Nom Prenom adresse

12234 torchon joel 12546 drg

562365 roch christian 59856 wef

Classeur destination


A B C
D E F G

ID
Nom adresse Prenom

562365 roch
59856 wef christian

12234 torchon
12546 drg joel

Donc la macro va chercher le titre de la colonne par exemple (Nom)
dans le classeur et camprarer le ID et copy
l information puis elle la colle dans la colonne destination tjr par
rapport a l ID

NB: les noms des colonnes differe d un classeur a l autre et la ligne
ou se trouve les titres differe aussi

merci
.
Gloops
Le #23375161
Jacky a écrit, le 18/05/2011 22:10 :
Bonsoir,



Bonjour,


Dans le classeur source
La zone des titres (a1;d1) nommée ' titre '
La zone complète des données nommée ' zone '
La zone des noms nommée ' noms '

Dans le classeur destination
En ligne 1 les titres (Orthographe idem que classeur source)
Dans cet exemple les noms se trouvent en colonne 2 (B2 est donc à ada pter)
en A2
=SI($B2="";"";INDEX(ClasseurSource!zone;EQUIV($B2;ClasseurSource!no ms;0);EQUIV(A$1;ClasseurSource!titre;0)))

Formule a recopier autant de fois que besoin



Au demeurant, ça peut simplifier la syntaxe d'appel de mettre le numé ro
de colonne dans une fonction

Public Function NumColDe(strNomCol As String) As Integer
On Error Goto ErrNumColDe
NumColDe = Equiv(strNomCol, ActiveSheet.Rows(1), 0)
Exit Function
ErrNumColDe:
NumColDe = 0
End Function

Cette fonction retourne le numéro de colonne où est trouvé l'intitu lé en
argument sur la première ligne de la feuille du champ passé en deuxiè me
argument de Equiv. J'ai mis la feuille active, mais selon la conception
du code appelant on peut concevoir de passer la feuille en deuxième
argument de NumColDe, ou de mettre une feuille fixe. Le point auquel il
faut faire attention est de ne pas se mélanger les pinceaux si on a
l'occasion d'utiliser la fonction depuis plusieurs feuilles.
Il va de soi que si l'intitulé est passé avec une faute d'orthographe la
fonction retournera 0 (si l'intitulé passé n'existe pas).

Ainsi, on pourra lire le chiffre d'affaires net sur la troisième ligne :

Index(FeuilleSource, 3, NumColDe("CANET"))

A la place de FeuilleSource il vaut autant mettre le champ utile où se
trouvent les données.

Le numéro de ligne peut aussi être obtenu d'après la valeur d'une
colonne, avec Equiv.
Il peut ensuite s'avérer utile d'écrire une fonction qui retourne la
valeur d'après l'intitulé de la colonne et celui de la ligne.

Une fois le tout bien testé, le but est que ce soit lisible comme modul e.

Oops, je réalise un truc : j'ai l'habitude d'aller chercher les titres
sur la première ligne de la feuille, mais si il s'agit d'un champ nommé
Titre, à la place de ActiveSheet.Rows(1) on mettra
Names("Titre").RefersToRange
ce qui a l'avantage en plus de régler la question de la sélection de la
feuille.

J'espère qu'avec ce que j'ai sous la main pour tester je ne me suis pas
trop mélangé les pinceaux.
Publicité
Poster une réponse
Anonyme