Bt = Array("Picture1", "CommandButton22", "CommandButton24" et "CommandButton26")
For i = 0 To UBound(Bt)
Sheets(1).Shapes(Bt(i)).Select
Selection.Enabled = 0
Next
Mais je pense que ton image va rester, c'est elle qui lance l'UserForm "MotDePasse", dans le fichier exemple, nous ne touchions pas au bouton lançant l'UserForm "MotDePasse"
Private Sub TextBox1_AfterUpdate()
If Not IsDate(TextBox1) Then TextBox1 = "": TextBox1.SetFocus
End Sub
Private Sub TextBox1_Change()
TextBox1.MaxLength = 10
With TextBox1
Select Case Len(.Text)
Case 2, 5
.Text = .Text & "/"
End Select
End With
End Sub
Private Sub TextBox1_AfterUpdate()
TextBox1 = Replace(TextBox1, " ", "/")
TextBox1 = Replace(TextBox1, ".", "/")
If Not IsDate(TextBox1) Then TextBox1 = "": TextBox1.SetFocus
End Sub
1. Je voudrais que dans 1 TextBox (date) quelque soit le mode de renseignement (sans ou sans espace , avec points...) le texte renvoyé soit au format jj/mm/yyyy
J'ai fait des tests mais ce n'est pas cela
Private Sub Date_AfterUpdate()
Date.Value = Format(Date.Value, Format("dd/mm/yyyy"))
End Sub
Ou çà
Private Sub Date_AfterUpdate()
Date.Value = Format(Date.Value, "00/00/yyyy")
End Sub
Re,
1) j'avais compris que tu souhaitais rentrer les dates soit 12.03.2015 soit 12 03 2015 et les transformer en 12/03/2015.
Que veux-tu faire exactement ? Rentrer 12032015 et qu'à la sortie tu es 12/03/2015 ?
A+
Private Sub TextBox4_AfterUpdate()
If TextBox4 Like "* * *" Then
TextBox4 = Replace(TextBox4, " ", "/") 'prise en compte des espaces
ElseIf TextBox4 Like "*.*.*" Then
TextBox4 = Replace(TextBox4, ".", "/") 'prise en compte des points
ElseIf Len(TextBox4) = 6 Or Len(TextBox4) = 8 Then
TextBox4 = Left(TextBox4, 2) & "/" & Mid(TextBox4, 3, 2) & "/" & Mid(TextBox4, 5, 4)
End If
If Not IsDate(TextBox4) Then TextBox4 = "": TextBox4.SetFocus
End Sub
Re,
Avec celle-là :
Pour le point N° 2, c'est difficile car tout est imbriqué, pourrais-tu nous remettre les différentes possibilités ?
A+
Private Sub UserForm_Initialize()
With Worksheets("DOC")
ComboBox2.List = .Range("K2:K" & .Range("K65536").End(xlUp).Row).Value
'Ne pas mettre la ligne suivante
'ComboBox3.List = .Range("B2:C" & .Range("B65536").End(xlUp).Row).Value
End With
End Sub
Private Sub CommandButton1_Click()
Dim lg&
Application.ScreenUpdating = 0
'Avec la feuille DOC
With Sheets("DOC")
'Si la valeur de ComboBox3 n'est pas trouvée dans la colonne B de DOC
If IsError(Application.Match(ComboBox3, .Columns(2), 0)) Then
'On cherche la première cellule vide de la colonne A
lg = .Range("A65536").End(3)(2).Row
'On copie les valeurs des contrôles dans les colonnes correspondantes
.Cells(lg, 1) = ComboBox2
.Cells(lg, 2) = ComboBox3
.Cells(lg, 3) = TextBox3
.[A1].CurrentRegion.Sort .[A1], xlAscending, , .[B1], xlAscending, , , xlYes
End If
End With
'Avec la feuille TEST
With Sheets("TEST")
'......