Userform - Date automatique et doublons interdits

Imer2007

XLDnaute Occasionnel
Bonjour à tous,

Voilà un petit problème à vous proposer.

Via un userform, j'ai 2 combobox de dates don't l'une est dépendante de l'autre à 30 jours d'intervalle.
Je ne sais pas comment faire pour l'afficher en automatique.
En gros, date1 : 01/05/2010, date2 s'écrit automatiquement 31/05/2010.

Voilà mon code VBA :

Private Sub Validation_Click()
Sheets("Tableau").Select
'Positionnement dans la BD
[A65000].End(xlUp).Offset(1, 0).Select
'Transfert du formulaire dans la BD
ActiveCell.Value = Application.Proper(Me.Box_NIR)
ActiveCell.Offset(0, 1).Value = Me.Box_nom
ActiveCell.Offset(0, 2).Value = Me.Box_nom_marital
ActiveCell.Offset(0, 3).Value = Me.Box_prenom
ActiveCell.Offset(0, 4).Value = Me.Box_naissance
ActiveCell.Offset(0, 5).Value = Me.Box_ratt
ActiveCell.Offset(0, 6).Value = Me.List_situation
ActiveCell.Offset(0, 7).Value = Me.Box_raison
ActiveCell.Offset(0, 8).Value = Me.List_caisse
ActiveCell.Offset(0, 9).Value = Me.Box_adresse
ActiveCell.Offset(0, 10).Value = Me.Box_CP
ActiveCell.Offset(0, 11).Value = Me.Box_Ville
ActiveCell.Offset(0, 12).Value = Me.Box_envoi
ActiveCell.Offset(0, 14).Value = Me.Box_envoi + 30


Mon problème est que si ma date d'envoi s'écrit : 01/05/2010, ma deuxième date 31 et non 31/05/2010. Je suppose que cela vient du format et c'est là où je bloque...


Ma deuxième question est simple:
Comme vous pouvez le constater avec le code au dessus, je rentre des assurés via ce fameux formulaire (NIR, nom, etc.). Le hic est que le NIR est un numéro unique donc pas de doublons... Comment faire pour éviter d'ajouter un même assuré deux fois de suite. En gros, comment comparer le NIR à écrire avec la colonne des NIR déjà existant. Je suppose qu'il faudrait le rajouter ainsi :

Private Sub Validation_Click()
Sheets("Tableau").Select
'Positionnement dans la BD
[A65000].End(xlUp).Offset(1, 0).Select

Parcourt la colonne A (contient les NIR)
Si Me.box_NIR = NIR de la colonne
Msgbox "NIR déjà existant"
Sinon


'Transfert du formulaire dans la BD
ActiveCell.Value = Application.Proper(Me.Box_NIR)
ActiveCell.Offset(0, 1).Value = Me.Box_nom
ActiveCell.Offset(0, 2).Value = Me.Box_nom_marital
ActiveCell.Offset(0, 3).Value = Me.Box_prenom
...



Merci d'avance pour vos conseils.

Ci joint le fichier "épuré".
 
Dernière édition:

Imer2007

XLDnaute Occasionnel
Re : Userform - Date automatique et doublons interdits

Re tout le monde,

Pour les doublons, j'ai trouvé en cherchant un peu :

'Recherche de doublon
Dim j As Integer
'Récupère les données de la colonne A...
For j = 1 To Range("A65536").End(xlUp).Row
If Application.Proper(Me.Box_NIR) = Range("A" & j) Then
Sheets("Menu").Select
'Message si le NIR existe déjà
MsgBox "NIR déjà existant"
Exit Sub
End If
Next j
' fin recherche doublon

Et ça, ça fonctionne nickel !
Pour info, si j'écris le NIR au complet chiffre après chiffre genre 12345 6789012345, il ne me le considère pas comme un doublon. En revanche si je fais 1234567890123/45 (ou n'importe quel "symbole" séparant la clé du reste), il peut me trouver le doublon. A quoi cela est dû ?

Finalement, me reste que cette conversion de date à faire.
 

Imer2007

XLDnaute Occasionnel
Re : Userform - Date automatique et doublons interdits

Euh, personne n'a d'idées pour le problème de numéro de sécu.

Pour la date et les doublons j'ai trouvé, mais je sèche vraiment sur le numéro de sécurité sociale dans la combobox. Serait ce du à un mauvais format ?


Dernière question...

Un utilisateur remplit une fiche d'un assuré. Lorsqu'il fait une recherche de fiche, une combobox lui propose de relancer par une date si besoin est.

Comment est il possible de mettre à jour la fiche avec la date de relance ?
 

Staple1600

XLDnaute Barbatruc
Re : Userform - Date automatique et doublons interdits

Bonsoir

Tu sais qu'il existe dans Excel un format de cellules: Numéro de Sécu ?

nsec.jpg
 
Dernière édition:

Imer2007

XLDnaute Occasionnel
Re : Userform - Date automatique et doublons interdits

Bonsoir Staple1600,

Le problème n'est pas là.

Donc je réitère car je pense ne pas m'être fait comprendre.
J'intègre des fiches de données (NIR, nom, prenom, etc.) dans un tableau via un userform.
Le NIR étant effectivement le n° de sécu, ca me l'intègre dans le tableau sous cette forme spéciale.

Dans mon userform, j'ai un bouton de recherche de fiche qui recherche par le N° de sécu.
Or mon problème est que cela ne fonctionne pas, malgré le fait que la ligne soit intégrée dans le tableau, il n'arrive pas à trouver le NIR et par conséquent ma fiche...

Or j'ai trouvé une astuce à la mord-moi-le-noeud qui est d'insérer un symbole ou une lettre lorsque je rentre le NIR (mon NIR n'est plus un nombre à proprement parler mais un "texte").
Et là cette fois ci, la recherche fonctionne.

D'où ma question, certes stupide...
 

Imer2007

XLDnaute Occasionnel
Re : Userform - Date automatique et doublons interdits

Re le forum,

Bon faut pas me demander comment ni pourquoi mais j'ai à priori trouvé comment résoudre mon problème.
Trouvé sur Excelabo.


Private Sub box_NIR_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim nc As Integer, s As String
s = Trim(Box_NIR): nc = Len(s)
If nc = 0 Then Exit Sub
If (nc <> 15 And nc <> 13) Or Not IsNumeric(s) Then
MsgBox "Vous devez entrer 13 ou 15 chiffres sans espaces", , "Test"
Box_NIR = ""
Else
Box_NIR = Format(s, IIf(nc = 15, "0 00 00 00 000 000 00", _
"0 00 00 00 000 000"))
End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 310
Messages
2 087 113
Membres
103 474
dernier inscrit
taha1995