Problème sur formule avec "mid" et "activecell"

Bonsoir tout le monde et merci par avance pour vos lumières.

Je travaille dans la téléphonie et j'utilise un fichier Excel très pratique.

Quand je renseigne un numéro IMEI (15 chiffres), le programme va chercher le nom ud modèle grâce à un intervalle. Mais quand je fais précéder ce numéro de la lettre a en minuscule (pour désigner les rebuts), je veux que le fichier ne m'écrive plus le nom du modèle mais "rebut".

Voici donc la partie de mon code qui nous intéresse :

[size=85]If Target.Column = 10 And Cells(Target.Row, 6) = "" Then

If Mid(ActiveCell, 1, 1) = "a" Then

Cells(Target.Row, 6) = "REBUT"

Cells(Target.Row, 11) = Date

End If

For ribosome = 2 To 500 'le maximum peut être augmenté si besoin

If ActiveCell >= Sheets("Modèles").Range("g" & ribosome) And ActiveCell <= Sheets("Modèles").Range("h" & ribosome) Then

modele = Sheets("Modèles").Range("f" & ribosome)

End If

Next ribosome

Cells(Target.Row, 6).Value = modele

End If[/size]

Rien ne se passe quand j'écris par exemple "a353434084055791". Pourquoi ?

Je joins la version simplifiée de mon fichier de travail donc avec plusieurs erreurs #N/A sans gravité.

8imei.xlsm (701.23 Ko)

Salut,

Voici une proposition

If Target.Column = 10 And Cells(Target.Row, 6) = "" Then
    If Mid(ActiveCell, 1, 1) = "a" Then
        Cells(Target.Row, 6) = "REBUT"
        Cells(Target.Row, 11) = Date
    Else
        For ribosome = 2 To 500
            If ActiveCell >= Sheets("Modèles").Range("g" & ribosome) And ActiveCell <= Sheets("Modèles").Range("h" & ribosome) Then
                Cells(Target.Row, 6).Value = Sheets("Modèles").Range("f" & ribosome)
                Exit For
            End If
        Next ribosome
    End If
End If

A+

Merci de ta réponse. L'idée est pas mal mais je pense avoir compris... En écrivant un numéro IMEI et en tapant Entrée, je passe à la ligne du dessous. Dans l'intervalle, "activecell" devient la cellule sur laquelle je viens de descendre, et donc le programme met dans F(n) le nom du modèle correspondant à la cellule F(n+1). Je suis blasé, il me faut revoir le code...

Du coup pour ceux que ça intéressera, j'ai enlevé "activecell" (qui pose problème) et remplacé par ceci :

Dim ribosome&

Dim modele As String

Dim ligne&

ligne = Target.Row

If Target.Column = 10 Then

If Mid(Cells(ligne, 10), 1, 1) = "a" Then

Cells(ligne, 6) = "REBUT"

Cells(ligne, 11) = Date

Else

For ribosome = 2 To 500

If Cells(ligne, 10) >= Sheets("Modèles").Range("g" & ribosome) And Cells(ligne, 10) <= Sheets("Modèles").Range("h" & ribosome) Then

Cells(ligne, 6).Value = Sheets("Modèles").Range("f" & ribosome)

Exit For

End If

Next ribosome

End If

End If

Et ça semble fonctionner.

Rechercher des sujets similaires à "probleme formule mid activecell"