Run time error '13' type mismatch

Bonjour à tous,
j'ai un soucis concernant un bout de code que j'essaie d'exécuter
Dim n As Integer

For n = 6 To 900
    S3.Cells(n, 47) = S3.Cells(n, 45) / S3.Cells(n - 1, 45) - 1
Next n


j'essaie de calculer les valeurs de ma plage ("AV6:AV900") de ma feuille 3 en suivant la formule suivante :
AV6=AT6/AT5 - 1

Mais je recois un message d'erreur ( "type mismatch"), pouvez- vous s'il vous plait m'éclairer si je fais effectivement une erreur et comment la contourner?
je galère depuis ce matin .
Merci de votre aide, cordialement

3 réponses

  1. Modérateur
    Bonjour,

    Es tu certain de n'avoir que des nombres dans tes cellules ?
    Quand tu exécutes ce code en mode pas à pas... a quelle itération de ta boucle (autrement dit.. que vaut N ) lorsque ça plante ?

    1. Bonjour jordane45, oui j'ai des nombres dans les cellules, le code ne s'execute même pas j'ai aussitôt le message d'erreur
    2. Modérateur
      Ton code est placé où ?
      La variable S3 est déclarée et initialisée où et comment ?
      Tu as des données y compris à la ligne 5 ? ( vu que tu fais un n-1 dans ta boucle )
    3. oui jai declaré s3 comme sheet3 à la ligne 5 jai un NA mais cest normal le fond n'as pas coté a cette date c'est de la que viens le problème?
    4. Modérateur
      @Laetitiayaoben.... modifie le NA par une valeur et regarde ce que ça donne....
    5. D'accord je m'y met des que je rentre
  2. Bonjour à tous,
    je reviens sur ce que j'ai declaré la colonne ou il y a un NA n'est pas concernée par le code
    "AT" correspond à la 46 eme colonne ( c'est à la premiere ligne que j'ai un NA)
    sinon le code porte sur "AS"( 45 eme colonne).
    Merci de vos réponses et belle journée
  3. Merci jordane45 et patrice33740 vous aviez effectivement raison la colonne comportait un NA à la ligne 896, je l'ai remplacé et il marche correctement. cependant j'ai le même problème avec et autre bout de code

    Dim g As Long
    For g = 5 To 900
        If Application.VLookup(S3.Cells(g, 50), S3.Range(Cells(5, 4), Cells(900, 6)), 2, False) = S3.Cells(9, 1).Value Then
            S3.Cells(g, 51) = Application.VLookup(S3.Cells(g - 1, 50), S3.Range(Cells(5, 4), Cells(900, 6)), 2, False)
        Else
            S3.Cells(g, 51) = Application.VLookup(S3.Cells(g, 50), S3.Range(Cells(5, 9), Cells(900, 11)), 2, False)
        End If
    Next g


    Les données sont bien présentes , ci - joint mon fichier:

    https://www.cjoint.com/c/HGyjKyftOOh