Routine de contrôle en VBA

Fermé
Chrif/71 Messages postés 8 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 17 mai 2008 - 11 mai 2008 à 17:17
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 18 mai 2008 à 02:00
Bonjour,

je débute dans VBA , j'ai un petit souci

je veux créer une routine que me controlera le N° de la sécu sociale:

exp :
dans cellule A1 :
VALEUR 1 pour le sexe Masculin
VALEUR 2 pour le sexe Féminin

Dans Cellule A2:
Année de naissance ( 81)

Dans Cellule A3:
Mois de naissance ( 06)

Dans Cellule A4:
Département de naissance ( 75)

Je désire si je saisisse dans A9 : le N° de la sécurité sociale , la routine ou la fonction extrait lesdonnées dedifférentes cellules et compare les 2 valeur si c'est faux , une boîte de dialogue s'affiche et que les valeurs de A1+ A2+A3 et A4 s'affichent dans A10

Merci d'avance

4 réponses

Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009 25
11 mai 2008 à 17:23
vous etes etudiant
0
Chrif/71 Messages postés 8 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 17 mai 2008
11 mai 2008 à 17:26
Bonjour,

je suis un salarié ,

j'ai besoin de cette routine pour faire des maquettes afin de me faciliter le travail
0
Chrif/71 Messages postés 8 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 17 mai 2008
11 mai 2008 à 17:26
Bonjour,

je suis un salarié ,

j'ai besoin de cette routine pour faire des maquettes afin de me faciliter le travail

Merci de votre aide
0
Chrif/71 Messages postés 8 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 17 mai 2008
11 mai 2008 à 17:32
Bonjour,

je suis un salarié ,

j'ai besoin de cette routine pour faire des maquettes afin de me faciliter le travail

Merci de votre aide
0
Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009 25 > Chrif/71 Messages postés 8 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 17 mai 2008
11 mai 2008 à 17:32
est ce que vous connaissez la logique de programmation
0
Chrif/71 Messages postés 8 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 17 mai 2008 > Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009
11 mai 2008 à 17:36
oui un peu

j'ai cherché sur internet et j'ai ecris un code mais il marche pas :



Private Sub TEST_SECU_Click()
Dim V1 As String
Dim V2 As String

V1 = Mid(cells(13, 12).Value, 1, 2) & Mid(cells(15, 1).Value, 1, 2) & Mid(cells(9, 12).Value, 1, 2) & Mid(cells(14, 12).Value, 1, 2)
V2 = Mid(cells(16, 3).Value, 1, 8)
If TEST_SECU.Value = True And V1 <> V2 Then
MsgBox " N° sécurité Sociale FAUX", vbCritical, "ERREUR"
cells(16, 3).Value = Mid(cells(13, 12).Value, 1, 2) & Mid(cells(15, 12).Value, 1, 2) & Mid(cells(9, 12).Value, 1, 1) & Mid(cells(14, 12).Value, 1, 2)
cells(17, 12).Value = Mid(cells(9, 12).Value, 1, 3)
End If
End Sub
0
Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009 25
11 mai 2008 à 17:50
c'est facile si c'est vous qui la réaliser.
tu crois qu'il ne presente pas d'erreur d'après ce qu vous avez écrit
0
Rebonjour,

le souci c'est lorsque le mois de naissance est de janvier à septembre
Dim me renvoie seulement un chiffre de 1 à 9 alors que j'ai besoin qu'il m'affiche : 01 à 09

Exp :
une femme
Date de naissance: 09/05/1985
Departiment de naissance : 91

N° sécurité sociale : 285059100000000

V1: 285591
V2:2850591
0
Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009 25 > Chrif/71
11 mai 2008 à 21:09
utiliser l'instruction format(date, jjjj/mmmm/aaaa)
0
Chrif/71 > Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009
11 mai 2008 à 23:13
Bonsoir,

ça marche toujours pas


