Copier / Coller entre deux classeur [Fermé]

Signaler
-
 NécroPoney -
Bonjour à tous,
Je souhaiterai faire un code me permettant de copier coller un cellule entre deux classeurs. J'ai le classeur IMP, ou je récupère les données et le REX, mon classeur de réception.
J'aimerai prendre les données de la colonne B de l'IMP et les mettre dans la colonne A du REX.

Voici mon code :

Public Sub REX01()

Dim LIMP, LREX As Variant
Dim La, Lb As Long
J'utilise La pour sélectionner dans IMP et Lb pour REX

LIMP = Windows("IMP.xls").Sheets("FeuilleIMP").Rows(La).Select
LREX = Windows("REX.xls").Sheets("FeuilleREX").Rows(Lb).Select
(Je crois que l'erreur provient de ces deux variables)

La = 8
Lb = 3

LIMP

Do


LIMP
Cells(ActivateCell.Row, B).Select
ActivateCell.Copy

LREX
Cells(ActivateCell.Row, A).Select
ActivateCell.Paste

La = La + 1
Lb = Lb + 1

LIMP

Loop While LIMP <> Empty


End Sub

Sauf que j'ai une erreur de compilation et je ne comprend pas pourquoi..
Merci d'avance pour votre attention.

4 réponses

Messages postés
16218
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
30 septembre 2020
3 037
bonjour

écris plut^t
La = 8 
Lb = 3
LIMP = Windows("IMP.xls").Sheets("FeuilleIMP").Rows(La).Select
LREX = Windows("REX.xls").Sheets("FeuilleREX").Rows(Lb).Select


mais il y a beaucoup de choses à dire sur ton code. par exemple: pas besoin de boucle pour traiter ce problème

proposition non vérifiée. les 2 classeurs ouverts

Sub copier_IMP_REX()
Dim Derlig As Long
With Workbooks("IMP.xls").Sheets("FeuilleIMP")
Derlig = .Columns("B").Find(what:="*", searchdirection:=xlPrevious).Row
.Range("B8:B" & Derlig).Copy
End With
Workbooks("REX.xls").Sheets("FeuilleREX").Range("A3").Paste
End Sub

 Michel
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 166
Salut Michel,
Désolé, je n'avais pas vu ton message mais je crois que je n'avais pas besoin de poster dans la même veine. ;-)
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 166
Bonjour,

j'ai une erreur de compilation et je ne comprend pas pourquoi
En fait tu en as plusieurs alors essayes ce code qui doit fonctionner, à condition que tes feuilles soient bien nommées "FeuilleIMP" et "FeuilleREX" sur tes onglets, sinon tu rectifies.
Public Sub REX01()
    With Workbooks("IMP").Sheets("FeuilleIMP")
        .Cells(8, "B").Resize(.Cells(Rows.Count, "B").End(xlUp).Row - 7, 1).Copy _
        Destination:=Workbooks("REX").Sheets("FeuilleREX").Cells(3, "A")
    End With
End Sub

Merci à tout les deux pour vos réponses rapides.

Veuillez excuser mes erreurs de programmation je suis encore novice en vba.

Je crois que je suis allé un peu vite en besogne dans mon énoncé d'hier.

michel_m : J'ai utilisé une boucle car je ne souhaite pas seulement copier coller les données de la colonne B du classeur IMP dans la colonne A du classeur REX. Je souhaite aussi copier coller les données de la colonne C du classeur IMP dans la colonne D du classeur REX, ainsi de suite.

De plus j'ai plusieurs classeurs IMP à intégrer dans le classeur REX.

Mon programme à pour but concret de :

Dans IMP01 FeuilleIMP01
sélectionner ligne 8
si cellule de la ligne colonne B contient NC RC ou AF (*)

alors copier coller la cellule colonne B de la ligne sélectionner dans
le classeur REX, Feuille REX, dernière ligne vide colonne A

faire aussi copier coller la cellule colonne C de la ligne sélectionner(IMP01) dans
le classeur REX, Feuille REX, dernière ligne vide colonne D

(D'autres copier coller)...

Passer à la ligne suivante

Boucler avec le si (*)

si pas de NC RC AF dans colonne B du classeur IMP01
passer au classeur IMP02
copier coller...

Je ne sais pas si je suis bien claire. N'hésitez pas à me questionner.

Merci encore
Messages postés
16218
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
30 septembre 2020
3 037
bonjour
tes errements n'ont rien à voir avec le fait que tu sois novice mais à tes explications...

Il faut bien te rendre compte que ce que tu demandes n'est pas forcément facile et que personne ne veut passer parfois plusieurs heures à essayer de résoudre un problème bénévolement pour se voir dire après coup « je n'ai pas bien expliqué, excusez moi) il faudrait que.... »
si gb a envie de continuer... pour moi, c'est terminé
>
Messages postés
16218
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
30 septembre 2020

OK si une personne peut m'aider je l'en remercie d'avance.

Merci à toi aussi d'avoir passé du temps sur mon problème. Je vais voir ce que je peux faire de mon coté.
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 166
Bonsoir à tous,

Je ne sais pas si je suis bien claire. N'hésitez pas à me questionner.
Pour faire du codage en VBA ou autre langage, la seule chose qui compte c'est d'avoir une analyse claire du résultat à obtenir et dans ton cas tu as oublié de faire l'analyse du final à obtenir. Tu essaies de mettre des lignes de code en espérant un résultat que tu corrigeras ou feras corriger si le résultat ne te satisfait pas.
Si tu continues de cette manière, nous y sommes encore à Noël.
Ce n'est pas à nous de poser des questions, mais c'est à toi d'analyser précisément le résultat voulu.

Si je n'ai pas été suffisamment clair la première fois que j'ai énoncé le but du programme c'était pour vous soumettre un code simple a réaliser et j'aurai pu faire des copier coller en changeant les variables pour réaliser ce que je voulais.
Mais vous avez encore plus simplifier mon code (puisqu'il pouvait être simplifié vous avez eu raison de le simplifier).

Je ne sais pas si je suis bien claire. N'hésitez pas à me questionner.

J'ai posté un nouvelle fois le but précise de mon programme. J'ai juste modéré mes propos car si cela semble clair ca ne l'ai peut être pas pour une personne étrangère à mon programme.
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 166
Bonjour,

Je sais que ce n'est pas facile de donner l'information mais tu nous dit :
si cellule de la ligne colonne B contient NC RC ou AF (*)

alors copier coller la cellule colonne B de la ligne sélectionner dans
le classeur REX, Feuille REX, dernière ligne vide colonne A
faire aussi copier coller la cellule colonne C de la ligne sélectionner(IMP01) dans
le classeur REX, Feuille REX, dernière ligne vide colonne D


Cela veux dire qu'à la fin ton classeur REX en colonne A n'aura que des "NC RC ou AF" complétement déconnectés des autres informations que tu mets en colonne D : c'est ésotérique comme classeur sans autres éléments ?

Bonjour,

Non car la colonne est à choix multiple entre RC NC et AF mais à défaut la cellule n'est pas vide mais contient "-". Je voulais réaliser cela pour que le copier coller s'arrêt à la dernière ligne remplie mais non vide.

Merci d'avoir passé du temps sur mon programme.
Je vais réaliser un programme plus lourd mais que je pourrai réaliser plus simplement aussi, j'ai légèrement évoluer au niveau de la programmation.

Encore une fois merci gbinforme, il ne vous êtes plus nécessaire de perdre du temps avec cela.