Calcul Heures de Travail

Solis

XLDnaute Nouveau
Bonjour à tous,

Après avoir parcouru bon nombre de sujets afin de résoudre mon problème, je me suis résolu à m'inscrire ici, où j'ai déjà trouvé de nombreuses réponses.

Débutant en VBA, je suis en train de créer un nouveau fichier de saisie d'heure de travail dans un cadre professionnel, et souhaite l'automatiser au maximum. Ainsi, chaque année, l'idée est de partir d'un fichier de base qui créerait les différents jours d'une année N. Là où je coince, c'est pour entrer les formules dans le classeur.

Voici donc un extrait du tableau pour illustrer : Ce lien n'existe plus

J'aimerais donc qu'à la création du classeur, les formules de calcul s'insèrent automatiquement dans la colonne M pour les jours ouvrés. Là c'est ok, mais je bute sur le code à rentrer, Excel me retournant une Erreur 13 - Incompatibilité de type.

Avant de vous montrer mon code, je précise que j'ai fait le choix de passer par un "Formula" et non par un "Value" afin que les données s'actualisent d'elles-mêmes sans avoir recours à un Worksheet/change.

En prenant en compte l'image et pour exemple la ligne 9, je souhaiterai insérer en M9 la formule suivante : =((D9-C9)+(I9-H9))-((F9-E9)+(K9-J9))

Le problème est que "9" sera repris partout, d'où l'idée de mettre "i" dans la formule. Voici mon code :

Code:
Sub Calcul()

Dim i As Long


'Insertion calcul heures totales/jour dans la colonne M

For i = 8 To 38

   'Détection et insertion du calcul dans les cellules blanches = jours ouvrés

    If Cells(i, 13).Interior.ColorIndex <> 24 Then
           Cells(i, 13).Formula = "=((D"+i+"-C"+i+")+(I"+i+"-H"+i+"))"
        
    Else
            Cells(i, 13).Value = ""
    End If
    
Next i

End Sub


Je n'ai même pas pris la peine de retirer la partie "Absences", étant déjà suffisamment perdu avec la syntaxe. Quand bien même avec ça, l'erreur 13 surgit au lancement de la macro. Par curiosité, j'ai voulu tenté avec une seule cellule, à savoir

Code:
Cells(i, 13).Formula = "=D" & i

Et... ça marche. Je pense donc que l"erreur vient de l'addition/soustraction que j'ai voulu ajouter. Est-ce possible de procéder comme cela ? Décelez-vous des erreurs qui expliqueraient l'erreur en question ?

En espérant avoir été assez clair (ce qui n'est jamais vraiment évident...), je vous remercie infiniment pour votre aide, je dois vous avouer que je commence quelque peu à désespérer. :D
 

Statistiques des forums

Discussions
312 185
Messages
2 086 016
Membres
103 093
dernier inscrit
Molinari