Macro pour vérifiér les inputs de plusieurs intervenants

AdBi

XLDnaute Nouveau
Bonjour,

Je voudrais que quelqu'un me dise comment faire pour créer des macros afin de pouvoir vérifier des données sur 250 colonnes, après que plusieurs personnes aient remplis le fichier.

Par exemple, imaginons que sur la colonne F d'une certaine page, mes interlocuteurs sont obligés à insérer 8 chiffres (code-barres par exemple ou autre code qui doit forcément être composé de huit chiffres).

Je voudrais mettre en place une commande afin de, avec un clic pouvoir vérifier que mes 100000 lignes de la colonne F ont bien 8 caractères/chiffres. Je sais que c'est la fonction =NBCAR, mais je n'arrive pas à faire la macro.

Sachant que je ne suis pas un expert de VBA/macro, une explication plus détaillée serait plus cool!!

Merci d'avance,

A.B.
 

AdBi

XLDnaute Nouveau
Salut Benoit,

Voila un fichier avec ce que je cherche.

La colonne D doit contenir 2 chiffres. J'ai mis en rouge celles qui sont fausses.

Colonne D, 13 chiffres, j'ai fait pareil, en rouge celles qui ont plus de 13.

En gros, ce que je veux, c'est mettre en place une macro pour savoir si mes cellules (imaginons qu'ils y a 10000000 à checker) correspondent aux critères voulues.

J'espère que c'est clair.

Merci Benoit!!

AB
 

Pièces jointes

  • test vba.xlsx
    12.4 KB · Affichages: 139

thebenoit59

XLDnaute Accro
Bonjour AB, le forum.

Tu peux tester ce code :

VB:
Sub Verif()
Dim sh As Worksheet
Dim t()
Dim i&

Set sh = ThisWorkbook.Sheets(1)
t = sh.UsedRange.Value
sh.UsedRange.Font.ColorIndex = xlAutomatic

For i = LBound(t) + 1 To UBound(t)
    If Not IsNumeric(t(i, 4)) Or Not Len(t(i, 4)) = 2 Then sh.Cells(i, 4).Font.Color = vbRed
    If Not IsNumeric(t(i, 5)) Or Not Len(t(i, 5)) = 13 Then sh.Cells(i, 5).Font.Color = vbRed
Next i
End Sub

Voici comme je procède.
J'enregistre ta liste sous forme d'un array.
Je remets les couleurs de texte en Automatique (Noir).
Je boucle l'array (plus rapide que de boucler sur le fichier directement).
Quand la valeur en colonne D n'est pas numérique ou la longueur est différente de 2, on colorie le texte en rouge.
Pour la colonne E c'est la même chose, sauf la longueur de chaîne.
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 083
Membres
103 115
dernier inscrit
fiachris26