Routine de contrôle en VBA
Chrif/71
Messages postés
8
Statut
Membre
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
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
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
Configuration: Windows Vista Internet Explorer 7.0
4 réponses
-
vous etes etudiant
-
-
-
-
-
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
-
-
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-
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 -
-
-
-
-
-
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+-
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
-
-
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+