|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Jérémy Étudiant Inscription : août 2011 Messages : 5 ![]() |
Bonjour à tous !
Je suis tout nouveau sur ce forum, je débute en programmation VBA et je me suis déjà bien aidé des questions diverses qui ont été posées dessus pour mes macros mais la je bloque. Je dois créer une macro qui compare deux colonnes de 2 feuilles différentes. Si une valeur est identique dans les 2 colonnes, alors le reste de la ligne de la première feuille doit être copié sur la ligne correspondante dans la 2eme feuille. Si une valeur de la 1ere feuille n'existe pas dans la 2eme feuille, alors la ligne correspondante doit être copié à la fin du tableau de la 2eme feuille. En gros j'ai 2 tableau, un avec des données brutes, sans mise en page, dans une ordre quelconque, et dans la 2eme une joli feuille par ordre alphabétique avec une mise en page avec filtre & Co, et donc quand j'ai de nouvelles données elles sont copiées/collées de but en blanc dans ma première page, et ma macro doit mettre à jour la 2eme feuille avec la mise à jour des anciennes lignes/données et rajouter une nouvelles lignes si on a de nouvelles entrées. J'ai donc fait ceci : Code :
La MàJ des données marche, quand j'ai 2 cellules identiques des colonnes, la MàJ se fait bien, par contre pour ce qui est de l'ajout d'un nouvelle ligne quand on a de nouvelles données ça coince ... Je me doute qu'il manque quelque chose mais je n'arrive pas à voir où ... Si vous voyez et voulez/pouvez bien m'aider ... C'est seulement la 2eme macro que je crée tout seul ( ou presque ) donc soyez indulgents si c'est brouillon ^^' Merci à vous, en espérant une réponse (rapide?) Bonne journée, Amicalement, Shinmey. |
||
|
|
00
|
|
|
#2 | ||||
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
La structure de ta procédure me parait bonne...essaie de remplacer:
Code :
Code :
|
||||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Jérémy Étudiant Inscription : août 2011 Messages : 5 ![]() |
Bonjour Sclarckone, merci de ta réponse.
J'ai remplacé par ton texte plus simple, et malheureusement j'ai toujours la même chose. Dans ma feuille où je colle, j'ai toujours la dernière ligne de ma feuille où je copie qui est copiée à la fin, même si elle est déjà existante, mais si j'ai des lignes manquantes dans le milieu du tableau elle ne sont pas copiées ... Je ne comprend toujours pas donc :/ Je joins mon fichier, si jamais quelqu'un a l'inspiration, ou trouve l'erreur ... Au pire je vais essayer de coloriser les cases qui ont été copiées/collées comme ça on pourra voir ce qui a été mis à jour et ce qui manque pour finir à la main, mais c'est dommage de devoir en arriver là :/ |
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
En fait il y a une erreur pour déterminer la première ligne libre. Il y a un "trou" dans ton tableau et du coup le code:
Code :
Ligne = (Range("B1").End(xlDown).Row + 1) Remplace donc cette ligne par ça: Code :
Ligne = (Range("B65536").End(xlUp).Row + 1) |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Jérémy Étudiant Inscription : août 2011 Messages : 5 ![]() |
J'avais remarqué ça, c'est pourquoi j'avais mis des points puis des espaces dans les cases du dessus.
Enfin il n'empêche que j'ai essayé et ça ne change rien ... Mais ce n'est pas grave, j'ai fais autrement, comme les nouvelles données sont peu nombreuses, j'ai fais coloré les cases qui ont été mises à jour pour les repérer plus rapidement et pour que l'on puisse finir à la main rapidement. Merci en tout vas de vos réponses, même si malheureusement pas de vraies solution trouvées, j'ai pu me débrouiller =) Bonne fin et journée et à bientôt ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com