Exclusion nombres identiques
Résolu/Fermé
A voir également:
- Exclusion nombres identiques
- Code binaire des nombres - Guide
- Citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). ✓ - Forum Logiciels
- Nombres faciles - Télécharger - Outils professionnels
- Algorithme maximum de 3 nombres ✓ - Forum Algorithmes / Méthodes
- Calculs peu habituels - Forum LibreOffice / OpenOffice
3 réponses
ccm81
Messages postés
10851
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
16 avril 2024
2 404
Modifié par ccm81 le 24/05/2011 à 21:26
Modifié par ccm81 le 24/05/2011 à 21:26
bonsoir
- sans macro, on construit une plage identique a la plage Ax:By en Cx:Dy
C1=SI(NB.SI($A$1:$B$12;A1)=1;A1;"") à tirer dans toute la plage
pour copier les "uniques" de AxBy dans CxDy
- avec une macro a placer dans un module (alt-F11 pour accéder à l'éditeur) pour un affichage des "uniques" en colonne E (ici)
RQ. le code suppose qu'en colonnes A et B ne figurent que la liste à traiter
- il y a certainement d'autres solutions
bonne suite
- sans macro, on construit une plage identique a la plage Ax:By en Cx:Dy
C1=SI(NB.SI($A$1:$B$12;A1)=1;A1;"") à tirer dans toute la plage
pour copier les "uniques" de AxBy dans CxDy
- avec une macro a placer dans un module (alt-F11 pour accéder à l'éditeur) pour un affichage des "uniques" en colonne E (ici)
Option Explicit Option Base 1 Const lideb = 1 Const co1 = "A" Const co2 = "B" Const cores = "E" Public Sub extraction() Dim lifinA As Long, lifinB As Long, li As Long, lili As Long, liD As Long Dim n As Long Dim T Dim trouve As Boolean lifinA = Range(co1 & 65536).End(xlUp).Row lifinB = Range(co2 & 65536).End(xlUp).Row liD = 0 n = lifinA + lifinB - 2 * lideb + 2 ReDim T(1 To n) For li = lideb To lifinA T(li) = Range(co1 & lideb + li - 1) Next li For li = lideb To lifinB T(li + lideb + lifinA - 1) = Range(co2 & lideb + li - 1) Next li For li = 1 To n trouve = False lili = 0 Do lili = lili + 1 If li <> lili And T(lili) = T(li) Then: trouve = True Loop Until lili = n Or trouve If Not trouve Then liD = liD + 1 Range(cores & liD).Value = T(li) End If Next li End Sub
RQ. le code suppose qu'en colonnes A et B ne figurent que la liste à traiter
- il y a certainement d'autres solutions
bonne suite
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
25 mai 2011 à 12:16
25 mai 2011 à 12:16
Bonjour
par formule matricielle sans cellules intermédiaires
https://www.cjoint.com/?3EzmpDTb9jw
par formule matricielle sans cellules intermédiaires
https://www.cjoint.com/?3EzmpDTb9jw