Bonjour à tous,
Je viens vers vous en espérant que vous puissez m'aider à comprendre certaines lignes de code:
Voici la première fonction (si on appelle ca comme ceci) que je voudrais comprendre l'utilité:
Dans ce code, je voudrais comprendre quelle est l'utilité de la fonction Left svp? Car ceci qui a fait le code a mis left un peu partout dès qu'il y a une référence à une date or en mettant l'aide excel, ca me sort un charabia incompréhensible
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 TextBox_JourDebut.Value = Left(Worksheets("Liste PETRI").Cells(n, 5), 5) JD = DateValue(TextBox_JourDebut.Value) TextBox_JourDebut.ForeColor = &HC000& TextBox_HeureDebut.Value = FormatDateTime(TimeValue(Worksheets("Liste PETRI").Cells(n, 5)), vbShortTime)
Tant qu'à faire et afin de pouvoir réutilisé ceci, est-ce que datevalue est obligatoire pour jouer avec les dates? ainsi que FormatDateTime(TimeValue) ?
Merci d'avance
Un autre point que j'aimerais abordé concernant un problème sous excel 2010:
J'ai ce code dans un module:
et je mets ceci dans la feuille:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Public Z As Integer Sub Protection() Application.ScreenUpdating = False If Z = 0 Then Z = Z + 1 X = MsgBox("Vous n'êtes pas autorisé à modifié cette plage de données", vbExclamation) Application.Undo End If Z = 0 End Sub
Sous excel 2003, tout va bien, la protection fonctionne or si je suis sous 2010, il y a une erreur de compilation avec utilisation incorrecte de la propriété. la protection ne marche plus cela bloque en surlignant en jaune "Private Sub Worksheet_Change(ByVal Target As Range)" et en selectionnant Protection. Par contre si je mets la macro protection directement dans la feuille et pas dans le module, la protection fonctionne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub Worksheet_Change(ByVal Target As Range) If PERMISSION = False And (Not Intersect(Target, Range("A1:C5000")) Is Nothing Or Not Intersect(Target, Range("D1:D3")) Is Nothing Or Not Intersect(Target, Range("E1:BV5000")) Is Nothing) Then Protection End If End Sub
Savez vous pourquoi faut il mettre ceci dans la feuille et pas dans un module à part sous excel 2010?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False If Z = 0 And PERMISSION = False Then Z = Z + 1 X = MsgBox("Vous n'êtes pas autorisé à modifié cette plage de données", vbExclamation) Application.Undo End If Z = 0 End Sub
Merci d'avance à tous
bonne journée
Partager