coco_lapin
XLDnaute Impliqué
Bonjour le forum,
   
Je voudrais détecter les mots dont le premier caractère est une lettre et les 3 suivants des nombres.
J’ai réalisé la macro en annexe qui fonctionne mais qui n’est pas optimisée en terme de rapidité. Je joins aussi le classeur exemple.
   
Je suis preneur si vous voyez d’autres architectures.
   
Merci pour votre aide.
	
	
	
	
	
		
	
		
			
		
		
	
				
			Je voudrais détecter les mots dont le premier caractère est une lettre et les 3 suivants des nombres.
J’ai réalisé la macro en annexe qui fonctionne mais qui n’est pas optimisée en terme de rapidité. Je joins aussi le classeur exemple.
Je suis preneur si vous voyez d’autres architectures.
Merci pour votre aide.
		Code:
	
	
	Sub essais()
Dim var1 As String
Dim var2 As String
Dim var3 As String
Dim var4 As String
Dim var5 As String
Columns(4).ClearContents
For i = 1 To 6
  Lettre = 0
  Chiffre2 = 0
  Chiffre3 = 0
  Chiffre4 = 0
  var1 = Left(Cells(i, 3), 1)
  For j = 1 To 26
    If var1 = Cells(j, 6) Then
      Lettre = 1
      Exit For
    End If
  Next j
  var2 = Right(Left(Cells(i, 3), 2), 1)
  var3 = Right(Left(Cells(i, 3), 3), 1)
  var4 = Right(Left(Cells(i, 3), 4), 1)
  For j = 1 To 9
    var5 = Cells(j, 7)
    If var2 = var5 Then
      Chiffre2 = 1
      Exit For
    End If
  Next j
  For j = 1 To 9
    var5 = Cells(j, 7)
    If var3 = var5 Then
      Chiffre3 = 1
      Exit For
    End If
  Next j
  For j = 1 To 9
    var5 = Cells(j, 7)
    If var4 = var5 Then
      Chiffre4 = 1
      Exit For
    End If
  Next j
  
  If Lettre = 1 And Chiffre2 = 1 And Chiffre3 = 1 And Chiffre4 = 1 Then
    Cells(i, 4) = "Oui"
  End If
Next i
End Sub