A+
0
Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009 25 > Chrif/71
12 mai 2008 à 18:36
j'ai duy quitter,
pour votre réponse utliser la fonction Format$(Date, " dd mmmmyyyy")
affecter cette fonction à la cellule qui reçoi la date
et la Date qui est dans la fonction remplacer par la cellule qui contient la date
0
Chrif/71 Messages postés 8 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 17 mai 2008 > Archi-dessin Messages postés 270 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 28 décembre 2009
12 mai 2008 à 23:04
Bonsoir ,

la cellule qui reçoit la date ( Format, date , ddmmyy)

ça marche pas


Je pense que j'ai pas bien compris ce que vous voulez dire

Merci d'avance
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
13 mai 2008 à 09:49
Bonjour,
la sub... Private Sub TEST_SECU_Click() est liée à l'événement clic d'un contrôle OptionButton.
Dim ne renvoi rien, il sert à la déclaration de variable (pour que VBA sache quel genre de variable elle contiendra)

cogite déja un peu sur...
Sub TesterNumero()
Dim R As Long, V1 As String, V2 As String, V3 As String
Dim V4 As String
    Sheets("Feuil1").Select 'a adapter au nom de la feuille
    R = 1 'savoir sur quel ligne travailler
    V3 = "0" & Cells(R, 3).Value
    V4 = "0" & Cells(R, 2).Value 'pour les année 2001,2002 etc..
    V1 = Cells(R, 1).Value & Right(V4, 2) & Right(V3, 2) & Cells(R, 4).Value
    V2 = Left(Cells(9, 1).Value, 8) 'ce qui est dans A9
    
End Sub

A+
0
Chrif/71 Messages postés 8 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 17 mai 2008
17 mai 2008 à 23:37
Bonsoir :


dans cellule A1 :
1 pour le sexe Masculin
2 pour le sexe Féminin

Dans Cellule A2:
Année de naissance ( 81)

Dans Cellule A3:
Mois de naissance ( 06)

mois de naissance de juin

Mid (cellA3,1,2) = 6
le souci pour les mois de naissance de Janvier à septembre c'est qu'elle me renvoit un seul chiffre
alors il me faut qu'elle me renvoit 06

Dans Cellule A4:
Département de naissance ( 75)

Je désire si je saisisse dans A9 : le N° de la sécurité sociale , la routine ou la fonction extrait lesdonnées dedifférentes cellules et compare les 2 valeur si c'est faux , une boîte de dialogue s'affiche et que les valeurs de A1+ A2+A3 et A4 s'affichent dans A10


pour vous R ça represente quoi ?


Merci d'avance
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
18 mai 2008 à 02:00
Dans le module de la feuille tu copie..
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim R As Long, V1 As String, V2 As String, V3 As String
Dim V4 As String
    For R = 1 To 4
        If Cells(R, 1).Value = "" Then Exit Sub
    Next R
    V3 = "0" & Cells(3, 1).Value
    V4 = "0" & Cells(2, 1).Value 'pour les année 2001,2002 etc..
    V1 = Cells(1, 1).Value & Right(V4, 2) & Right(V3, 2) & Cells(4, 1).Value
    V2 = Left(Cells(9, 1).Value, 7) 'ce qui est dans A9
    If V1 = V2 Then
        MsgBox "Le numéro en A9=" & V2 & " il est correct", vbOKOnly, "Contrôle"
    Else
        MsgBox "Le numéro en A9 n'est pas correct" & Chr$(13) _
        & "Ce doit être " & V1, vbOKOnly, "Contrôle"
    End If
End Sub


ensuite.. tu rentre les données comme dans ton premier poste
dans A9.. '285059100000000 avec l'apostrophe
ensuite
Dans A1 .. 2 - A2.. 85 - A3.. 6 - A4.. 91
et après behh.. tu modifie une donnée pour voir.
J'espère que cette fois ca répond à ton problème :D
A+
0