Changer la date d'un DTPicker automatiquement

dmoluc

XLDnaute Occasionnel
Bonsoir à tous,

comme d’habitude je n'ai que des problème que je n'arrive pas à résoudre :mad:
J'ai un DTPicker1 sur un UserForm1 voici l'image :


Voici le code d'initialisation de l'userform1, là ou j'essais de changer la date du DTPicker1
Code:
Private Sub UserForm_Initialize()
On Error GoTo ETIQUETTE
ActiveSheet.Unprotect
Dim D As Date
Dim Q As Date
Dim S As Double

'Le code sous condition fonctionne trés bien pour la première ligne de la feuille, il me donne la date de début du chantier sans faillir
If Range("D6").Value <> "" And Range("D7").Value = "" Then
    D = Range("AR2").Value
    Me.DTPicker1 = D
End If

'C'est là que cela ne fonctionne pas, il n'y a pas d'erreur mais la date ne change pas

Q = Sheets("Programme des Travaux").DTPicker21.Value
S = Application.WorksheetFunction.Sum(Range("E9:E9"))
DTPicker1.Value = (Q + S)
 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

 Exit Sub
ETIQUETTE: erreur = MsgBox("Vérifier la date de début et recommencer" & vbOKOnly)
End Sub

L'idéal pour trouver ma date sera de chercher la première colonne vide et d'incrémenter la date de la ligne 5 qui correspond à cette colonne au DTPicker1. Dans mon code j'avais penser plus simple mais beaucoup moins précis hélas tant que cela ne fonctionne pas, je n'ose m'aventurer plus loin alors si quelqu'un peu me dire pourquoi le DTPicker s'entête à me donner le vendredi 10 aout quoi qu'il arrive et à chaque ligne, ce serait super

Merci pour votre aide
 

Bebere

XLDnaute Barbatruc
Re : Changer la date d'un DTPicker automatiquement

bonjour dmoluc
avec un fichier ce serait mieux
ces 2 lignes sont elles bonnes
Q = Sheets("Programme des Travaux").DTPicker21.Value
S = Application.WorksheetFunction.Sum(Range("E9:E9"))
 

dmoluc

XLDnaute Occasionnel
Re : Changer la date d'un DTPicker automatiquement

Bonjour Bebere
S = Application.WorksheetFunction.Sum(Range("E9:E9"))
sur cette ligne j'avais une erreur ("E9:E36") une étourderie, mais en fait je ne mettais les instructions dans la programmation du bouton de L'UserForm1 sans succès. J'ai changé mon fusil d'épaule et mis les instructions sur la feuille concerné et mon bricolage fonctionne et pour la durée de la tâche, et pour la date du DTPicker1 ; Le DTPicker21 est sur la feuille programme des travaux et sert à donner la date du début de chantier
voilà mon code :

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect
On Error GoTo ETIQUETTE
If Not Intersect(Target, Range("D5:D36")) Is Nothing Then
UserForm1.Show

UserForm1.Durée.Value = Range("D36").End(xlUp).Offset(0, 1).Value
Range("D36").End(xlUp).Offset(-1, 136).Select
ActiveCell.End(xlToLeft).Select
UserForm1.DTPicker1.Value = ActiveCell.End(xlUp).Value
End If

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Exit Sub
ETIQUETTE: MsgBox "Changer la date manuellement & vbokonly"

End Sub

C'est du bricolage avec des offset dans tout les sens pour aller chercher la date en ligne 5 de ma feuille, par rapport à la dernière ligne renseignée de la plage G6:DJ36. Il y a certainement plus simple avec une boucle pour rechercher la dernière cellule renseigner de la plage mais comme je ne sais pas faire je bricole avec mes maigres connaissances.
Pour envoyer le fichier ça devient compliquer car il dépasse très largement les 3MO
Si vous avez une idée pour simplifié ma petite routine, je suis preneur car je ne demande qu'à apprendre

Encore merci pour votre aide
Didier
 

Discussions similaires

Statistiques des forums

Discussions
314 653
Messages
2 111 578
Membres
111 205
dernier inscrit
Adrien25