Vba: extraction de l'union (sens mathématique) de deux feuilles
Résolu
deub-deub
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
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 !!!!!!!!!!!!
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:
- Vba: extraction de l'union (sens mathématique) de deux feuilles
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
6 réponses
Bonjour,
Pour la rapidité, utiliser les tableaux et dictionary.
http://boisgontierjacques.free.fr/pages_site/Doublons.htm#Communs2BDBis
Jacques Boisgontier
Pour la rapidité, utiliser les tableaux et dictionary.
http://boisgontierjacques.free.fr/pages_site/Doublons.htm#Communs2BDBis
Jacques Boisgontier
Bonjour
Peux tu mettre ton fichier au format excel 2003 (fichier/enregistrer sous/ type ....
Cdlmnt
Peux tu mettre ton fichier au format excel 2003 (fichier/enregistrer sous/ type ....
Cdlmnt
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
https://www.cjoint.com/c/CKskuTUXTDm
Un essai (sur un fichier réduit)
https://www.cjoint.com/?3KswjJRxrTf
Cordialement
https://www.cjoint.com/?3KswjJRxrTf
Cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Quelques explications et la formule en colonne G
https://www.cjoint.com/?3KumfLdt3fs
Bonne journée
https://www.cjoint.com/?3KumfLdt3fs
Bonne journée
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 ?
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 ?
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
Bonne suite
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 - 1même chose pour T9
If co <> 3 Then T1(li1) = T1(li1) & ";" & Sheets(FP1).Cells(lideb + li1 - 1, co)
Next co
Bonne suite