Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Declaration des variables

KTM

XLDnaute Impliqué
Salut chers tous
Le code ci dessous fonctionne parfaitement si declaration de variables non obligatoire.
Mais quand on passe à declaration de variables obligatoire il y a problème
Pouvez vous aider à declarer mes variables dDate , temp, p ?

Sub copy()

dDate = Range("B2").Value
temp = CDbl(DateSerial(Year(dDate), Month(dDate), 1))
p = Application.Match(temp, Range("C4:N4"), 0)
If Not IsError(p) Then
[c5].Offset(, p - 1).Resize(10).Value=[a5:A14].Value
End If

End Sub





MERCI!!!!!
 

Efgé

XLDnaute Barbatruc
Bonjour

Pour trouvez les types de variables, il faut mettre un point d'arret sur le End Sub. Dans la fenêtre variable locale tu vois les types pris en compte.
Pour ton exemple, sans support, je dirais
Dim dDate as Date
Dim Temp as Double
Dim P as Long

Cordialement
 

Efgé

XLDnaute Barbatruc
Re
Sur le sujet : le classeur de notre requin, que je salut même s'il ne passe plus guère....

Cordialement
 

frangy

XLDnaute Occasionnel
Bonjour KTM,
Bonjour Efgé,

Dans le cas où la valeur cherchée n'existe pas dans la plage de recherche, Application.Match renvoie error.
Il faut donc conserver le type variant pour cette variable.

Cordialement.
 

job75

XLDnaute Barbatruc
Bonjour KTM, Efgé, le forum,

Ceci va mieux :
VB:
Sub Copy()
Dim dDate As String, temp As Long, p As Variant
dDate = CStr([B2])
If Not IsDate(dDate) Then Exit Sub
temp = CDbl(DateSerial(Year(dDate), Month(dDate), 1))
p = Application.Match(temp, [C4:N4], 0)
If IsNumeric(p) Then [B5].Offset(, p).Resize(10) = [A5:A14].Value
End Sub
Bonne journée.
 

KTM

XLDnaute Impliqué
Super
job75 = Symbole de l'efficacité
 

Discussions similaires

Réponses
3
Affichages
146
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…