1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

XL 2010 Validation des donées

Discussion dans 'Forum Excel' démarrée par M.D, 2 Décembre 2018.

  1. M.D

    M.D XLDnaute Occasionnel

    Inscrit depuis le :
    10 Août 2008
    Messages :
    212
    "J'aime" reçus :
    1
    Bonjour à tous,
    Un souci, dont je ne trouve pas la bonne procédure pour me décoince.
    Lorsque je veux valider l’enregistrement de mes données j’ai un message d’erreur.

    li = CLng(ll.Caption) + 1 'définit la ligne li

    Sachant que la procédure utilisée a été déjà fait ses preuves avec succès dans un autre projet pour l’enregistrement des
    Dans le cas présent, je ne comprends pas pourquoi ça ne fonctionne pas.
    Voici la procédure utilisée

    Private Sub CommandButton_Valider_Click() 'bouton "Valider / Modifier la fiche"
    Dim r As Range 'déclare la variable r (Recherche)
    Dim ctrl As Control 'déclare la variable ctrl (ConTRôLe)
    li = CLng(ll.Caption) + 1 'définit la ligne li
    If ComboBox2.Value = "" Then 'condition 1 : si la ComboBox2 "ComboBox2" n'est pas renseignée
    MsgBox "Merci d'indiquer le nom de la plante." 'message
    Me.ComboBox2.SetFocus 'place le curseur dans la textbox
    Exit Sub 'sort de la procédure
    Else 'sinon (condition 1)
    'définit la recherche r (recherche la valeur de la textbox dans la colonne B de l'onglet "BD_ELEVE")
    Set r = Sheets("BD_BESOIN").Columns(2).Find(Me.ComboBox2.Value, , xlValues, xlWhole)
    If Not r Is Nothing Then 'condition 2 : si il existe au moins une occurrence trouvée
    End If 'fin de la condition 2
    End If 'fin de la condition 1
    For Each ctrl In Me.Controls 'boucle sur tous les contrôles de l'UserForm
    On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
    'si la propriété "Tag" du contrôle n'est pas vide, récupère la valeur du contrôle dans la cellule (ligne : li,
    If ctrl.Tag <> "" Then Sheets("BD_BESOIN").Cells(li, CByte(ctrl.Tag)).Value = ctrl.Value
    If Err <> 0 Then Err = 0 'si une erreur a été générée, annule l'erreur
    On Error GoTo 0 'annule la gestion des erreurs
    Next ctrl 'prochain contrôle de la boucle
    Call Rens_Ctrl 'lance la procédure de renseignement des contrôles
    MsgBox "Les données ont été correctement envoyées dans la base !" 'message de fin
    End Sub
    Y aurait-il un membre pour me donner un petit coup de pouce, je vous en remercie.
    Je joins mon fichier
    M.D
     

    Pièces jointes:

  2. Chargement...

    Discussions similaires - Validation donées Forum Date
    validation des donées Forum Excel 3 Juillet 2006
    XL 2010 Impossible de créer la validation des données Forum Excel Mercredi à 20:31
    Choix validation des données Forum Excel 21 Novembre 2018
    XL 2007 Filtrer TCD en fonction de validations de données depuis un bouton Forum Excel 19 Novembre 2018
    XL 2016 VBA "traduction" de validation de données Forum Excel 15 Novembre 2018

  3. sousou

    sousou XLDnaute Accro

    Inscrit depuis le :
    21 Février 2005
    Messages :
    1581
    "J'aime" reçus :
    61
    Habite à:
    La Garenne Colombes
    Utilise:
    Excel 2010 (PC)
    Bonsoir
    si le label de ton N fiche(ll)= à "" pas possible de convertir en nombre
    alors essaie ceci

    If ll.Caption = "" Then ll.Caption = 0
    li = CLng(ll.Caption) + 1 'définit la ligne li
     
  4. M.D

    M.D XLDnaute Occasionnel

    Inscrit depuis le :
    10 Août 2008
    Messages :
    212
    "J'aime" reçus :
    1
    Re Bonjour,


    Merci pour ce conseil. Je viens de corriger ma formule. Le message d’erreur est supprimé.

    Malheureusement un nouveau souci est apparu.
    A savoir que :
    - Que la première validation d’enregistrement s’effectue sur la première ligne où se trouvent mes titres.
    - Lors de la seconde validation d’enregistrement, elle efface et remplace la première validation.
    Je ne vois pas pourquoi ce dysfonctionnement.
    Pouvez de nouveau m’aider.
    Merci d’avance
    M.D
     
  5. sousou

    sousou XLDnaute Accro

    Inscrit depuis le :
    21 Février 2005
    Messages :
    1581
    "J'aime" reçus :
    61
    Habite à:
    La Garenne Colombes
    Utilise:
    Excel 2010 (PC)
    bonjour
    Sans avoir étudier tout ton code qui était censé fonctionner dans un autre projet,
    essaie ceci en remplacement des lignes de code précités.

    dl = Sheets("BD_besoin").Cells(Application.Rows.Count, 1).End(xlUp).Row
    li = dl + 1 'définit la ligne li
    C'est tout dépens de ce que tu veut faire avec ll
    à la rigueur ajoute ll.caption=li
     
  6. M.D

    M.D XLDnaute Occasionnel

    Inscrit depuis le :
    10 Août 2008
    Messages :
    212
    "J'aime" reçus :
    1
    Bonsoir,

    Merci pour cette réponse à mon problème. Je teste tout cela un peu plus tard.

    M.D
     
  7. M.D

    M.D XLDnaute Occasionnel

    Inscrit depuis le :
    10 Août 2008
    Messages :
    212
    "J'aime" reçus :
    1
    Bonjour tous, le forum,

    J'ai essayé, mais le résultat n'est pas concluant.
    Les informations ne sont pas enregistrées dans ma base de données et je vois pas pourquoi ce dysfonctionnement.

    Merci néanmoins de votre aide

    M.D
     
  8. sousou

    sousou XLDnaute Accro

    Inscrit depuis le :
    21 Février 2005
    Messages :
    1581
    "J'aime" reçus :
    61
    Habite à:
    La Garenne Colombes
    Utilise:
    Excel 2010 (PC)
    Bonsoir
    envoi ton code modifié, que je regarde
     
  9. M.D

    M.D XLDnaute Occasionnel

    Inscrit depuis le :
    10 Août 2008
    Messages :
    212
    "J'aime" reçus :
    1
    Re Bonsoir

    Voici mon code utilisé

    '============================================================================================
    Private Sub CommandButton_Valider_Click() 'bouton "Valider / Modifier la fiche"
    Dim r As Range 'déclare la variable r (Recherche)
    Dim ctrl As Control 'déclare la variable ctrl (ConTRôLe)
    If ll.Caption = "" Then ll.Caption = 0
    li = CLng(ll.Caption) + 1 'définit la ligne li

    If ComboBox2.Value = "" Then 'condition 1 : si la textbox "combobox2" n'est pas renseignée
    MsgBox "Merci d'indiquer le nom de la plante." 'message
    Me.ComboBox2.SetFocus 'place le curseur dans la textbox
    Exit Sub 'sort de la procédure
    Else 'sinon (condition 1)
    'définit la recherche r (recherche la valeur de la textbox dans la colonne B de l'onglet "BD_besoin")
    Set r = Sheets("BD_besoin").Columns(2).Find(ComboBox2.Value, , xlValues, xlWhole)
    If Not r Is Nothing Then 'condition 2 : si il existe au moins une occurrence trouvée
    'condition 3 : si "Oui au message
    If MsgBox("Code déjà utilisé ! Si vous êtes sur une Nouvelle Fiche, veuiller le modifier." & Chr(13) _
    & "Si vous modifiez une fiche existante, ce n'est pas nécessaire." & Chr(13) & Chr(13) _
    & "Voulez-vous le modifier ?", vbYesNo, _
    "combobox1") = vbYes Then
    ComboBox1.SetFocus 'place le curseur dans la textbox
    'sélectionne le texte de la textbox
    Me.ComboBox2.SelStart = 0 'début de la sélection
    Me.ComboBox2.SelLength = Len(Me.ComboBox2) 'longueur de la sélection
    Exit Sub 'sort de la procédure
    End If 'fin de la condition 3
    End If 'fin de la condition 2
    End If 'fin de la condition 1
    For Each ctrl In Me.Controls 'boucle sur tous les contrôles de l'UserForm
    On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
    'si la propriété "Tag" du contrôle n'est pas vide, récupère la valeur du contrôle dans la cellule (ligne : li,
    'colonne : Tag du contrôle (converti en Byte)) de longlet "BD_ELEVE" (peut générer un erreur selon le type de contrôle)
    If ctrl.Tag <> "" Then Sheets("BD_besoin").Cells(li, CByte(ctrl.Tag)).Value = ctrl.Value
    If Err <> 0 Then Err = 0 'si une erreur a été générée, annule l'erreur
    On Error GoTo 0 'annule la gestion des erreurs
    Next ctrl 'prochain contrôle de la boucle
    Call Rens_Ctrl 'lance la procédure de renseignement des contrôles
    MsgBox "Les données ont été correctement envoyées dans la base !" 'message de fin

    End Sub

    Je joins également mon fichier

    Merci d'avance
    M.D
     

    Pièces jointes:

  10. sousou

    sousou XLDnaute Accro

    Inscrit depuis le :
    21 Février 2005
    Messages :
    1581
    "J'aime" reçus :
    61
    Habite à:
    La Garenne Colombes
    Utilise:
    Excel 2010 (PC)
    Bonjour
    Il semble que tu n'ai pas intègré les modifications proposées?
     

    Pièces jointes:

  11. M.D

    M.D XLDnaute Occasionnel

    Inscrit depuis le :
    10 Août 2008
    Messages :
    212
    "J'aime" reçus :
    1
    Bonjour Sousou

    Merci de votre conseil.

    Dès mon retour chez moi je regarde mon code.

    M.D
     

Partager cette page