Je ne comprend pas l'erreur dans ma formule "DateDiff"
Résolu/Fermé
theo1222
-
Modifié le 14 déc. 2020 à 21:43
jordane45 Messages postés 37726 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 septembre 2023 - 14 déc. 2020 à 22:51
jordane45 Messages postés 37726 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 27 septembre 2023 - 14 déc. 2020 à 22:51
A voir également:
- Je ne comprend pas l'erreur dans ma formule "DateDiff"
- Formule excel - Guide
- Formule de politesse mail anglais - Guide
- Formule si et - Guide
- Code erreur s05-05 - Forum Téléviseurs
- Erreur 1004 vba ✓ - Forum VB / VBA
2 réponses
jordane45
Messages postés
37726
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 septembre 2023
4 618
14 déc. 2020 à 21:25
14 déc. 2020 à 21:25
Bonjour
Je vois plusieurs erreurs dans ton code...
Déjà tu boucles sur les lignes 2 à 9 sur une première feuille pour trouver la différence sur chaque ligne mais tu n'utilise pas ta variable....
Ta seconde boucle le prenant en compte que la dernière valeur retourner dans ta variable le résultat de ta première boucle..
Ensuite, la fonction DATEDIF Renvoie une Variant (Long) qui spécifie le nombre d’intervalles de temps entre deux dates données.... sauf que toi tu as déclaré ta variable résultats en tant que string... d'ou, je suppose, ton message d'erreur...
Je vois plusieurs erreurs dans ton code...
Déjà tu boucles sur les lignes 2 à 9 sur une première feuille pour trouver la différence sur chaque ligne mais tu n'utilise pas ta variable....
Ta seconde boucle le prenant en compte que la dernière valeur retourner dans ta variable le résultat de ta première boucle..
Ensuite, la fonction DATEDIF Renvoie une Variant (Long) qui spécifie le nombre d’intervalles de temps entre deux dates données.... sauf que toi tu as déclaré ta variable résultats en tant que string... d'ou, je suppose, ton message d'erreur...
Merci de votre réponse, mais pouvez m'expliquer plus en détail pourquoi deux boucles ne fonctionnent pas alors que c'est une boucle par feuille différente ?
Pour moi c'est logique de faire une boucle pour une feuille et d'en faire une autre pour une autre feuille ?
Je demande pour ne plus faire l'erreur et mieux comprendre, merci vraiment de prendre le temps pour m'aider !
Pour moi c'est logique de faire une boucle pour une feuille et d'en faire une autre pour une autre feuille ?
Je demande pour ne plus faire l'erreur et mieux comprendre, merci vraiment de prendre le temps pour m'aider !
jordane45
Messages postés
37726
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 septembre 2023
4 618
14 déc. 2020 à 22:43
14 déc. 2020 à 22:43
Imagine que tu as deux boites...
Dans la première tu as 10 pièces.
Tu dois prendre une première pièce, la lancer (et la ratrapper dans ta main ) puis regarder si elle fait pile ou face ...
puis, une fois que tu as regardé de quelle côté elle est tombée.. la poser dans la boite n¨2.
Si on reprend ta logique (le code que tu avais écrit...) ...
tu prends bien les pièces... les lances... regarde leur valeur.... mais au lieu de les poser dans la boite N°2 tu la jette par terre.....jusqu'à la dernière ....
Cette dernière, tu la pose dans la seconde boite .... puis... tu la poses à nouveau dans cette seconde boite... puis encore...
Bref.. à la fin tu n'auras posé (10 fois) que la dernière pièce... toutes les autres étant par terre.....
Je ne vois pas trop comment te l'expliquer autrement.....
Je pense que le plus simple serait que tu exécutes ton code en mode pas à pas et que tu regarde ce qui se passe....
Puis tu fais la même chose avec le code que je t'ai donné .... et là... tu devrais avoir un déclic !
Dans la première tu as 10 pièces.
Tu dois prendre une première pièce, la lancer (et la ratrapper dans ta main ) puis regarder si elle fait pile ou face ...
puis, une fois que tu as regardé de quelle côté elle est tombée.. la poser dans la boite n¨2.
Si on reprend ta logique (le code que tu avais écrit...) ...
tu prends bien les pièces... les lances... regarde leur valeur.... mais au lieu de les poser dans la boite N°2 tu la jette par terre.....jusqu'à la dernière ....
Cette dernière, tu la pose dans la seconde boite .... puis... tu la poses à nouveau dans cette seconde boite... puis encore...
Bref.. à la fin tu n'auras posé (10 fois) que la dernière pièce... toutes les autres étant par terre.....
Je ne vois pas trop comment te l'expliquer autrement.....
Je pense que le plus simple serait que tu exécutes ton code en mode pas à pas et que tu regarde ce qui se passe....
Puis tu fais la même chose avec le code que je t'ai donné .... et là... tu devrais avoir un déclic !
theo1222
Messages postés
11
Date d'inscription
dimanche 29 novembre 2020
Statut
Membre
Dernière intervention
14 décembre 2020
>
jordane45
Messages postés
37726
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 septembre 2023
14 déc. 2020 à 22:45
14 déc. 2020 à 22:45
AAaaahhh cette explication beaucoup simpliste est vraiment facile à comprendre, je vois mieux pourquoi c'était pas bon, merci beaucoup !!
vraiment !!
Vous avez-pris tout votre temps pour m'expliquer !!
vraiment !!
Vous avez-pris tout votre temps pour m'expliquer !!
jordane45
Messages postés
37726
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 septembre 2023
4 618
>
theo1222
Messages postés
11
Date d'inscription
dimanche 29 novembre 2020
Statut
Membre
Dernière intervention
14 décembre 2020
14 déc. 2020 à 22:51
14 déc. 2020 à 22:51
N'oublie pas de marquer la discussion en RESOLUE
Modifié le 14 déc. 2020 à 21:40
Je ne suis que débutant en VBA donc que vous dites que je n'utilise pas la variable pour la boucle que voulez-vous dire ?
Modifié le 14 déc. 2020 à 22:28
Déjà tu fais
Donc, tu boucles de 2 à 9 ... et à chaque tour, tu modifies la valeur de ta variable résultat....
Une fois ta boucle terminée ( donc arrivée à 9 ) ta variable resultat a une valeur qui correspond à cette ligne...
Puis tu refais une seconde boucle
Sauf que.. dans cette seconde boucle.. ta variable résultat n'a qu'une seule valeur.... celle correspondant à la fin de ta première boucle....
En gros, il faut que tu modifies ton code pour ne faire qu'une seule boucle !
un truc du genre