calcul dans une cellule ou non suivant dtpicker

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

nrdz83

XLDnaute Impliqué
bonsoir à tous
voila j'aiun dtpicker_hdebut et dtpicker_hfin qui me range les données dans les colonnes D et E dans ma base de données et le calcul de la duréee est fait lors de la saise via ce code

Code:
If Me.DTPicker2 <> "" Then
      .Cells(DerLig, 4).Value = DTPicker_HDebut
      .Cells(DerLig, 5).Value = DTPicker_HFin
      .Cells(DerLig, 6).FormulaR1C1 = "=RC[-1]-RC[-2]"
    Else
     .Cells(DerLig, 6).Value = DTPicker2
     
    End If

et via une case à cocher je choisi donc soit le calcul de la durée soit la saisie directement de la durée.

Et c'est là que ça bugg. Par le code si dessus la durée (dtpicker2)ne se range pas dans ma base de donnée.

Comment dois je modifier ce code afin que je puisse soit saisir la durée directement soit un calcul via les dtpicker début et fin.

Par avance merci pour vos lumières amitiés
 
Re : calcul dans une cellule ou non suivant dtpicker

bonsoir voila j'ai mis le code de ma validation

Code:
Private Sub BTN_Saisie_Click()
' Mise en place des valeurs saisies
  Dim DerLig As Long
  ' Avec la feuille Dossiers_Mandats
  With Sheets("Base de données")
    ' Récupérer la dernière ligne de cette feuille grace au "." point
    DerLig = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Cells(DerLig, 1).Value = Combo_CDC
    .Cells(DerLig, 2).Value = DTPicker1
    '.Cells(DerLig, 4).Value = DTPicker_HDebut
    '.Cells(DerLig, 5).Value = DTPicker_HFin
    .Cells(DerLig, 7).Value = Combo_TypeActivite
    .Cells(DerLig, 8).Value = Combo_Activité
    .Cells(DerLig, 9).Value = Combo_SousActivité
    .Cells(DerLig, 10).Value = Combo_Action
    .Cells(DerLig, 11).Value = UCase(Txt_Nom)
    '.Cells(DerLig, 12).Value = Combo_Fonctions
    '.Cells(DerLig, 12).Value = Txt_Fonction
    .Cells(DerLig, 13).Value = Combo_Entité
    .Cells(DerLig, 14).Value = Combo_Service
    .Cells(DerLig, 15).Value = Combo_Pool
    .Cells(DerLig, 16).Value = Txt_OBS
    .Cells(DerLig, 17).Value = Combo_Dossier
    .Cells(DerLig, 18).Value = Txt_2
    .Cells(DerLig, 19).Value = Txt_3
    .Cells(DerLig, 20).Value = Txt_4
    .Cells(DerLig, 21).Value = Txt_5
    .Cells(DerLig, 22).Value = Txt_1
    
    'Saisie de la fonction suivant le choix
    
    If Me.DTPicker2 <> "" Then
      .Cells(DerLig, 4).Value = DTPicker_HDebut
      .Cells(DerLig, 5).Value = DTPicker_HFin
      .Cells(DerLig, 6).FormulaR1C1 = "=RC[-1]-RC[-2]"
    Else
     .Cells(DerLig, 6).Value = DTPicker2
     
    End If

merci pour vos lumières
 
Re : calcul dans une cellule ou non suivant dtpicker

bonsoir,

il est vrai que sans bout de code ce n'est pas très compréhensible !

mais...

If Me.DTPicker2 <> "" Then
.Cells(DerLig, 4).Value = DTPicker_HDebut
.Cells(DerLig, 5).Value = DTPicker_HFin
.Cells(DerLig, 6).FormulaR1C1 = "=RC[-1]-RC[-2]"
Else
.Cells(DerLig, 6).Value = DTPicker2
End If

c'est quoi > Me.DTPicker2 !?
et > DTPicker2
 
Re : calcul dans une cellule ou non suivant dtpicker

