Erreur de compilation sur une macro

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 d'avance pour votre aide !

3 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Comme l'on ne peut pas rentrer sans mot de passe, j'ai essayé ta procédure manuellement sous 2010 sans souci.
    Par contre tu devrais définir tes variables dans tous tes modules : cela ne prends pas beaucoup de temps et évite pas mal de soucis ultérieurs.
    0
  2. Maurice
     
    Bonjour

    modification de ta macro

    Sub enregistrement()
    With Application
    .ScreenUpdating = False
    .Calculation = xlManual
    .EnableEvents = False
    End With

    code = Range("B" & 5).Value
    ligne = Range("B" & 6).Value
    Cuve = Range("B" & 7).Value
    Date_jour = CDate(Range("B" & 8).Value)
    Heure = Range("B" & 9).Value
    Lot = Range("B" & 10).Value
    Feuil5.Activate
    With Sheets(Feuil5.Name).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]")
    Date_jour = DateValue(Now)
    With Application
    .CutCopyMode = False
    .ScreenUpdating = True
    .Calculation = xlCalculationAutomatic
    .EnableEvents = True
    End With
    End Sub

    pas terrible le mots de passe
    je prefere le faire sur le profil(Login)

    A+
    Maurice
    0
  3. Jb6161 Messages postés 53 Statut Membre
     
    Bonjour, merci pour vos réponses !

    Même après avoir déclaré mes variables j'ai un problème avec la ligne suivante :
    " Set celltrouve = .Find(ligne, lookat:=xlWhole) "

    Je me demande si ça ne viendrait pas du calendar au final, vu qu'il ne fait pas partie de l'équipement d'Excel ?
    0