erreur d’exécution 1004

whooki

XLDnaute Occasionnel
Bonjour,

J’ai un problème avec un code que j’avais développé (il est surement pas top), mais était fonctionnel.
J’utilise une combo box et il s’avère que j’ai une erreur de temps en temps.
Lorsque j’incrémente la combo avec une réf plus longue, ça marche, et lorsque celle-ci est plus courte, j’ai une erreur d’exécution 1004, erreur définie par l’application ou par l’objet. L’erreur est glissée à


Sheets("OFFRE").Range("H4").Value = Sheets("TARIF A+B").Cells(ent, 2)

Ci-dessous mon code:

Private Sub ComboBox1_Change()
Application.ScreenUpdating = False
ActiveSheet.Unprotect "toto"


Workbooks("CALCUL 2012.xlsm").Activate


With Sheets("TARIF A+B")
Sheets("TARIF A+B").Activate

'ComboBox1.Tag = ComboBox1.ListIndex + 1

ComboBox1.List = .Range("a1:a" & .Range("a65536").End(xlUp).Row).Value
With Sheets("OFFRE")
Sheets("OFFRE").Activate
With ComboBox1

Sheets("OFFRE").Activate
Sheets("OFFRE").Range("c3").Value = ComboBox1.Value

End With

Dim ent As Integer

ent = ComboBox1.ListIndex + 1


With Sheets("TARIF A+B")


Sheets("OFFRE").Range("H4").Value = Sheets("TARIF A+B").Cells(ent, 2)
Sheets("OFFRE").Range("I4").Value = Sheets("TARIF A+B").Cells(ent, 3)
Sheets("OFFRE").Range("j4").Value = Sheets("TARIF A+B").Cells(ent, 4)
Sheets("OFFRE").Range("K4").Value = Sheets("TARIF A+B").Cells(ent, 5)
Sheets("OFFRE").Range("L4").Value = Sheets("TARIF A+B").Cells(ent, 6)
Sheets("OFFRE").Range("M4").Value = Sheets("TARIF A+B").Cells(ent, 7)
Sheets("OFFRE").Range("N4").Value = Sheets("TARIF A+B").Cells(ent, 8)
Sheets("OFFRE").Range("O4").Value = Sheets("TARIF A+B").Cells(ent, 9)
Sheets("OFFRE").Range("P4").Value = Sheets("TARIF A+B").Cells(ent, 10)
Sheets("OFFRE").Range("Q4").Value = Sheets("TARIF A+B").Cells(ent, 11)
Sheets("OFFRE").Range("R4").Value = Sheets("TARIF A+B").Cells(ent, 12)
Sheets("OFFRE").Range("S4").Value = Sheets("TARIF A+B").Cells(ent, 13)
Sheets("OFFRE").Range("T4").Value = Sheets("TARIF A+B").Cells(ent, 14)
Sheets("OFFRE").Range("U4").Value = Sheets("TARIF A+B").Cells(ent, 15)
Sheets("OFFRE").Range("V4").Value = Sheets("TARIF A+B").Cells(ent, 16)
Sheets("OFFRE").Range("W4").Value = Sheets("TARIF A+B").Cells(ent, 17)
Sheets("OFFRE").Range("X4").Value = Sheets("TARIF A+B").Cells(ent, 18)
Sheets("OFFRE").Range("Y4").Value = Sheets("TARIF A+B").Cells(ent, 19)

End With
End With
End With
ActiveSheet.Protect "toto"
End Sub

Merci de votre aide, car je suis planté dessus depuis ce matin.
 

camarchepas

XLDnaute Barbatruc
Re : erreur d’exécution 1004

Bonjour ,

A mon avis le problème vient de la déclaration de variable Ent,

Pour les lignes , il faut employer le type long systèmatiquement

Un premier coup de brosse pour élaguer ce qui ne sert pas( , à mon avis )

Code:
Private Sub ComboBox1_Change()
Dim Ent As Long
 Application.ScreenUpdating = False
 ActiveSheet.Unprotect "toto"
 Workbooks("CALCUL 2012.xlsm").Activate
 

 With Sheets("TARIF A+B")
  'ComboBox1.Tag = ComboBox1.ListIndex + 1
   ComboBox1.List = .Range("a1:a" & .Range("a65536").End(xlUp).Row).Value
  With Sheets("OFFRE")
   .Activate
   .Range("c3").Value = ComboBox1.Value
  End With
 
  Ent = ComboBox1.ListIndex + 1
 

  Sheets("OFFRE").Range("H4").Value = .Cells(Ent, 2)
  Sheets("OFFRE").Range("I4").Value = .Cells(Ent, 3)
  Sheets("OFFRE").Range("j4").Value = .Cells(Ent, 4)
  Sheets("OFFRE").Range("K4").Value = .Cells(Ent, 5)
  Sheets("OFFRE").Range("L4").Value = .Cells(Ent, 6)
  Sheets("OFFRE").Range("M4").Value = .Cells(Ent, 7)
  Sheets("OFFRE").Range("N4").Value = .Cells(Ent, 8)
  Sheets("OFFRE").Range("O4").Value = .Cells(Ent, 9)
  Sheets("OFFRE").Range("P4").Value = .Cells(Ent, 10)
  Sheets("OFFRE").Range("Q4").Value = .Cells(Ent, 11)
  Sheets("OFFRE").Range("R4").Value = .Cells(Ent, 12)
  Sheets("OFFRE").Range("S4").Value = .Cells(Ent, 13)
  Sheets("OFFRE").Range("T4").Value = .Cells(Ent, 14)
  Sheets("OFFRE").Range("U4").Value = .Cells(Ent, 15)
  Sheets("OFFRE").Range("V4").Value = .Cells(Ent, 16)
  Sheets("OFFRE").Range("W4").Value = .Cells(Ent, 17)
  Sheets("OFFRE").Range("X4").Value = .Cells(Ent, 18)
  Sheets("OFFRE").Range("Y4").Value = .Cells(Ent, 19)
 
 End With

ActiveSheet.Protect "toto"
Application.ScreenUpdating = True
End Sub
 

whooki

XLDnaute Occasionnel
Re : erreur d’exécution 1004

Bonjour,

je te remercie pour ton code, mais j'ai toujours le même problème, à la même ligne
Sheets("OFFRE").Range("H4").Value = .Cells(Ent, 2).

Je ne sais pas comment faire maintenant..
Autre info, mon fichier est en .xlsm, je ne sais pas si cela peut venir de la ou non?

Merci encore pour l'aide.
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16