OVH Cloud OVH Cloud

export de classeur?

15 réponses
Avatar
rick
Bonjour,

J'ai un classeur ou se trouve un tableau.
et sur un autre classeur se trouve egalement un tableau.

Je souhaite faire l'export de certaines colonnes de ce tableau du premier
classeur, vers le second classeur ou il y a un autre tableau.

C'est a dire dans mon premier classeur, je souhaite prendre les colonnes A G
H U T
de la ligne 15 à la derniere ligne qui est remplite.
vers les colonnes B F I W Z du second tableau

c'est a dire A---> B
G---->F
H---->I
U---->W
T---->Z

merci d'avance

10 réponses

1 2
Avatar
anonymousA
bonjour,

1-Déterminer les dernières lignes de chaque colonne du tableau à copier.
Ca tu sais faire

2-Faire une boucle for sur chacune des colonnes du tableau en
constituant au préalable pour chacune des colonnes un range reprenant
les cellules de la ligne 15 à la dernière ligne.
Ca tu sais faire aussi

3-Envoyer lors de chaque itération de la boucle for, la colonne
considérée vers la colonne B puis F, I, W,Z par une méthode
traditionnelle de copy d'un range vers un autre range. Ca tu sais faire
aussi.

En fait, donc tu vois tu sais déjà tout faire.Alors à toi de faire !

A+


Bonjour,

J'ai un classeur ou se trouve un tableau.
et sur un autre classeur se trouve egalement un tableau.

Je souhaite faire l'export de certaines colonnes de ce tableau du premier
classeur, vers le second classeur ou il y a un autre tableau.

C'est a dire dans mon premier classeur, je souhaite prendre les colonnes A G
H U T
de la ligne 15 à la derniere ligne qui est remplite.
vers les colonnes B F I W Z du second tableau

c'est a dire A---> B
G---->F
H---->I
U---->W
T---->Z

merci d'avance




Avatar
MichDenis
Bonjour Rick,

Voici une façon de faire :


Dans une ligne de code comme celle-ci :
.Range(.Cells(15, T(A)), .Cells(DerLig, T(A))).Copy _

la variable tableau T(a) remplace ce qui devrait être le numéro de la colonne. à chaque fois que tu fais une boucle, cette valeur
se déplace pour prendre chaque valeur définit dans les tableaux.

Si tu exécutes la macro pas à pas en utilisant la touche F8, place ton curseur au dessus des variables T(A) et T1(A), cela va
t'aider à comprendre l'usage des tableaux dans cette procédure. L'utilisation des tableaux est simplement utilisé pour réduire la
saisie du code, sinon, il faudrait répéter 5 fois la même ligne de code mais à chaque fois en modifiant les adresses seulement.

'--------------------------------------------
Sub CopierColonne()

Dim T As Variant 'Colonne Source
Dim T1 As Variant 'Colonne Destination
Dim DerLig As Long, A As Integer

'Colonne classeur source : 1-5-8-21-20
'Colonne classeur destination : 2-4-9-23-26

'les numéro des colonnes dans une variable tableau
T = Array(1, 5, 8, 21, 20) 'Colonne source
T1 = Array(2, 4, 9, 23, 26) 'Colonne destination
Application.EnableEvents = False
For A = 0 To UBound(T)
'à déterminer Nom de la feuille source des données
With Worksheets("Feuil1")
DerLig = Cells(65536, T(0)).End(xlUp).Row
.Range(.Cells(15, T(A)), .Cells(DerLig, T(A))).Copy _
Workbooks("classeur2").Worksheets("Feuil1").Cells(15, T1(A))
'à déterminer le nom du classeur destination
'à déterminer le nom de la feuille destination
End With
Next
Application.EnableEvents = True
End Sub
'--------------------------------------------


Salutations!




"rick" a écrit dans le message de news:
Bonjour,

J'ai un classeur ou se trouve un tableau.
et sur un autre classeur se trouve egalement un tableau.

Je souhaite faire l'export de certaines colonnes de ce tableau du premier
classeur, vers le second classeur ou il y a un autre tableau.

