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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacky
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" a écrit dans le message de news:
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 .
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" <youwangsoft@gmail.com> a écrit dans le message de news:
c80258d6-618d-43ea-96d6-1bc5dfa09474@y4g2000yqm.googlegroups.com...
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
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" a écrit dans le message de news:
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
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.
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.
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.