Sélection de variables [As date]

Résolu/Fermé
Walaboss - 27 avril 2015 à 17:27
 Walaboss - 29 avril 2015 à 09:07
Bonjour,

Je fais un programme qui me détermine certains calculs d'effectifs en fonction de plusieurs facteurs. Dans le tableur excel certaines cases que je sélectionne ont une formule à l'intérieur qui donne un résultat sous format "Date".
Or sous VBA quand je souhaite définir une variable "as date" qui sélectionne ces mêmes cases, il m'indique l'erreur d'execution '13' : Incompatibilité de type. Or la variable est "as date" et le résultat de la formule mise dans la case excel est sous format date.

Comment cela peut-il quand même afficher une "incompatibilité de type" ?

Merci beaucoup pour vos solutions et idées, bon courage !

A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 747
29 avril 2015 à 08:09
Bonjour,

Je n'arrive pas à reproduire votre erreur à partir du fichier fourni.
Ceci fonctionne bien chez moi :
Sub test()
Dim maDate As Date
maDate = ActiveCell
End Sub

Curieux, n'est-il pas, que cela fonctionne chez moi mais pas chez vous?
1
Merci pour votre réponse. En effet avec l'exemple donné ça marche, si on ne touche pas aux cases, mais en est-il pareil si on modifie la case "oui" par du vide ? C'est ce deuxième cas de figure qui me posait problème. Ceci étant dit, j'ai réglé le problème désormais, merci beaucoup :).
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 747 > Walaboss
29 avril 2015 à 09:02
En fait, si tu supprimes oui, tes cellules "se vident".
Donc il convient de tester si elles sont vides :
Sub test()
Dim maDate As Date
If ActiveCell <> "" Then maDate = ActiveCell
End Sub


En fait, ta solution de passer par un variant ne règle pas le souci. Elle "ferme les yeux" sur l'erreur au lieu de la traiter. Cela n'est jamais bon en programmation. Le fait de traiter l'erreur te permet également de lui donner une consigne en cas d'erreur : Exemple basé sur ton fichier
0
Je comprend mieux, en effet ! Merci beaucoup :).
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
27 avril 2015 à 21:07
Bonjour,

Peut-être qu'un devin ou un voyant fait partie des contributeurs ...

Sinon avec le fichier nous pourrions plus facilement détecter le problème pour te répondre !

Pour proposer un fichier utilises https://www.cjoint.com/
et reviens mettre le lien ici/
0
Bonjour,

En effet, j'espérais à défaut d'un devin ou d'un voyant, quelqu'un qui aurait pu imaginer la situation que je lui présentais.. Comme mes propos ont sûrement été trop abstraits, j'ai suivi votre conseil et je vous ai joint un fichier qui résume mon problème : vous y trouverez les formules que j'ai mis dans chaque cellules. Ce sont les cellules "dates" présentes dans l'encadré que je tente de définir [As date] via VBA (ce qui ne fonctionne pas pour la raison énoncé ci-dessus).

http://cjoint.com/?EDCj4ygEphH

J'espère avoir réussi à rendre plus clair mon message (rien de mieux qu'un exemple concret pour discuter comme on dit) !

Cordialement.
0
Bonjour, j'ai réussi à résoudre le problème. Finalement je laisse la variable en Variant, comme ça lorsque la formule me sort "" il n'y a pas de problèmes d'incompatibilités. Maintenant, c'est un autre problème que je rencontre, mais ça, c'est une autre histoire...
Merci pour votre réponse !
0