XL 2016 Extraction des valeurs qui se trouve dans une colonne et non pas dans le seconde colonne

Seddiki_adz

XLDnaute Impliqué
bonjour
j'ai des valeurs dans la colonne E et dans la colonne F
Je veut Extraire dans la colonne G ; les valeurs qui se trouve dans la colonne E et non pas dans la colonne F
Merci
 

Pièces jointes

  • copilation (1).xlsx
    12.4 KB · Affichages: 5
Solution
Re,
Un essai en PJ avec :
VB:
Sub Absent()
    Application.ScreenUpdating = False
    TabloE = Range("E2:E" & Range("E65500").End(xlUp).Row)
    TabloF = Range("F2:F" & Range("E65500").End(xlUp).Row)
    Columns(7).ClearContents    ' Efface colonne G
    [G1] = "Absents"
    LigneG = 2
    For E = 1 To UBound(TabloE)
        Trouvé = 0              ' 1 si trouvé, 0 si absent
        For F = 1 To UBound(TabloF)
            If TabloE(E, 1) = TabloF(F, 1) Then
                Trouvé = 1
            End If
        Next F
        If Trouvé = 0 Then
            Cells(LigneG, "G") = TabloE(E, 1)
            Trouvé = 1
            LigneG = LigneG + 1
        End If
    Next E
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Un essai en PJ avec :
VB:
Sub Absent()
    Application.ScreenUpdating = False
    TabloE = Range("E2:E" & Range("E65500").End(xlUp).Row)
    TabloF = Range("F2:F" & Range("E65500").End(xlUp).Row)
    Columns(7).ClearContents    ' Efface colonne G
    [G1] = "Absents"
    LigneG = 2
    For E = 1 To UBound(TabloE)
        Trouvé = 0              ' 1 si trouvé, 0 si absent
        For F = 1 To UBound(TabloF)
            If TabloE(E, 1) = TabloF(F, 1) Then
                Trouvé = 1
            End If
        Next F
        If Trouvé = 0 Then
            Cells(LigneG, "G") = TabloE(E, 1)
            Trouvé = 1
            LigneG = LigneG + 1
        End If
    Next E
End Sub
 

Pièces jointes

  • copilation (1).xlsm
    19.3 KB · Affichages: 4

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Une proposition par power query sur deux plages nommées (Liste1 = E2:E241 et Liste2 = F2:F19)

[Edition de 16h11] proposition également par formule :
=SIERREUR(INDEX($E$2:$E$241;AGREGAT(15;6;LIGNE($E$2:$E$241)-1/ESTNA(EQUIV($E$2:$E$241;$F$2:$F$19;0))/($E$2:$E$241<>"");LIGNE(1:1)));"")
la mettre en ligne 2 et tirer vers le bas.
Inutile de la valider en matricielle grâce à Agregat.
[/Edition]

cordialement
 

Pièces jointes

  • Seddiki_adz.xlsx
    32.2 KB · Affichages: 4
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

La fonction Agregat permet d'appliquer une fonction d'agrégation à un tableau. Comme la fonction sous.total les fonctions à appliquer au tableau sont représentées par un numéro.
La fonction 15 est la fonction Petite.Valeur

Agregat peut également ignorer certains éléments pour le calcul comme les lignes filtrées, les valeurs d'erreurs les fonctions sous.total

la valeur 6 ignore les erreurs du calcul ou contenu dans le tableau passé en paramètre.


Cordialement
 

Discussions similaires

Réponses
6
Affichages
221
Réponses
22
Affichages
742

Statistiques des forums

Discussions
312 103
Messages
2 085 310
Membres
102 859
dernier inscrit
Diallokass