IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

[VBA-E]numéro automatique userform


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Par défaut [VBA-E]numéro automatique userform
    bonjour,

    je suis en train de faire un formulaire pour une petite base de donnée excel du boulot

    et je voudrais inclure dans un textbox un numéro automatique qui serait décomposé en 3 parties:

    1) l'année en cours
    2) le n° de semaine en cours
    3) un numéro automatique

    le must serait qu'à chaque nouvelle semaine le numéro auto se réinitialise

    vu que je suis encore grand novice, je ne sait vraiment pas comment faire pour obtenir ce résultats.

    quelqu'un pourrait il m'aider.

    merci

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2006
    Messages : 44
    Par défaut
    Je n'ai pas bien comprit a quoi le numéro automatique carrespondait.

    Enfin, grâce à Userform_Initialize, lers données sont réactualisées des que l'UF s'affiche. Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    Private Sub Userform_Initialize ()
    '_________________________________Semaine______
    Dim Jour As Date
    Dim NumJour As Integer
    Dim DernierJourSemaine As Date
    Dim dateSemaine as Date
    Dim NbJour As Integer
    Dim nbpremier As Integer
     
    dateSemaine = Date
     
        'Correspond au 1 er janvier de l'année de la date donnée
        Jour = DateSerial(Year(dateSemaine), 1, 1)
     
        'Correspond au jour dans la semaine (1 = lundi, 2 = mardi, 3 = mercredi, 4 = jeudi, etc ...)
        NumJour = JourSemaine(Jour)
     
        'Correspond au dernier jour de la semaine du 1er janvier
        DernierJourSemaine = DateSerial(Year(dateSemaine), 1, 8 - NumJour)
     
        'Si le 1er janvier est après le vendredi, la semaine du 1 er janvier n'est pas comptabilisée dans la nouvelle année
        If NumJour > 5 Then
            NumeroSemaine = 0
        Else
        'sinon elle l'est
            NumeroSemaine = 1
        End If
     
        'Différence entre la date et le jour de la fin de semaine du 1er janvier
        NbJour = dateSemaine - DernierJourSemaine
     
        'Ensuite, on calcule le numéro de la semaine
        'Si le calcul tombe juste, on met le résultat
        If NbJour Mod 7 = 0 Then
            NumeroSemaine = (NbJour / 7) + NumeroSemaine
        Else
        'Sinon, on, rajoute un car il y a une semaine en cours
            NumeroSemaine = NumeroSemaine + Int(NbJour / 7) + 1
        End If
     
        'Si le numéro est égal à 53, on vérifie où se trouve le 1er janvier
        If NumeroSemaine = 53 Then
            nbpremier = JourSemaine(DateSerial(Year(dateSemaine) + 1, 1, 1))
     
            'Si le 1er tombe avant le vendredi, le numéro de la semaine est le numéro 1
            If nbpremier < 5 Then
                NumeroSemaine = 1
            End If
            'sinon, le numéro est le 53
        End If
     
        'Le numéro de la semaine peut être egale à 0 (01/01/2005)
        'car il ne detécte pasla semaine 53
        'On cherche alors le numéro de la semaine du 31/12 de l'année d'avant
        If NumeroSemaine = 0 Then
            'Sauf si le 01/01 est le lundi
            If nbpremier = 1 Then
                NumeroSemaine = 1
            Else
                NumeroSemaine = NumeroSemaine(DateSerial(Year(dateSemaine) - 1, 12, 31))
            End If
        End If
     
    '___________________________________________
    Nbauto = "???"
    Userform1.Textbox1.value = Year(Now) & " " & NumeroSemaine & " " & Nbauto
     
    End Sub

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Par défaut
    merci pour ton aide je vais essayer tout de suite ce code

    le n° auto me sert de n° de référence pour la compta

Discussions similaires

  1. Réponses: 30
    Dernier message: 17/11/2012, 16h42
  2. [Excel VBA] Boucler sur un userform
    Par tpv72 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/09/2005, 01h57
  3. Numéro automatique avec PostgreSql
    Par BRAUKRIS dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/09/2005, 22h55
  4. pb de numéro automatique
    Par Little-Freud dans le forum Access
    Réponses: 1
    Dernier message: 26/10/2004, 22h28
  5. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo