[Excel] Aide creation de macro pour novice

Fermé
elhijo - 5 juin 2006 à 20:24
Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008 - 8 juin 2006 à 22:25
Bonsoir a tous.

Je voudrais faire une macro Excel qui me permettrai de vérifier si dans une colonne il y a d'autres noms que ceux spécifiés dans un fichier (peut importe le quel, au sein de la macro ou un fichier tiers) et si oui, supprimer la ligne correspondante.

Le but final est d'arriver à extraire d'un fichier csv contenant plus d'une 100aine de nom différents, uniquement les entrées correspondantes aux personnes de mon équipe.

La colonne contenant les noms peut être appelé soit par ca lettre soit par son nom, peut importe, elle ne devrait pas changer de place.

Tout ca sous Excel 2000 ou 2003

Merci à tous pour votre aide, cela dépasse vraiment mes compétences.

Bonne soirée.
A voir également:

1 réponse

Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008 214
5 juin 2006 à 23:11
Salut elhijo,

Le plus simple serait d'utiliser la fonction Equiv() (Match dans la version anglaise), qui renverra #N/A pour les noms qui ne figurent pas dans ta liste.

Créer la liste des noms de personnes de ton équipe dans une feuille et importe le fichier csv dans un autre.

Le code qui te permettra de détruire les lignes pourrait ressembler à ça :
Sub DetruireLigne()
    Dim varCell As Variant
    
    ' pour accelérer le traitement, désactiver le rafraichissement écran
    Application.ScreenUpdating = False
    
    ' placer le curseur sur la première ligne de données
    Do Until IsEmpty(ActiveCell.Value)
        varCell = ActiveCell.Value
        If IsError(varCell) Then
            ActiveCell.EntireRow.Delete shift:=xlShiftUp
        Else
            ActiveCell.Offset(1, 0).Select
        End If
    Loop
    
    Application.ScreenUpdating = True
    MsgBox "Fin du traitement", vbInformation
End Sub

0
Merci beaucoup pour ces pistes, seulement je n'y connait vraiment rien en prog, pourait tu m'aiguiller sur le fonctionnement de la fonction Equiv() ?
Merci encore et bonne journée.
0
Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008 214 > elhijo
8 juin 2006 à 22:25
de mémoire, la fonction EQUIV() demande 3 arguments :
=EQUIV(ValeurAChercher,ZoneDeRecherche,Type)



ValeurAChercher :
une cellule unique, ex. A1 qui contient un nom à contrôler

ZoneDeRecherche
une collection de cellules contigues, ex. A1:A625 qui contient la liste des noms autorisés

Type
0 pour rechercher excactement la même valeur
1 pour rechercher une valeur approchante

0