Différencier digit alphanumérique/numérique et nombre de digit?

  • Initiateur de la discussion Initiateur de la discussion flint6593
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

flint6593

XLDnaute Occasionnel
Bonjour,

Voilà j'ai un gros problème pour mon travail😡, si quelqu'un pouvait m'aider.😕
Je vous explique:

- J'ai deux colonnes A et B que je dois tester
- A ne doit comporter que des chiffres ET être = à 5 digits
- B doit comporter 1 lettre en première position et 4 chiffres en suivant ET être = à 5 digits.

EX: A => 12548 B => R1548

Après si j'avais ce n'est pas bon, la ligne doit être rouge, mais ça je sais faire.
Je maîtrise un peu les macros, mais là je suis dépassé sur comment les reconnaître.

Si jamais vous pouvez m'aider, ce serait vraiment super car je suis vraiment bloqué en ce moment... Merci d'avance!!!!!!!!🙂🙂🙂🙂🙂🙂
 
Re : Différencier digit alphanumérique/numérique et nombre de digit?

Bonjour flint6593,
Une proposition à adapter:
VB:
Sub color()
With Sheets("Feuil1")
    For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
        If Not IsNumeric(.Cells(i, 1)) Or Len(.Cells(i, 1)) <> 5 Or IsNumeric((Left(.Cells(i, 2), 1))) Or Len(.Cells(i, 2)) <> 5 Then
            Rows(i).Interior.ColorIndex = 3
        End If
    Next i
End With
End Sub
Cordialement
 
Re : Différencier digit alphanumérique/numérique et nombre de digit?

Bonjour le fil, bonjour le forum,

Efgé a été plus rapide et surtout plus concis... J'envoie quand même ma proposition :
Code:
Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim test As Boolean 'déclare la variable test
Dim x As Byte 'déclare la variable x (incrément)
 
For Each cel In Range("A1:A" & Range("A65536").End(xlUp).Row) 'boucle 1  : sur toutes les cellules éditées cel de la colonne A
    test = False 'initialise la variable test
    If Len(cel.Value) > 5 Or Len(cel.Offset(0, 1).Value) > 5 Then 'condition 1 : si le nombre de caractères de la cellule en A ou en B est supérieur à 5
        test = True 'définit la variable test
        GoTo suite 'va la l'étiquette "suite"
    End If 'fin de la condition 1
 
    For x = 1 To Len(cel.Value) 'boucle 2 : sur tous les caractères de la cellule cel
        'condition 2 : si le code ascii du caractère est compris entre 48 et 57 (inclus)
        If Asc(Mid(cel.Value, x, 1)) > 47 And Asc(Mid(cel.Value, x, 1)) < 58 Then
            test = False 'définit la variable test
        Else 'sinon
            test = True 'définit la variable
            GoTo suite 'va à l'étiquette "suite"
        End If 'fin de la condition 2
    Next x 'prochain caractère de la boucle 2
 
    'condition 3 : si le premier caractère de la cellule cel décalée en B est compris entre 48 et 57 (inclus)
    If Asc(Mid(cel.Offset(0, 1).Value, 1, 1)) > 47 And Asc(Mid(cel.Offset(0, 1).Value, 1, 1)) < 58 Then
        test = True 'définit la variable true
        GoTo suite 'va la l'étiquette "suite"
    End If 'fin de la condition 3
 
    For x = 2 To Len(cel.Offset(0, 1).Value) 'boucle 3 : sur les 4 derniers caractères de la cellule cel décalée en B
        'condition 4 : si le code ascii du caractère est compris entre 48 et 57 (inclus)
        If Asc(Mid(cel.Offset(0, 1).Value, x, 1)) > 47 And Asc(Mid(cel.Offset(0, 1).Value, x, 1)) < 58 Then
            test = False 'définit la variable test
        Else 'sinon
            test = True 'définit la variable test
            GoTo suite 'va à l'étiquette "suite"
        End If 'fin de la condition 4
    Next x 'prochain caractère de la boucle 3
 
suite: 'étiquette
    If test = True Then Range(cel, cel.Offset(0, 1)).Interior.ColorIndex = 3 'si la variable test est "Vrai", colore les cellules de la ligne concernée de rouge
Next cel 'prochaine cellule de la boucle1
 
End Sub
 
Re : Différencier digit alphanumérique/numérique et nombre de digit?

Merci pour ces réponses rapides!!!!!😀😀😀😀
Je les tests ce matin!!!! 😱😱😱😱

Merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci merci!!!!!!!!!!
 
Re : Différencier digit alphanumérique/numérique et nombre de digit?

Bonjour flint6593, Bonjour Robert,
La nuit porte conseil.
Une autre proposition qui permet de gérer le cas que j'avais oublié, mais que Robert avait vu...
VB:
Sub color()
With Sheets("Feuil1")
    For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
        If Not .Cells(i, 1) Like "#####" Or _
        Not UCase(.Cells(i, 2)) Like "[A-Z]####" Then _
        Rows(i).Interior.ColorIndex = 3
    Next i
End With
End Sub
Cordialement
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
538
Retour