Routine de contrôle en VBA

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
Configuration: Windows Vista
Internet Explorer 7.0

4 réponses

  1. vous etes etudiant
    1. Bonjour,

      je suis un salarié ,

      j'ai besoin de cette routine pour faire des maquettes afin de me faciliter le travail
    2. 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
    3. 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
    4. @Chrif/71est ce que vous connaissez la logique de programmation
    5. @Archi-dessinoui 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
  2. 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
    1. 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
    2. @Chrif/71utiliser l'instruction format(date, jjjj/mmmm/aaaa)
    3. @Chrif/71j'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
    4. @Archi-dessinBonsoir ,

      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
  3. Contributeur
    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+
    1. 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
  4. Contributeur
    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+