Erreur de compilation sur une macro

Fermé
Jb6161 Messages postés 49 Date d'inscription mardi 27 mai 2014 Statut Membre Dernière intervention 13 juin 2014 - 12 juin 2014 à 13:05
Jb6161 Messages postés 49 Date d'inscription mardi 27 mai 2014 Statut Membre Dernière intervention 13 juin 2014 - 13 juin 2014 à 10:31
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 !
A voir également:

3 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 688
12 juin 2014 à 14:04
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
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
Jb6161 Messages postés 49 Date d'inscription mardi 27 mai 2014 Statut Membre Dernière intervention 13 juin 2014
13 juin 2014 à 10:31
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