Récupérer une donnée dans une variable préalablement déclarée as Date

Bonjour,

Je viens vous trouver pour obtenir un coup de pouce s'il-vous-plait.

Lorsque je lance ma macro, Excel m'indique la ligne : donnees = Range ("I" & i) n'est pas correcte.

Sub tridonneesparsemaine()

Worksheets("BILAN").Range("F3:DE3").ClearContents

Dim m As Integer
Dim n As Integer
Dim i As Integer
Dim a As Integer
Dim o As Integer
Dim donnees As Date

For i = 10 To 4011

    o = n + 1
    n = 4
    a = 6
    m = 1

    Worksheets("Transf_PIC_SYNT").Activate
    donnees = Range("I" & i)

    For m = 1 To 4001

        Worksheets("Calendar").Activate
        If donnes = Range("B" & n) Then
            Worksheets("BILAN").Cells(3, a).Value = Worksheets("BILAN").Cells(3, a).Value + 1
            Exit For
        Else
            If Range("D" & n) <> Range("D" & o) Then
                a = a + 1
            End If

            n = n + 1
        End If
    Next m

Next i

End Sub

L'objectif de cette macro est de référencer les pièces, dues à un client, par semaine. Pour cela je traite les dates de délais limite, et j'ajoute + 1 dans la case de la semaine qui correspond dans mon tableau bilan.

La partie qui m'affiche le message d'erreur correspond à :

Dans la feuille "Trans_PIC_SYNT", les valeurs qui se trouvent à la colonne "I" (i majuscule) sont des dates.

Je déclare la variable "donnees" comme une Date et la variable "i" comme un Integer,

je lui demande de récupérer la Date se trouvant dans la colonne "I" (i majuscule) ligne "i" de la

feuille "Trans_PIC_SYNT",

et de l'enregistrer dans la variable "donnees"

J'ai débuté VBA il y a quelques jours et je ne trouve pas quelle est l'erreur. (Ceci est la demande d'aide )

Je vous remercie pour le temps que vous avez prit à lire mon message, et par avance pour l'aide que vous essayerez de m'apporter,

Lb1996

donnees = Feuil1.cells(i,9).value

le 9 c'est la colonne I

Le nom de la feuille n'est pas utile, mais vous pouvez mettre celui qui correspond à la feuille que vous trouvez dans la fenêtre PROJET de Visual Basic (Feuil1 ou Feuil2 etc...)

Cdt

Bonjour,

Si vous avez une incompatibilité sur cette instruction ,

donnees = Range ("I" & i)

c'est que Range ("I" & i).Value n'est pas une date. Par ailleurs, Cells(i, "I") serait plus en harmonie avec le reste de votre code que Range ("I" & i).

Pour terminer, je vous recommande de mettre au début de votre code l'instruction

Option Explicit

pour que vos erreurs de variables soit détectées à la compilation car il me semble bien que vous en ayez.

donnees = Feuil1.cells(i,9).value

le 9 c'est la colonne I

Le nom de la feuille n'est pas utile, mais vous pouvez mettre celui qui correspond à la feuille que vous trouvez dans la fenêtre PROJET de Visual Basic (Feuil1 ou Feuil2 etc...)

Cdt

Bonsoir,

Tout d'abord merci pour votre réponse.

Après modification le message d'incompatibilité de type apparait toujours.

Bonjour,

Si vous avez une incompatibilité sur cette instruction ,

donnees = Range ("I" & i)

c'est que Range ("I" & i).Value n'est pas une date. Par ailleurs, Cells(i, "I") serait plus en harmonie avec le reste de votre code que Range ("I" & i).

Pour terminer, je vous recommande de mettre au début de votre code l'instruction

Option Explicit

pour que vos erreurs de variables soit détectées à la compilation car il me semble bien que vous en ayez.

Merci pour votre réponse aussi

, je pense que l'erreur vient du fait que la valeur de la case de correspond pas au type annoncé. Les dates sont entrées de deux manières différentes : "jj/mm/aaaa" et "jj . mm . aaaa" (sans les espaces), et il ne doit pas reconnaitre celles avec un point comme des dates.

Lb1996

Pour terminer, je vous recommande de mettre au début de votre code l'instruction

Option Explicit

pour que vos erreurs de variables soit détectées à la compilation car il me semble bien que vous en ayez.

J'ai ajouté cette ligne, et un message d'erreur apparait avant de lancer les instructions :

Erreur de compilation: Instruction incorrecte dans une procédure + Le nom de mon sub se surligne en jaune.

J'ai noté cette ligne de code sans savoir ce que c'était, j'arrête pour aujourd'hui et je me renseignerai demain.

Merci à tous pour vos retours, bonne soirée

Pour terminer, je vous recommande de mettre au début de votre code l'instruction

Option Explicit

Cette instruction est à placer avant la procédure SUB

"jj . mm . aaaa" (sans les espaces), et il ne doit pas reconnaitre celles avec un point comme des dates.

Tout à fait.

Pour terminer, je vous recommande de mettre au début de votre code l'instruction

Option Explicit

Cette instruction est à placer avant la procédure SUB

"jj . mm . aaaa" (sans les espaces), et il ne doit pas reconnaitre celles avec un point comme des dates.

Tout à fait.

Bonjour et merci pour ta réponse.

J'ai placé l'instruction avant la procédure Sub ce matin après avoir lu ton message.

Merci à tous pour vos réponses, malgré que le document ne soit pas encore fonctionnel et qu'il y ait des améliorations à lui apporter, vous avez répondu à ma problématique initiale.

MERCI

Rechercher des sujets similaires à "recuperer donnee variable prealablement declaree date"