C'est a dire dans mon premier classeur, je souhaite prendre les colonnes A G
H U T
de la ligne 15 à la derniere ligne qui est remplite.
vers les colonnes B F I W Z du second tableau

c'est a dire A---> B
G---->F
H---->I
U---->W
T---->Z

merci d'avance
Avatar
anonymousA
bonjour,

je n'ai rien contre le fait de répondre à Rick et pour tout dire , je
réprouve l'animosité dont il fait l'objet.
Cependant, ne crois-tu pas que tout macher tout le temps pour lui est
antipédagogogique?
Comment toi-même as-tu pu apprendre si tu ne t'es jamais exercé à
comprendre , ce qui obligatoirement nécessite de se planter et d'
utiliser tes erreurs ou tes recherches pour progresser.
Sincèrement et bien que je pense que tu fasses peu de cas de ce que je
dis ,compte tenu des déclarations que tu as pu communiquer sur ce forum,
il me semble que tu fais plus de bien à toi qu'à lui.
Le guider est une bonne chose, réaliser à sa place me parait une erreur
d'aileurs d'autant plus néfaste que le maintien de son programme dans te
temps dépendra aussi de sa capacité à comprendre la manière dont il est
construit.
Enfin, c'est juste ce que j'en dis.

Cordialement.

A+
Bonjour Rick,

Voici une façon de faire :


Dans une ligne de code comme celle-ci :
.Range(.Cells(15, T(A)), .Cells(DerLig, T(A))).Copy _

la variable tableau T(a) remplace ce qui devrait être le numéro de la colonne. à chaque fois que tu fais une boucle, cette valeur
se déplace pour prendre chaque valeur définit dans les tableaux.

Si tu exécutes la macro pas à pas en utilisant la touche F8, place ton curseur au dessus des variables T(A) et T1(A), cela va
t'aider à comprendre l'usage des tableaux dans cette procédure. L'utilisation des tableaux est simplement utilisé pour réduire la
saisie du code, sinon, il faudrait répéter 5 fois la même ligne de code mais à chaque fois en modifiant les adresses seulement.

'--------------------------------------------
Sub CopierColonne()

Dim T As Variant 'Colonne Source
Dim T1 As Variant 'Colonne Destination
Dim DerLig As Long, A As Integer

'Colonne classeur source : 1-5-8-21-20
'Colonne classeur destination : 2-4-9-23-26

'les numéro des colonnes dans une variable tableau
T = Array(1, 5, 8, 21, 20) 'Colonne source
T1 = Array(2, 4, 9, 23, 26) 'Colonne destination
Application.EnableEvents = False
For A = 0 To UBound(T)
'à déterminer Nom de la feuille source des données
With Worksheets("Feuil1")
DerLig = Cells(65536, T(0)).End(xlUp).Row
.Range(.Cells(15, T(A)), .Cells(DerLig, T(A))).Copy _
Workbooks("classeur2").Worksheets("Feuil1").Cells(15, T1(A))
'à déterminer le nom du classeur destination
'à déterminer le nom de la feuille destination
End With
Next
Application.EnableEvents = True
End Sub
'--------------------------------------------


Salutations!




"rick" a écrit dans le message de news:
Bonjour,

J'ai un classeur ou se trouve un tableau.
et sur un autre classeur se trouve egalement un tableau.

Je souhaite faire l'export de certaines colonnes de ce tableau du premier
classeur, vers le second classeur ou il y a un autre tableau.

C'est a dire dans mon premier classeur, je souhaite prendre les colonnes A G
H U T
de la ligne 15 à la derniere ligne qui est remplite.
vers les colonnes B F I W Z du second tableau

c'est a dire A---> B
G---->F
H---->I
U---->W
T---->Z

merci d'avance





Avatar
rick
michdenis, je voulai savoir pourquoi dans la macro tu désactive les
evenements de la feuilles .

merci d'avance


Bonjour Rick,

Voici une façon de faire :


