macro recherche cellules dans 2 fichiers - VB/VBA/VBS - Programmation
Marsh Posté le 14-12-2012 à 12:14:58
Bonjour ! Cela plante oui, mais où ?! Sur quelle ligne et instruction ?
Cela ne serait pas par hasard sur la ligne où il y a un FL3 à la place d'un FL1 ?!
Vu le code, j'en déduis que c'est une version antérieure à 2007 (2003 ?) sinon il y aurait une sacré incohérence !
Autre possible incohérence, DoEvents …
A part ralentir le processus en donnant la main à d'autres applications, quid de son intérêt,
surtout vu les évènements de l'application désactivés en début de code …
Sinon l'incohérence principale concerne Cells(J) car les cellules d'une feuille sont numérotées par ligne et non en colonne !
Cells(1) correspond à A1 tandis que Cells(2) fait référence à B1 …
Donc pour recopier les 9 premières colonnes de la ligne J :
Code :
|
Edit : autre méthode pour définir les 9 premières cellules de la ligne J:
Code :
|
Marsh Posté le 14-12-2012 à 12:30:22
Merci pour ta réponse.
J'ai mis FL3 pour créer une nouvelle feuille et tout coller. J'ai oublié de remettre la valeur initiale.
Merci pour le correctif des 9 colonnes, ça me semble bon.
Par contre, il plante sur la ligne 21 du code avec "incompatibilité de type"
et pour copier/coller sur la cellule vide, je fais une recherche de cellule vide dans la colonne A?
Marsh Posté le 14-12-2012 à 12:37:40
L'incompatibilité proviendrait du contenu d'une cellule qui par exemple serait en mode texte au lieu de numérique …
Pour la copie à la suite, je reviens plus tard le temps de vérifier un point.
Marsh Posté le 14-12-2012 à 12:44:10
Merci encore!
J'ai réussi à coller depuis la première cellule vide en testant sur une seule variable, la colonne 3, en partant de ton correctif
Code :
|
Du coup je me retrouve avec des faux doublons! (colonnes 7 et 9 foireuses!)
Marsh Posté le 14-12-2012 à 12:58:29
Pour la copie à la suite de FL1 :
Code :
|
Marsh Posté le 14-12-2012 à 13:07:29
Cela ne marche pas. Mes colonnes 7 et 9 sont toujours différentes.
J'ai "bidouillé la ligne suivante qui m'a indiqué le bon résultat:
Code :
|
Edit: je pense que ta réponse ne faisait pas suite à ma question!
Marsh Posté le 14-12-2012 à 13:21:27
Dernier point : mettre en dur la dernière ligne d'une feuille (65536) est valable jusqu'à la version 2003
vu que les suivantes en ont beaucoup plus …
Mieux vaut par exemple définir une variable en début de code puis s'y référer ensuite :
DL = FL1.Rows.count
[…] FL1.Cells(DL, 1).End(xlUp)(2)
Ou encore définir une variable directement sur la dernière cellule de la colonne A :
Set Dc = FL1.Cells(FL1.Rows.count, 1)
[…] Dc.End(xlUp)(2)
Marsh Posté le 14-12-2012 à 13:39:27
Autre méthode dans le cas d'une plage mise en forme mais dont certaines cellules sont vides,
la copie devant être faite après cette plage :
R = FL1.UsedRange(FL1.UsedRange.Count).Row + 1
FL2.Cells(J, 1).Resize(, 9).Copy FL1.Cells(R, 1)
Marsh Posté le 14-12-2012 à 14:13:58
Je te remercie pour tes précieux conseils.
Je vais me mettre à la page!
Marsh Posté le 14-12-2012 à 11:25:40
Bonjour à vous, amis développeurs!
J’ai besoin d’aide sur ma macro qui plante. J’imagine que la réponse est évidente, mais pas pour moi !!
J’explique le contexte. Je reçois quotidiennement par un extract (Feuil1 ou FL1) sur excel de 9 colonnes et environ 10 à 20 lignes par jour (des fois plus , des fois moins), à traiter. (La 1ere ligne est l'entête)
De l’autre côté, j’ai un reporting (Feuil2 ou FL2) de 60 colonnes et 15.000 lignes.
Les 9 colonnes de l’extract correspondent aux 9 premières colonnes de mon reporting.
Mes commandes extract sont présentes dans mon reporting et j’ai d’autres commandes que je considère « doublon » (excepté la colonne A qui est unique) lorsque les cellules des colonnes (C/G/I) 3,7 et 9 sont identiques.
Je voudrais donc récupérer à partir de mon reporting (Feuil2 ou FL2) les commandes « doublon » et les coller dans la Feuil1 sous les données déjà présentes. (uniquement les 9 colonnes, la suite n’est pas importante, pour ce traitement en tout cas !)
Mon problème est :
Ma macro plante quand je sélectionne mes cellules.
Je n’arrive pas à sélectionner la cellule vide après mes données FL1 pour coller.
Je ne sais pas sélectionner les 9 colonnes, du coup je prends toute la ligne…..
Merci pour votre aide.