Bonjour à tous,
Je suis nouveau sur le forum, j'ai découvert le langage VBA en novembre dernier, depuis je me suis exercer à coder pour mon travail.
Alors tout d'abord un GRAND MERCI à tous pour vos conseils, votre partage...
Actuellement, je dois gérer une base de données qui permet le suivi de 600 employés pour leur visites médicales.
Grace à vos codes et vos explications j'ai réussi à faire un userforme avec un tableau Excel de 51 colonnes qui se rempli automatiquement.
J'ai plusieurs textbox ou je peux écrire plusieurs lignes en faisant "enter". Pratique pour insérer une nouvelle date sous une autre.
Voici le souci que je rencontre avec le bouton "modification".
Lorsque je rentre une nouvelle date de visite sous une autre dans ma textbox, il y a un blocage sur la textbox40. Voici mon code :
Je suis nouveau sur le forum, j'ai découvert le langage VBA en novembre dernier, depuis je me suis exercer à coder pour mon travail.
Alors tout d'abord un GRAND MERCI à tous pour vos conseils, votre partage...
Actuellement, je dois gérer une base de données qui permet le suivi de 600 employés pour leur visites médicales.
Grace à vos codes et vos explications j'ai réussi à faire un userforme avec un tableau Excel de 51 colonnes qui se rempli automatiquement.
J'ai plusieurs textbox ou je peux écrire plusieurs lignes en faisant "enter". Pratique pour insérer une nouvelle date sous une autre.
Voici le souci que je rencontre avec le bouton "modification".
Lorsque je rentre une nouvelle date de visite sous une autre dans ma textbox, il y a un blocage sur la textbox40. Voici mon code :
VB:
'pour le formulaire
Private Sub UserForm_Initialize()
Dim J As Long
Set Ws = Sheets("2019") 'correspond au nom de l'onglet de mon tableau Excel
With Me.ComboBox2
For J = 2 To Ws.Range("C" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("C" & J)
Next J
End With
'Pour la date de la demande
With TextBox40
'Autorise les mutilignes dans le TextBox
'Attention: cette propriété est toujours à False par défaut
.MultiLine = True
'Spécifie que la touche ENTRÉE ajoutera une nouvelle ligne.
.EnterKeyBehavior = True
End With
'pour la date de la visite
With TextBox41
'Autorise les mutilignes dans le TextBox
'Attention: cette propriété est toujours à False par défaut
.MultiLine = True
'Spécifie que la touche ENTRÉE ajoutera une nouvelle ligne.
.EnterKeyBehavior = True
End With
'pour inscrire l'heure de la visite
With TextBox42
'Autorise les mutilignes dans le TextBox
'Attention: cette propriété est toujours à False par défaut
.MultiLine = True
'Spécifie que la touche ENTRÉE ajoutera une nouvelle ligne.
.EnterKeyBehavior = True
End With
'Pour inscrire la présence
With TextBox43
'Autorise les mutilignes dans le TextBox
'Attention: cette propriété est toujours à False par défaut
.MultiLine = True
'Spécifie que la touche ENTRÉE ajoutera une nouvelle ligne.
.EnterKeyBehavior = True
End With
'pour inscrire la date de la prochaine visite
With TextBox44
'Autorise les mutilignes dans le TextBox
'Attention: cette propriété est toujours à False par défaut
.MultiLine = True
'Spécifie que la touche ENTRÉE ajoutera une nouvelle ligne.
.EnterKeyBehavior = True
End With
'permet d'indiquer le format date dans notre zone de texte
TextBox40.Text = "jj/mm/aaaa"
If TextBox40 = "jj/mm/aaaa" Then
TextBox40 = "" 'permet d'enlever le format date dans la zone de texte lorsque nous entrons une date
End If
If TextBox40 = "" Then
TextBox40 = "jj/mm/aaaa"
End If
TextBox41.Text = "jj/mm/aaaa"
If TextBox41 = "jj/mm/aaaa" Then
TextBox41 = "" 'permet d'enlever le format date dans la zone de texte lorsque nous entrons une date
End If
If TextBox41 = "" Then
TextBox41 = "jj/mm/aaaa"
End If
TextBox44.Text = "jj/mm/aaaa"
If TextBox44 = "jj/mm/aaaa" Then
TextBox44 = "" 'permet d'enlever le format date dans la zone de texte lorsque nous entrons une date
End If
If TextBox44 = "" Then
TextBox44 = "jj/mm/aaaa"
End If
End Sub
'zone de texte "Date de la demande"
Private Sub TextBox40_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii > 46 And KeyAscii < 58) Then
KeyAscii = 0 'permet de taper uniquement les caractères du pavé numérique "0123456789/", pratique pour inscrire uniquement une date
End If
End Sub
'zone de texte "Date de début"
Private Sub TextBox41_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii > 46 And KeyAscii < 58) Then
KeyAscii = 0 'permet de taper uniquement les caractères du pavé numérique "0123456789/", pratique pour inscrire uniquement une date
End If
End Sub
'zone de texte "Prochaine visite"
Private Sub TextBox44_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii > 46 And KeyAscii < 58) Then
KeyAscii = 0 'permet de taper uniquement les caractères du pavé numérique "0123456789/", pratique pour inscrire uniquement une date
End If
End Sub
Private Sub CommandButton9_Click() 'pour le bouton "Modifications"
Dim no_ligne, mligne As Integer
'Sheets("2019").Select
no_ligne = ComboBox2.ListIndex + 2
no_ligne = ActiveCell.Row
'Lig = 1 + Me.ComboBox2.ListIndex + 1
' Avec la feuille 2019
' Récupérer les données de la personne
With Sheets("2019")
Cells(no_ligne, 3) = ComboBox2.Value
Cells(no_ligne, 1) = ComboBox1.Value
Cells(no_ligne, 2) = TextBox16.Value
Cells(no_ligne, 4) = TextBox17.Value
Cells(no_ligne, 5) = TextBox18.Value
If Cells(no_ligne, 5) <> "jj/mm/aaaa" Then
Cells(no_ligne, 5) = CDate(TextBox18) 'permet de garder le format date françaises
Else: Cells(no_ligne, 5) = ""
End If
Cells(no_ligne, 6) = TextBox19.Value
If Cells(no_ligne, 6) <> "jj/mm/aaaa" Then
Cells(no_ligne, 6) = CDate(TextBox19) 'permet de garder le format date françaises
Else: Cells(no_ligne, 6) = ""
End If
Cells(no_ligne, 7) = ComboBox3.Value
Cells(no_ligne, 8) = ComboBox4.Value
Cells(no_ligne, 9) = TextBox23.Value
Cells(no_ligne, 10) = ComboBox5.Value
Cells(no_ligne, 11) = TextBox24.Value
Cells(no_ligne, 12) = TextBox28.Value
Cells(no_ligne, 13) = ComboBox6.Value
Cells(no_ligne, 14) = ComboBox7.Value
Cells(no_ligne, 15) = ComboBox8.Value
Cells(no_ligne, 16) = TextBox31.Value
' TextBox31.Text = TextBox31.Text & " " & ValeurSupplementaire
If Cells(no_ligne, 16) = "" Then
Cells(no_ligne, 16) = ""
Else
Cells(no_ligne, 16) = CDate(TextBox31) 'permet de garder le format date françaises
End If
Cells(no_ligne, 18) = TextBox32.Value
Cells(no_ligne, 19) = TextBox33.Value
Cells(no_ligne, 20) = TextBox34.Value
Cells(no_ligne, 21) = TextBox35.Value
Cells(no_ligne, 22) = TextBox36.Value
Cells(no_ligne, 23) = TextBox37.Value
Cells(no_ligne, 24) = TextBox38.Value
Cells(no_ligne, 25) = TextBox39.Value
Cells(no_ligne, 26) = TextBox40.Value
TextBox40.Text = TextBox40.Text & " " & ValeurSupplementaire
If Cells(no_ligne, 26) = "" Then
Cells(no_ligne, 26) = ""
Else
Cells(no_ligne, 26) = CDate(TextBox40) 'permet de garder le format date françaises
End If
Cells(no_ligne, 27) = TextBox41.Value
TextBox41.Text = TextBox41.Text & " " & ValeurSupplementaire
If Cells(no_ligne, 27) = "" Then
Cells(no_ligne, 27) = ""
Else
Cells(no_ligne, 27) = CDate(TextBox41) 'permet de garder le format date françaises
End If
Cells(no_ligne, 28) = ComboBox9.Value
Cells(no_ligne, 29) = TextBox42.Value
Cells(no_ligne, 30) = TextBox43.Value
Cells(no_ligne, 31) = TextBox44.Value
TextBox41.Text = TextBox44.Text & " " & ValeurSupplementaire
If Cells(no_ligne, 31) = "" Then
Cells(no_ligne, 31) = ""
Else
Cells(no_ligne, 31) = CDate(TextBox44) 'permet de garder le format date françaises
End If
Cells(no_ligne, 32) = TextBox45.Value
Cells(no_ligne, 33) = TextBox46.Value
End With
End Sub