Dans une ligne de code comme celle-ci :
..Range(.Cells(15, T(A)), .Cells(DerLig, T(A))).Copy _

la variable tableau T(a) remplace ce qui devrait être le numéro de la colonne. à chaque fois que tu fais une boucle, cette valeur
se déplace pour prendre chaque valeur définit dans les tableaux.

Si tu exécutes la macro pas à pas en utilisant la touche F8, place ton curseur au dessus des variables T(A) et T1(A), cela va
t'aider à comprendre l'usage des tableaux dans cette procédure. L'utilisation des tableaux est simplement utilisé pour réduire la
saisie du code, sinon, il faudrait répéter 5 fois la même ligne de code mais à chaque fois en modifiant les adresses seulement.

'--------------------------------------------
Sub CopierColonne()

Dim T As Variant 'Colonne Source
Dim T1 As Variant 'Colonne Destination
Dim DerLig As Long, A As Integer

'Colonne classeur source : 1-5-8-21-20
'Colonne classeur destination : 2-4-9-23-26

'les numéro des colonnes dans une variable tableau
T = Array(1, 5, 8, 21, 20) 'Colonne source
T1 = Array(2, 4, 9, 23, 26) 'Colonne destination
Application.EnableEvents = False
For A = 0 To UBound(T)
'à déterminer Nom de la feuille source des données
With Worksheets("Feuil1")
DerLig = Cells(65536, T(0)).End(xlUp).Row
.Range(.Cells(15, T(A)), .Cells(DerLig, T(A))).Copy _
Workbooks("classeur2").Worksheets("Feuil1").Cells(15, T1(A))
'à déterminer le nom du classeur destination
'à déterminer le nom de la feuille destination
End With
Next
Application.EnableEvents = True
End Sub
'--------------------------------------------


Salutations!




"rick" a écrit dans le message de news:
Bonjour,

J'ai un classeur ou se trouve un tableau.
et sur un autre classeur se trouve egalement un tableau.

Je souhaite faire l'export de certaines colonnes de ce tableau du premier
classeur, vers le second classeur ou il y a un autre tableau.

C'est a dire dans mon premier classeur, je souhaite prendre les colonnes A G
H U T
de la ligne 15 à la derniere ligne qui est remplite.
vers les colonnes B F I W Z du second tableau

c'est a dire A---> B
G---->F
H---->I
U---->W
T---->Z

merci d'avance






