Tester la présence de plusieurs valeurs dans une colonne
Fermé
yannon
Messages postés
22
Date d'inscription
samedi 21 juillet 2012
Statut
Membre
Dernière intervention
13 juillet 2015
-
13 juil. 2015 à 12:23
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 13 juil. 2015 à 15:29
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 13 juil. 2015 à 15:29
A voir également:
- Tester la présence de plusieurs valeurs dans une colonne
- Déplacer une colonne excel - Guide
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
- Checking media presence - Forum BIOS
- Triez la liste comme sur cette illustration (attention, on ne voit que le début …). quel est le mot formé par les 6 dernières lettres de la colonne code ? - Forum Excel
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
1 réponse
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
13 juil. 2015 à 15:29
13 juil. 2015 à 15:29
Bonjour Yannon, bonjour le forum,
Code ci-dessous à adapter à ton cas (faut dire que tu as été tellement précis...) :
Code ci-dessous à adapter à ton cas (faut dire que tu as été tellement précis...) :
Sub Macro1()
Dim S As Worksheet 'déclare la variabe S (ongle Source)
Dim DLS As Integer 'déclare la variabe DLS (Dernière Ligne édité de l'onglet Source)
Dim TCS As Variant 'déclare la variabe TCS (Tableau de Cellules de l'onglet Source)
Dim D As Worksheet 'déclare la variabe D (ongle Destination)
Dim DLD As Integer 'déclare la variabe DLD (Dernière Ligne édité de l'onglet Destination)
Dim PLD As Range 'déclare la variabe PLD (PLage de l'onglet Destination)
Dim K As Integer 'déclare la variabe K (incrément)
Dim I As Integer 'déclare la variabe I (Incrément)
Dim R As Range 'déclare la variabe R (Recherche)
Dim TL() As Variant 'déclare la variabe TL (Tableau de Lignes)
Set S = Sheets("Feuil1") 'définit l'onglet S (à adapter)
DLS = S.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DLS de la colonne 1 (=A à adapter) de l'onglet S
TCS = S.Range("A1:A" & DLS) 'définit le tableau de cellules TCS de l'onglet S (à adapter)
Set D = Sheets("Feuil2") 'définit l'onglet D (à adapter)
DLD = S.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DLS de la colonne 1 (=A à adapter) de l'onglet D
Set PLD = D.Range("A1:A" & DLS) 'définit la palge PLD (à adapter)
K = 1 'initialise la variable K
For I = 1 To UBound(TCS, 1) 'boucle sur toutes les lignes I du tableau de cellules TCS
'définit la recherche R (recherche la valeur entière ligne I, colonne 1 de TCS dans la plage PLD)
Set R = PLD.Find(TCS(I, 1), , xlValues, xlWhole)
If R Is Nothing Then 'condition : si aucune occurrence n'est trouvée
ReDim Preserve TL(1 To K) 'redimensionne le tableau TL
TL(K) = TCS(I, 1) 'ajoute la valeur de TCS(I,1) au tableau TL
K = K + 1 'incrément K
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
'si au moins un élément a été trouvé renvoie dans A1 (à adapter) de l'onglet S la liste des éléments manquants
If K > 1 Then S.Range("E1").Resize(UBound(TL, 1), 1).Value = Application.Transpose(TL)
End Sub