Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Valider la modification d'une donnée avec VBA

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

P

papouny

Guest
Bonjour,

j'ai deux types de données sur ma feuille Excel, date et taux.
Je saisie les données dans des TextBox placés dans un UserForm pour remplir ma feuille.

En cas de doublon, j'ai un message qui me propose de modifier le taux, toutefois je suis bloquer pour valider cette modification ( je n'ai pas su terminer la ligne de code ).

je joins mon fichier pour étude.

Merci à qui pourra m'aider
 

Pièces jointes

Re : Valider la modification d'une donnée avec VBA

Bonjou papouny,

Une version à ma sauce.
Les dates doivent pouvoir être saisies sous différents formats: 1/1/1, 1/1/01, 1/01/2001, 01/01/1
Les taux doivent pouvoir être saisis avec comme séparateur décimal le point ou la virgule.
J'ai ôté le bouton d'option qui n'est pas très windowsien pour refermer une fenêtre (selon mes habitudes perso)

Code:
Private Sub VALID_Click()
Dim nLigne As String, rgDate As Range, Rep As Long
Dim tDate, S As String, i As Long, N, LaDate As Date

'Vérif saisie d'une date valide
tDate = Split(TextBox1, "/")
For i = LBound(tDate) To UBound(tDate)
  S = S & tDate(i) & IIf(i = UBound(tDate), "", "/")
Next i
If Not IsDate(S) Or UBound(tDate) <> 2 Then
  MsgBox "Veuillez rentrer une date valide..."
  TextBox1.SetFocus
  Exit Sub
Else
  LaDate = DateValue(CDate(TextBox1))
End If

'Vérif saisie d'un taux valide
TextBox2 = Replace(TextBox2, ".", Mid(Val("1.1"), 2, 1))
If Not IsNumeric(TextBox2) Then
  MsgBox "Veuillez saisir un taux valide!"
  TextBox2.SetFocus
  Exit Sub
Else
  N = 0 + TextBox2
End If

'Recherche de la date
Set rgDate = Nothing
Set rgDate = Range("A:A").Find(what:=LaDate)
If rgDate Is Nothing Then
  'la date n'existe pas
  nLigne = Cells(Rows.Count, "a").End(xlUp).Row
  If Not Cells(nLigne, "a") = "" Then nLigne = nLigne + 1
    Cells(nLigne, "a") = LaDate
    Cells(nLigne, "b") = N
Else
  ' la date existe
  Rep = MsgBox("La date existe déjà avec un taux de:  " & _
        rgDate.Offset(, 1) & vbLf & vbLf & _
        "Voulez-vous remplacer l'ancien taux par: " & N, _
        Buttons:=vbInformation + vbYesNo + vbDefaultButton1)
  If Rep = vbYes Then rgDate.Offset(, 1) = N
End If
End Sub
 

Pièces jointes

Re : Valider la modification d'une donnée avec VBA

Bonjour et merci pour votre promptitude à répondre à ma demande.

C'est tout bonnement ce que je souhaitais obtenir.

Encore merci
 
Re : Valider la modification d'une donnée avec VBA

Bonjour,

J'ai à nouveau besoin de vos connaissances pour compléter votre macro.

Si la date et le taux saisis sont déjà présents sur la feuille Excel, je souhaiterais l'affichage d'un message proposant la suppression de ces données et non la suppression de la ligne, réponse oui, on efface les données, réponse non, on ferme le formulaire.

Merci pour votre collaboration.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…