Avatar
Pierre CFI [mvp]
bonjour
on voit que tu n'as pas suivi le feuilleton depuis son début, il y a quelques mois :o)
Ces news sont destinés à aider ou se faire aider sur un point précis, en aucun cas ils ne devraient permettre de se payer une appli
assez complexe à l'oeil, surtout quand il s'agit d'un travail qui lui va étre facturé. (merci pour les développeurs professionnels
dont je faisais partis)
Il peut arriver (çà m'arrive sur access) de faire pour quelqu'un un travail gratos, mais dans ce cas on communique directement.
Le fait de poser la méme question sous des pseudos différents, a eu le chic d'aggacer certains qui ont crus qu'on les prenait pour
des billes

C'est vrai que depuis son apparition l'ambiance à changé, dommage. je peux te dire qu'il est venu sur d'autres news, il a vite
compris que l'aide et un bouquin étaient indispensables

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net

"anonymousA" a écrit dans le message de news: 4274dced$0$26064$
bonjour,

je n'ai rien contre le fait de répondre à Rick et pour tout dire , je réprouve l'animosité dont il fait l'objet.
Cependant, ne crois-tu pas que tout macher tout le temps pour lui est antipédagogogique?
Comment toi-même as-tu pu apprendre si tu ne t'es jamais exercé à comprendre , ce qui obligatoirement nécessite de se planter et
d' utiliser tes erreurs ou tes recherches pour progresser.
Sincèrement et bien que je pense que tu fasses peu de cas de ce que je dis ,compte tenu des déclarations que tu as pu communiquer
sur ce forum, il me semble que tu fais plus de bien à toi qu'à lui.
Le guider est une bonne chose, réaliser à sa place me parait une erreur d'aileurs d'autant plus néfaste que le maintien de son
programme dans te temps dépendra aussi de sa capacité à comprendre la manière dont il est construit.
Enfin, c'est juste ce que j'en dis.

Cordialement.

A+
Bonjour Rick,

Voici une façon de faire :


Dans une ligne de code comme celle-ci :
.Range(.Cells(15, T(A)), .Cells(DerLig, T(A))).Copy _

la variable tableau T(a) remplace ce qui devrait être le numéro de la colonne. à chaque fois que tu fais une boucle, cette
valeur se déplace pour prendre chaque valeur définit dans les tableaux.

Si tu exécutes la macro pas à pas en utilisant la touche F8, place ton curseur au dessus des variables T(A) et T1(A), cela va
t'aider à comprendre l'usage des tableaux dans cette procédure. L'utilisation des tableaux est simplement utilisé pour réduire la
saisie du code, sinon, il faudrait répéter 5 fois la même ligne de code mais à chaque fois en modifiant les adresses seulement.

'--------------------------------------------
Sub CopierColonne()

Dim T As Variant 'Colonne Source
Dim T1 As Variant 'Colonne Destination
Dim DerLig As Long, A As Integer

'Colonne classeur source : 1-5-8-21-20
'Colonne classeur destination : 2-4-9-23-26

'les numéro des colonnes dans une variable tableau
T = Array(1, 5, 8, 21, 20) 'Colonne source
T1 = Array(2, 4, 9, 23, 26) 'Colonne destination
Application.EnableEvents = False
For A = 0 To UBound(T)
'à déterminer Nom de la feuille source des données
With Worksheets("Feuil1")
DerLig = Cells(65536, T(0)).End(xlUp).Row
.Range(.Cells(15, T(A)), .Cells(DerLig, T(A))).Copy _
Workbooks("classeur2").Worksheets("Feuil1").Cells(15, T1(A))
'à déterminer le nom du classeur destination
'à déterminer le nom de la feuille destination
End With
Next
Application.EnableEvents = True
End Sub
'--------------------------------------------


Salutations!




"rick" a écrit dans le message de news:
Bonjour,

J'ai un classeur ou se trouve un tableau.
et sur un autre classeur se trouve egalement un tableau.

Je souhaite faire l'export de certaines colonnes de ce tableau du premier
classeur, vers le second classeur ou il y a un autre tableau.

C'est a dire dans mon premier classeur, je souhaite prendre les colonnes A G
H U T
de la ligne 15 à la derniere ligne qui est remplite.
vers les colonnes B F I W Z du second tableau

c'est a dire A---> B
G---->F
H---->I
U---->W
T---->Z

merci d'avance






Avatar
jps
s'il s'agit d'un gogol, je dirais non, anononynymousmmous
jps

"anonymousA" a écrit dans le message de
news:4274dced$0$26064$

Cependant, ne crois-tu pas que tout macher tout le temps pour lui est
antipédagogogique?


Avatar
Pierre CFI [mvp]
salut mon petit jps, tu as bien défilé pour que les jeunes travaillent le fameux lundi, afin de nous payer des brumisateurs

Je suis pas sur qu'il soit si gogol que çà notre rick, il se fait faire une appli qui va quand méme coûter bonbon au client final
:o)

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net

"jps" a écrit dans le message de news:
s'il s'agit d'un gogol, je dirais non, anononynymousmmous
jps

"anonymousA" a écrit dans le message de
news:4274dced$0$26064$

Cependant, ne crois-tu pas que tout macher tout le temps pour lui est
antipédagogogique?





Avatar
MichDenis
Bonjour,

| je n'ai rien contre le fait de répondre à Rick et pour tout dire , je
| réprouve l'animosité dont il fait l'objet.

Je me contente de répondre si j'en ai envie. Le nom du demandeur et ce qu'il fait avec la réponse que je lui donne, je m'en fous.
C'est la question qui m'interpelle, point à la ligne. Mes interventions traitent d'Excel et très rarement sur les demandeurs. Comme
c'est un service public de Microsoft animé par des bénévoles, tous devraient pouvoir y accéder sans la crainte d'être ridiculisé ou
insulté par d'autres intervenants.


