XL 2021 VBA Ajout d'une valeur en heure dans une cellule

  • Initiateur de la discussion Initiateur de la discussion didus
  • 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 !

didus

XLDnaute Occasionnel
Bonjour à tous, un peu d'aide serait bienvenue
le contexte
A partir du calcul d'une durée qui donne un résultat en heures minutes et de la saisie dans un endroit aléatoire,
je teste une valeur T ou B pour incrémenter la durée concernée dans une cellule située en haut de la colonne de saisie
tout ceci est ok
c'est au niveau de la somme des valeurs pour ajouter la nouvelle valeur à la valeur de la cellule de cumul que le blocage survient
beaucoup d'essais mais apparemment ça bloque sur les types de données ajoutées

je place en pj le code ainsi que les variables locales, la cellule destinatrice du calcul est en heures minutes et secondes (format heures)
la valeur à ajouter est soit HT soit HU

merci d'avance
excel tableau des heures.png
 

Pièces jointes

Bonsoir.
C'est quoi ces Left(HD, 5) ?
Ça n'a pas de sens si ce sont des durées en jours affichées dans les cellules via un format d'heure !
Supprimez moi ces variables HE, HG et HU et utilisez directement les HD, HF et HT.
Pour des textes à construire par concaténation utilisez Format(HD, "hh:mm")
 
Bonjour,

C'est quoi ces Left(HD, 5) ?
Ça n'a pas de sens si ce sont des durées en jours affichées dans les cellules via un format d'heure !
Ce sont en fait des horaires, qui sont bien au format heure d'Excel.
Donc ça n'a effectivement aucun sens de faire un LEFT(HD,5), et pourtant... ça m'étonne mais ça marche, ça donne l'horaire en heures et minutes, mais au format texte cette fois-ci.

L'utilisation de Format(HD, "hh:mm") serait, à mon avis, tout de même plus logique. 😉



Quant à ton problème, je te propose d'essayer ceci :
VB:
Cells(9, ActiveCell.Column) = Cells(9, ActiveCell.Column) + HT



Juste une remarque : un petit Cancel = True ne serait pas du superflu... 😉
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'
    ' Seules les cellules de l'emploi du temps déclenchent l'événement
    DernLigne = Range("C" & Rows.Count).End(xlUp).Row + 2

    If Target.Column < 4 Then Exit Sub
    If Target.Column > 10 Then Exit Sub

    If Target.Row < 10 Then Exit Sub
    If Target.Row > DernLigne Then Exit Sub

    ' Saisies
    REP = ActiveCell.Value
    ActiveCell.Value = ""
    Cree_Matiere

    Cancel = True

End Sub
 
Dernière édition:
Juste une remarque : un petit Cancel = True ne serait pas du superflu... 😉
VB:
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'
    ' Seules les cellules de l'emploi du temps déclenchent l'événement
    DernLigne = Range("C" & Rows.Count).End(xlUp).Row + 2

    If Target.Column < 4 Then Exit Sub
    If Target.Column > 10 Then Exit Sub

    If Target.Row < 10 Then Exit Sub
    If Target.Row > DernLigne Then Exit Sub

    ' Saisies
    REP = ActiveCell.Value
    ActiveCell.Value = ""
    Cree_Matiere

    Cancel = True

End Sub
Rajouté la ligne de code : cancel= true
 
- 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

Retour