Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 06/03/2010, 21h57   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 75
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 75
Points : 12
Points : 12
Par défaut Concevoir un filtre élaboré en VBA

Bonjour,

j'ai un petit problème sur Excel.
Voilà, on m'a donné un fichier qui contient environ 5000 lignes écrites en dur!
Je voudrais sur une des colonnes, faire un filtre qui ne garde que les lignes dont l'écriture ne respecte pas une certaine nomenclature (car en fait, le but est de repérer les anomalies de saisie).

Voici la nomenclature:
Ca commence par un trigramme, c'est à dire 3 lettres, par exemple ABC, PAU, I-L, HKL, etc...
Il y a 23 trigrammes en tout.

Ce trigramme est suivi par un digramme, par exemple: KN, PH, DF, etc...
Il y a en tout 5 digrammes.

Eventuellement, a la suite il peut y avoir n'importe quoi.

Exemple de code bon:
ABCPH
HKLKN-03
I-LDFklimk

Exemple de code pas bon:
ABCKIN
HKLDCF-025

Voilà, donc en gros je voudrais écrire une macro événementielle avec du code VBA, par exemple dans un bouton, et lorsqu'on cliquerait sur ce bouton, tous les mauvais resteraient, de manière à pouvoir les "traquer" facilement, sans avoir a relire une par une toutes les 5000 lignes du fichier.

Quelqu'un aurait-il une idée ?
Merci d'avance...
edonist est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2010, 11h30   #2
Membre Expert
 
Avatar de laetitia
 
Inscription : décembre 2002
Messages : 1 281
Détails du profil
Informations personnelles :
Âge : 21

Informations forums :
Inscription : décembre 2002
Messages : 1 281
Points : 1 363
Points : 1 363
bonjour edonist le forum comme je comprends!! je suppose que sur ta colonne les trigramme sont toujours les memes on pourrait utiliser l'instruction "LIKE" aussi
exemple sur colonne A

Code :
1
2
3
4
5
6
7
Sub es()
  Dim i As Long
  Application.ScreenUpdating = False
  For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
  If Mid(Cells(i, 1), 4, 2) = "KN" Or Mid(Cells(i, 1), 4, 2) = "PH" Or Mid(Cells(i, 1), 4, 2) = "DF" Then Cells(i, 1) = "" 'ect....
  Next i
End Sub
__________________
SALUTATIONS
laetitia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2010, 21h48   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2008
Messages : 75
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 75
Points : 12
Points : 12
Hello Laetitia, et déjà un grand merci!
Oui, tu as compris, les trigrammes, il y en a 23 différents qui sont toujours les mêmes, et les digrammes, il y en a 5 différents qui sont toujours les mêmes aussi.

Et on peut combiner les 23 trigrammes avec les 5 digrammes comme on veut, c'est à dire qu'il y a 23*5= 115 possibilités (si je ne me trompe pas dans mon calcul mental...)

Donc en gros, si les 5 premières lettres d'un code ne sont pas contenues dans les 115 possibilités, c'est pas bon.
Et ce sont les lignes qui contiennent ces cellules que je veux garder en visible, et cacher les lignes (avec un "hide" sûrement) qui contiennent les bons codes, de manière à ensuite faire un copier/coller des mauvaises lignes dans un autre onglet.

Merci pour ton aide, ça va beaucoup m'aider, je vais essayer et je te tiendrais au courant.
Bisous!
edonist est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 02h16.


 
 
 
 
Partenaires

Hébergement Web