Pb de déclaration / propriétés

nicola40

XLDnaute Junior
Bonjour à tous en ce beau samedi matin,

je rencontre une difficulté sur le code suivant, car il génère une erreur de compilation sur le terme en rouge gras et je ne comprend pas pourquoi :mad:
Par contre pas d'erreur sur le terme vert (pourtant similaire):confused:

Les débuts (et les suites) sont difficiles !!
Je dois encore faire une erreur de débutant sur l'utilisation des propriétés ou la définition des variables.

Merci d'avance pour vos remarques !

Sub test()
Dim range_tcd, range_pla, cel_tcd, cel_pla As Range
Dim derlig_tcd, derlig_pla As Integer
Dim s_tcd, s_pla As Sheets

Set s_tcd = Sheets("Of ouverts")
Set s_pla = Sheets("Planning")

derlig_tcd = s_tcd.Range("a65536").End(xlUp).Row
If derlig_tcd < 13 Then derlig_tcd = 13
range_tcd = s_tcd.Range("A13:A" & derlig_tcd)

derlig_pla = s_pla.Range("b65536").End(xlUp).Row
If derlig_pla < 13 Then derlig_pla = 13
range_pla = s_pla.Range("A13:A" & derlig_pla)

For Each cel_tcd In range_tcd
lg_cel_tcd = cel_tcd.Row
y = cel_tcd.Value
z = Application.Match(y, range_pla, 0)
' ........
Next cel_tcd

End Sub
 
C

Compte Supprimé 979

Guest
Re : Pb de déclaration / propriétés

Salut Nicola40,

je rencontre une difficulté sur le code suivant, car il génère une erreur de compilation sur le terme en rouge gras et je ne comprend pas pourquoi
Par contre pas d'erreur sur le terme vert (pourtant similaire)
Et bien non justement !
"S_tcd" est déclaré en variante puisque tu n'as pas de "As ..."
"s_pla" est déclaré en Sheets au lieu de Worksheet

Penses à toujour sutiliser "Option Explicit" dans tes modules

Cela te permet de trouver les erreurs ;)

Code:
Option Explicit
Sub test()
  Dim range_tcd As Range, range_pla As Range, cel_tcd As Range, cel_pla As Range
  Dim derlig_tcd As Long, derlig_pla As Long, lg_cel_tcd As Long
  Dim s_tcd As Worksheet, s_pla As Worksheet
  Dim Y, Z
  Set s_tcd = Sheets("Of ouverts")
  Set s_pla = Sheets("Planning")
  derlig_tcd = s_tcd.Range("a65536").End(xlUp).Row
  If derlig_tcd < 13 Then derlig_tcd = 13
  range_tcd = s_tcd.Range("A13:A" & derlig_tcd)
  derlig_pla = s_pla.Range("b65536").End(xlUp).Row
  If derlig_pla < 13 Then derlig_pla = 13
  range_pla = s_pla.Range("A13:A" & derlig_pla)
  For Each cel_tcd In range_tcd
    lg_cel_tcd = cel_tcd.Row
    Y = cel_tcd.Value
    Z = Application.Match(Y, range_pla, 0)
    ' ........
  Next cel_tcd
End Sub

La définition du type de variable "As ...." ce fait à chaque variable
et non à la fin de la ligne (du moins pas à ma connaisance)

A+
 
Dernière modification par un modérateur:

nicola40

XLDnaute Junior
Re : Pb de déclaration / propriétés

Salut Nicola40,


Et bien non justement !
"S_tcd" est déclaré en variante puisque tu n'as pas de "As ..."
"s_pla" est déclaré en Sheets au lieu de Worksheet

Penses à toujour sutiliser "Option Explicit" dans tes modules

Cela te permet de trouver les erreurs ;)

Code:
Option Explicit
Sub test()
  Dim range_tcd As Range, range_pla As Range, cel_tcd As Range, cel_pla As Range
  Dim derlig_tcd As Long, derlig_pla As Long, lg_cel_tcd As Long
  Dim s_tcd As Worksheet, s_pla As Worksheet
  Dim Y, Z
  Set s_tcd = Sheets("Of ouverts")
  Set s_pla = Sheets("Planning")
  derlig_tcd = s_tcd.Range("a65536").End(xlUp).Row
  If derlig_tcd < 13 Then derlig_tcd = 13
  range_tcd = s_tcd.Range("A13:A" & derlig_tcd)
  derlig_pla = s_pla.Range("b65536").End(xlUp).Row
  If derlig_pla < 13 Then derlig_pla = 13
  range_pla = s_pla.Range("A13:A" & derlig_pla)
  For Each cel_tcd In range_tcd
    lg_cel_tcd = cel_tcd.Row
    Y = cel_tcd.Value
    Z = Application.Match(Y, range_pla, 0)
    ' ........
  Next cel_tcd
End Sub

La définition du type de variable "As ...." ce fait à chaque variable
et non à la fin de la ligne (du moins pas à ma connaisance)

A+



Merci je regarde tout de suite.
 

Statistiques des forums

Discussions
312 450
Messages
2 088 511
Membres
103 873
dernier inscrit
Sabin