Bonsoir DTPicker2 c'est si je veux saisir la durée manuellement.
sinon dtpicker_hdebut et dtpicker_hfin c'est la saisie si j'ai des heures de ce fait je demande le calcul de la durée

merci
 
Re : calcul dans une cellule ou non suivant dtpicker

re

ta réponse ne dit toujours pas ce que représente Me.DTPicker2 et DTPicker2 ...

DTPicker2 <<<<< !? il s'agit de DTPicker2.Quoi ? ou alors c'est une variable date ou il manque Me. ? c'est bizarre !?

Me.DTPicker2 <<< !? il s'agit d'un userform ? Me.DTPicker2, vu comme ça, ne signifie rien !


et le test suivant, même s'il est valable, devrait être comme ceci:
If Me.DTPicker2 <> "" Then
.Cells(DerLig, 6).Value = DTPicker2
else
.Cells(DerLig, 4).Value = DTPicker_HDebut
.Cells(DerLig, 5).Value = DTPicker_HFin
.Cells(DerLig, 6).FormulaR1C1 = "=RC[-1]-RC[-2]"
End If

tu n'as pas un bout de fichier ?
 
Dernière édition:
Re : calcul dans une cellule ou non suivant dtpicker

bonsoir oui un morceau de fichier serait mieux effectivement, voila :

j'ai beau chercher mais je n'y arrive pas. Si je saisie hdébut et hfin ça fonctionne, par contre si je met la saisie direct alors ça fonctionne pas.

Par avance merci pour votre aide bonne soirée
 

Pièces jointes

Re : calcul dans une cellule ou non suivant dtpicker

re
essai ceci
car si tu prends manuellement donc CheckBox2 est cochée !
je l'ai fait est ça fonctionne !

'Saisie de la fonction suivant le choix

If CheckBox2.Value = True Then
.Cells(DerLig, 6).Value = DTPicker2.Value
Else
.Cells(DerLig, 4).Value = DTPicker_HDebut
.Cells(DerLig, 5).Value = DTPicker_HFin
.Cells(DerLig, 6).FormulaR1C1 = "=RC[-1]-RC[-2]"
End If

soit :
Code:
Private Sub UserForm_Initialize()
DTPicker2.Enabled = False
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub CheckBox2_Click()
If CheckBox2 = True Then
    Me.DTPicker2.Enabled = True
    Me.DTPicker_HDebut.Enabled = False
    Me.DTPicker_HFin.Enabled = False
Else
    Me.DTPicker2.Enabled = False
    Me.DTPicker_HDebut.Enabled = True
    Me.DTPicker_HFin.Enabled = True
End If
End Sub

Private Sub BTN_Saisie_Click()
' Mise en place des valeurs saisies
  Dim DerLig As Long
  ' Avec la feuille Dossiers_Mandats
  With Sheets("Base de données")
    ' Récupérer la dernière ligne de cette feuille grace au "." point
    DerLig = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Cells(DerLig, 1).Value = TextBox1
    .Cells(DerLig, 2).Value = TextBox2
    .Cells(DerLig, 3).Value = TextBox3
    .Cells(DerLig, 7).Value = TextBox7
    .Cells(DerLig, 8).Value = TextBox8
    .Cells(DerLig, 9).Value = TextBox9
    
    'Saisie de la fonction suivant le choix
   If CheckBox2.Value = True Then
     .Cells(DerLig, 6).Value = DTPicker2.Value
   Else
     .Cells(DerLig, 4).Value = DTPicker_HDebut
     .Cells(DerLig, 5).Value = DTPicker_HFin
     .Cells(DerLig, 6).FormulaR1C1 = "=RC[-1]-RC[-2]"
    End If
End With
Unload Me
End Sub
 
Dernière édition:
- 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
4
Affichages
732
Réponses
3
Affichages
879
Réponses
2
Affichages
589
Réponses
3
Affichages
615
Compte Supprimé 979
C
Retour