Problème d'importation de fonction ?

  • Initiateur de la discussion Initiateur de la discussion gimli
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gimli

XLDnaute Occasionnel
Bonjour à toutes et à tous,

je vous explique mon soucis: j'ai une page excel avec une colonne ou il y a un calcul avec une fonction, appelée Minutes(). J'ai une autre page (appelée Traitement) qui, elle, peut charger d'autre pages excel grâce à un bouton.
Lorsque je charge la page excel ou il y a la formule, toutes la colonne ou il y a le calcul avec la fonction est marquée #NOM? ...alors que sur la page d'origine la fonction marche très bien =S

Sauriez-vous pourquoi ? et quelles seraient les solutions ? Merci d'avance, bonne fin d'après-midi 🙂
 
Re : Problème d'importation de fonction ?

Je pense qu'il faut tester que les cellules contiennent effectivement une valeur sinon c'est sur ça marche pas :

If Range("F" & i).Value <> " " And Range("G" & i).Value <> "" And Range("H" & i).Value <> "" And Range("I" & i).Value <> "" Then
Range("K" & i) = Minutes(Range("F" & i).Value & " " & Range("G" & i).Value, Range("H" & i).Value & " " & Range("I" & i).Value)
end if
 
Re : Problème d'importation de fonction ?

plus encore une autre chose :
il faut convertir en format date soit :

Range("K" & i) = Minutes(CDate(Range("F" & i).Value) & " " & CDate(Range("G" & i).Value), CDate(Range("H" & i).Value) & " " & CDate(Range("I" & i).Value))
 
Re : Problème d'importation de fonction ?

Pourquoi mettre les cellules contenant des heures en format date ? je ne comprend pas. Vu que la formule (K2=Minutes(F2+G2;H2+I2 )) quand je l'entre à la main elle fonctionne .
 
Re : Problème d'importation de fonction ?

Sub essai()
Dim i As Integer
i = 2
If Range("F" & i).Value <> " " And Range("G" & i).Value <> "" And Range("H" & i).Value <> "" And Range("I" & i).Value <> "" Then
Range("K" & i) = Minutes(CDate(Range("F" & i).Value) & " " & CDate(Range("G" & i).Value), CDate(Range("H" & i).Value) & " " & CDate(Range("I" & i).Value))
End If
End Sub
Function Minutes(deb As Date, fin As Date) As Long
Dim t1 As Date, t2 As Date, n As Long, d As Date, t As Date
t1 = TimeValue("8:0")
t2 = TimeValue("18:0")
For n = 1 To DateDiff("n", deb, fin)
d = deb + n / 1440
t = TimeValue(d)
If Weekday(d, 2) < 6 And t > t1 And t <= t2 Then Minutes = Minutes + 1
Next
End Function
'f2 = 31/03/2010 g2=12:45:00 h2 = 30/04/2010 i2 = 13:13:00
'et je trouve 13228
 
Re : Problème d'importation de fonction ?

j'ai essayé comme ça :

dernligne = ThisWorkbook.Sheets(1).Cells(65536, 3).End(xlUp).Row

For i = 2 To dernligne
'K2=Minutes(F2+G2;H2+I2) -> formule
Range("K" & i) = Minutes(CDate(Range("F" & i).Value) & " " & (Range("G" & i).Value), CDate(Range("H" & i).Value) & " " & (Range("I" & i).Value))
Next

il n'y a plus d'erreur mais la colonne K reste vide, on dirait qu'il ne lit pas cette partie du code 🙁
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
257
Réponses
5
Affichages
422
W
  • Question Question
Microsoft 365 Fonction si
Réponses
7
Affichages
217
Réponses
18
Affichages
584
Retour