| Cependant, ne crois-tu pas que tout macher tout le temps pour lui est
| antipédagogogique?

Mes réponses tiennent compte au mieux de ma connaissance du niveau de compréhension du demandeur que je crois détecter dans la
formulation de sa question. La grande majorité de mes réponses sont accompagnées de commentaires ayant pour but d'aider le demandeur
et tout autre lecteur à comprendre la procédure ou de quelle manière elle doit être utilisée. Mes réponses pourraient être faites
sans connaître l'identité de demandeur, que je n'y changerais pas une virgule de place. Quant à la dose d'effort que le demandeur
fait pour comprendre la procédure émise ou toute autre réponse fournie par un répondeur.... je n'en ai rien à foutre! Ici, ce n'est
pas un service personnalisé d'accompagnement et je n'ai pas à tenir la main à personne.


| ce qui obligatoirement nécessite de se planter et d' utiliser tes erreurs ou tes recherches pour progresser.

À chacun son truc, mais je ne fais pas parti de ceux qui croient qu'il faille se brûler pour apprendre que le feu brûle ! Il y a des
méthodes plus intéressantes et plus satisfaisantes à expérimenter!

| il me semble que tu fais plus de bien à toi qu'à lui.

It was your 2 cents. Keep them ! Excel n'a pas prévu d'objets particuliers dans son modèle pour modifier le jugement de valeur des
utilisateurs et comme je n'ai rien à vendre ...

| Le guider est une bonne chose, réaliser à sa place me parait une erreur
| d'aileurs d'autant plus néfaste que le maintien de son programme dans te
| temps dépendra aussi de sa capacité à comprendre la manière dont il est
| construit.

Tu as un sens aigu des responsabilités que je n'ai pas. Sérieusement, il ne doit pas être le seul à utiliser une procédure ou une
formule qui ne comprend pas. Es-tu sûr que ton commentaire était destiné à un forum sur excel ? Pour les apprentis sorciers de la
famille des "Psy" et des pédagogues ... il doit bien y avoir un forum pour eux aussi!


Salutations!
Avatar
anonymousA
ben en fait si, je suis le feuilleton depuis le début ( JEAN, TESTOU,
PHIL,etc....)
Si c'est une appli gratos qu'il veut se faire faire, je lui souhaite
bien du plaisir pour agréger tout ça et surtout COMPRENDRE ce qu'on lui
transmet car un jour ou l'autre faudra bien la dépanner , la faire
évoluer, la maintenir ( bref toutes les joyeusetés de l'informatique
compte tenu de la variété et l'imagination des utilisateurs) et là
bonjour l'angoisse pour s' y retrouver.

A+

bonjour
on voit que tu n'as pas suivi le feuilleton depuis son début, il y a quelques mois :o)
Ces news sont destinés à aider ou se faire aider sur un point précis, en aucun cas ils ne devraient permettre de se payer une appli
assez complexe à l'oeil, surtout quand il s'agit d'un travail qui lui va étre facturé. (merci pour les développeurs professionnels
dont je faisais partis)
Il peut arriver (çà m'arrive sur access) de faire pour quelqu'un un travail gratos, mais dans ce cas on communique directement.
Le fait de poser la méme question sous des pseudos différents, a eu le chic d'aggacer certains qui ont crus qu'on les prenait pour
des billes

C'est vrai que depuis son apparition l'ambiance à changé, dommage. je peux te dire qu'il est venu sur d'autres news, il a vite
compris que l'aide et un bouquin étaient indispensables



Avatar
MichDenis
Bonjour Rick,

| je voulai savoir pourquoi dans la macro tu désactive les
| evenements de la feuilles .

Comme je ne sais pas si la feuille de ton classeur qui reçoit les données possèdent des macros événementielles, je les désactive
d'office. L'objectif, augmenter l'efficience et la célérité de la procédure.


Salutations!
1 2