Erreur de compilation : Projet ou bibliothèque introuvable

Jb6161 Messages postés 53 Statut Membre -  
Jb6161 Messages postés 53 Statut Membre -
Bonjour tout le monde,

J'ai réalisé un fichier avec différentes macros sous excel 2007 ( tout fonctionne bien ) mais en voulant le passer sous Excel 2010 j'ai du modifier plusieurs choses dans mes macros et il y en a une en particulier où je ne vois vraiment pas le problème.
Quand je l'exécute, le debogage me dit que c'est une erreur de compilation et que celle ci provient de nb_ligne !

Sub enregistrement()

nb_ligne = 5

code = Range("B" & nb_ligne).Value
nb_ligne = nb_ligne + 1
ligne = Range("B" & nb_ligne).Value
nb_ligne = nb_ligne + 1
Cuve = Range("B" & nb_ligne).Value
nb_ligne = nb_ligne + 1
Date_jour = CDate(Range("B" & nb_ligne).Value)
nb_ligne = nb_ligne + 1
Heure = Range("B" & nb_ligne).Value
nb_ligne = nb_ligne + 1
Lot = Range("B" & nb_ligne).Value
nb_ligne = nb_ligne + 1

Sheets("Affichage").Activate

With Sheets("Affichage").Columns("B:B")
Set celltrouve = .Find(ligne, lookat:=xlWhole)
End With

num_ligne = celltrouve.Row
Range("D" & num_ligne).Activate

If ActiveCell.Offset(0, 0).Value = Cuve Then
ActiveCell.Offset(0, 1) = Lot
ActiveCell.Offset(0, 3) = code
ActiveCell.Offset(0, 5) = Date_jour
ActiveCell.Offset(0, 6) = Heure
End If

If ActiveCell.Offset(1, 0).Value = Cuve Then
ActiveCell.Offset(1, 1) = Lot
ActiveCell.Offset(1, 3) = code
ActiveCell.Offset(1, 5) = Date_jour
ActiveCell.Offset(1, 6) = Heure
End If
Date_jour = Format(Now, "[jj/mm/aaaa]")

End Sub

Fichier : https://www.cjoint.com/?DFmnct5ydjB

Merci pour votre aide !

4 réponses

  1. platypus69 Messages postés 122 Statut Membre 7
     
    Bonjour,

    tes variables ne sont pas déclarer dans le code, donc VBA pense que ce sont des fonctions.

    Déclare toute tes variables et cela devrait se résoudre

    Dim nb_ligne as interger (simple exemple) et ainsi de suite avec les autres
    0
  2. Jb6161 Messages postés 53 Statut Membre
     
    Bonjour,

    Merci cela résoud bien mon problème sauf que maintenant la même erreur est sur la ligne en gras:

    Dim nb_ligne As Integer
    nb_ligne = 5

    Dim code As Integer
    code = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Dim ligne As Integer
    ligne = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Dim cuve As Integer
    cuve = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Dim Date_jour As Integer
    Date_jour = CDate(Range("B" & nb_ligne).Value)
    nb_ligne = nb_ligne + 1
    Dim Heure As Integer
    Heure = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1
    Dim Lot As Integer
    Lot = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1

    Sheets("Affichage").Activate

    With Sheets("Affichage").Columns("B:B")
    Set celltrouve = .Find(ligne, lookat:=xlWhole)
    End With

    num_ligne = celltrouve.Row
    Range("D" & num_ligne).Activate

    If ActiveCell.Offset(0, 0).Value = cuve Then
    ActiveCell.Offset(0, 1) = Lot
    ActiveCell.Offset(0, 3) = code
    ActiveCell.Offset(0, 5) = Date_jour
    ActiveCell.Offset(0, 6) = Heure
    End If

    If ActiveCell.Offset(1, 0).Value = cuve Then
    ActiveCell.Offset(1, 1) = Lot
    ActiveCell.Offset(1, 3) = code
    ActiveCell.Offset(1, 5) = Date_jour
    ActiveCell.Offset(1, 6) = Heure
    End If
    Date_jour = Format(Now, "[jj/mm/aaaa]")

    End Sub
    0
  3. platypus69 Messages postés 122 Statut Membre 7
     
    c'est toujours le même problème, variable non déclaré.

    Pour que ton code soit plus lisible procède comme suit


    Sub enregistrement()

    'déclaration des variables
    Dim nb_ligne As Integer
    Dim code As Integer
    Dim ligne As Integer
    Dim cuve As Integer
    Dim Date_jour As Integer
    Dim Heure As Integer
    Dim Lot As Integer

    nb_ligne = 5

    code = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1

    ligne = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1

    cuve = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1

    Date_jour = CDate(Range("B" & nb_ligne).Value)
    nb_ligne = nb_ligne + 1

    Heure = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1

    Lot = Range("B" & nb_ligne).Value
    nb_ligne = nb_ligne + 1

    Sheets("Affichage").Activate

    With Sheets("Affichage").Columns("B:B")
    Set celltrouve = .Find(ligne, lookat:=xlWhole)
    End With

    num_ligne = celltrouve.Row
    Range("D" & num_ligne).Activate

    If ActiveCell.Offset(0, 0).Value = cuve Then
    ActiveCell.Offset(0, 1) = Lot
    ActiveCell.Offset(0, 3) = code
    ActiveCell.Offset(0, 5) = Date_jour
    ActiveCell.Offset(0, 6) = Heure
    End If

    If ActiveCell.Offset(1, 0).Value = cuve Then
    ActiveCell.Offset(1, 1) = Lot
    ActiveCell.Offset(1, 3) = code
    ActiveCell.Offset(1, 5) = Date_jour
    ActiveCell.Offset(1, 6) = Heure
    End If
    Date_jour = Format(Now, "[jj/mm/aaaa]")

    End Sub
    0
  4. Jb6161 Messages postés 53 Statut Membre
     
    Je me demande si ce n'est pas à cause de mon calendrier au final vu qu'il ne fait pas partie de l'équipement standard d'Excel
    0