Vba: extraction de l'union (sens mathématique) de deux feuilles

Résolu/Fermé
deub-deub Messages postés 21 Date d'inscription mercredi 25 septembre 2013 Statut Membre Dernière intervention 21 novembre 2013 - Modifié par deub-deub le 15/11/2013 à 15:33
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 - 21 nov. 2013 à 13:44
Bonjour,

Je suis encore novice en vba , ça fait 2 jours que j'essaye de coder , mais sans succès, la situation suivante: (fichier ci-joint ci-dessous)

je veux que dans la feuille Var , il y aie l'extract de l'union des feuilles Prog1 et Prog2 : je m'explique: je veux que la macro compare les deux feuilles Prog1 et Prog9 , qu'elle copie tout d'abord les lignes communes à Prog1 et Prog9 ensuite les lignes présentes dans prog1 et pas prog9 et enfin les lignes présentes dans prog9 et pas prog1.

colonne 5 de Var = Coût de Prog1
colonne 6 de Var = Coût de Prog9
colonne 7 de Var = Colonne 5 - Colonne 6


J'ai essayé une solution bête et longue mais qui n'a rien donné : j'ai codé de sorte à ce que sur Var j'aie les lignes présentes dans prog1 et pas prog9 d'un coté puis es lignes présentes dans prog9 et pas prog1 d'un autre, mais je me retrouvais avec 2 fois les lignes communes à Prog1 et Prog9 . Il me suffisait donc juste de supprimer les doublons. Mais la macro prenait 20 minutes à compiler sans donner de résultats !!!! :s

S'il vous plaît aidez-moi !!! Je suis à bout !!!!! :s !!!!!

https://www.cjoint.com/c/CKppeIHahfY

Sur ce sujet vous trouverez un début de macro que j'ai essayé d'utiliser mais sans résultat non plus ( les autres macros ressemblaient à celle-ci) !!!!


Je vous en remercie d'avance !!!!!!!!!!!!
A voir également:

6 réponses

deub-deub Messages postés 21 Date d'inscription mercredi 25 septembre 2013 Statut Membre Dernière intervention 21 novembre 2013
15 nov. 2013 à 16:07
il y'a quelqu'un ?!!!! je vous en prie !!!!!
0
Boisgontierjacques Messages postés 175 Date d'inscription jeudi 19 septembre 2013 Statut Membre Dernière intervention 26 décembre 2018 64
Modifié par Boisgontierjacques le 15/11/2013 à 16:38
Bonjour,


Pour la rapidité, utiliser les tableaux et dictionary.

http://boisgontierjacques.free.fr/pages_site/Doublons.htm#Communs2BDBis

Jacques Boisgontier
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
15 nov. 2013 à 17:39
Bonjour

Peux tu mettre ton fichier au format excel 2003 (fichier/enregistrer sous/ type ....

Cdlmnt
0
deub-deub Messages postés 21 Date d'inscription mercredi 25 septembre 2013 Statut Membre Dernière intervention 21 novembre 2013
18 nov. 2013 à 10:22
Désolé ccm81 je n'avais pas d'accès internet ce week end !! voici le fichir version 2003 !!!
https://www.cjoint.com/c/CKskuTUXTDm
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
18 nov. 2013 à 22:10
Un essai (sur un fichier réduit)
https://www.cjoint.com/?3KswjJRxrTf

Cordialement
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
19 nov. 2013 à 09:13
0
deub-deub Messages postés 21 Date d'inscription mercredi 25 septembre 2013 Statut Membre Dernière intervention 21 novembre 2013
20 nov. 2013 à 10:58
Merci beaucoup ccm81 ca mache comme sur des roulettes ! mais est-ce-que tu peux m'expliquer , si ca ne te dérange pas, ce que fait la macro parce que j'ai essayé de la lire mais je n'ai pas réussi à comprendre !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
20 nov. 2013 à 12:06
Quelques explications et la formule en colonne G
https://www.cjoint.com/?3KumfLdt3fs

Bonne journée
0
deub-deub Messages postés 21 Date d'inscription mercredi 25 septembre 2013 Statut Membre Dernière intervention 21 novembre 2013
20 nov. 2013 à 14:02
Merci beacoup ccm81 tu me sauves la vie ! Par contre j'aurai une dernière question : comment fais tu pour que T1C et T9C correspondent à la colonne E ?!!

cdlt,
0
deub-deub Messages postés 21 Date d'inscription mercredi 25 septembre 2013 Statut Membre Dernière intervention 21 novembre 2013
20 nov. 2013 à 14:49
parce que j'ai essayé d'appliquer la macro à des tableaux plus grands ( 17 colonnes), donc quand j'ai changé le nco et la plage , je compile on me sort une erreur d'incompatibilité de type à la ligne :

Sheets(FV).Range("A" & lideb & ":A" & nTC) = Application.Transpose(TC)
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
Modifié par ccm81 le 20/11/2013 à 21:20
Le tableau TC
- a t 'il été déclaré sans type (Dim TC)
- est il bien à une seule colonne?
0
deub-deub Messages postés 21 Date d'inscription mercredi 25 septembre 2013 Statut Membre Dernière intervention 21 novembre 2013
21 nov. 2013 à 13:33
TC a été déclaré comme suit : Dim TC as long
Mais il n'a pas de souci je ne vais finalement pas utiliser les grands tableaux !!
Par contre dans la macro tu as concaténé toutes les colonnes de A à D en une seule colonne en utilisant "ReDim T1(1 To nbliT1)" , comment je peux faire la même chose en excluant la colonne C de la concaténation ?
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
21 nov. 2013 à 13:44
1. Application.Transpose(TC)
Pas étonnant que le compilateur ait râlé, TC est ici un tableau qui doit être déclaré comme Variant (pour pouvoir le redimensionner en cours d'exécution) et non un entier long
2. il suffit d'exclure la colonne 3 de la boucle
  For co = 2 To nbco - 1
If co <> 3 Then T1(li1) = T1(li1) & ";" & Sheets(FP1).Cells(lideb + li1 - 1, co)
Next co
même chose pour T9

Bonne suite
0