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

Macros et VBA Excel Discussion :

Attribuer une reference automatiquement


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Par défaut Attribuer une reference automatiquement
    Bonjour,

    J'ai un USF qui me permet d'alimenter un tableau. Je souhaiterais qu'à chaque utilisation une reference automatique soit attribuée dans une TextBox mais avec un format spécifique.

    Format souhaité : DISaa/mm/xxxx

    DIS : debut de la référence
    aa : année
    mm : mois
    xxxx : n° croissant

    Merci pour aide

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Il faut passer par une cellule de ta feuille pour stocker cette référence sinon tu ne vas pas pouvoir la mémoriser pour la prochaine utilisation.

    Je verrais bien par exemple l'utilisation de la cellule IV1

    A l'initialisation du UserForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.TextBox36 = "REF" & Format(Now, "yy/mm") & "/" & Format([IV1], "0000")
    REF peut être la valeur d'une cellule, les 3 premières lettres de la valeur d'une cellule, etc...

    Lors de la validation des données, ajouter dans le code

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Par défaut
    Bonjour fring et merci,

    J'ai bien reussi à intégrer la première partie du code dans l'initialisation du USF

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.TextBox6 = "DIS" & Format(Now, "yy/mm") & "/" & Format([Feuil3!L2], "0000")
    Toutefois dans la partie validation je n'arrive pas à ajouter le code que tu m'as communiqué

    Merci de ton aide

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Donc la cellule L2 de la Feuil3 aura comme valeur de départ 1

    Lorsque tu valides les données de ton UserForm, via un bouton j'imagine, en fin de code tu ajoutes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub BoutonValidation_Click()
    'ton code de validation de tes données
    '...
    '...
    '...
    Unload Me
    Sheets("Feuil3").Range("L2") = Sheets("Feuil3").Range("L2") + 1
    End Sub
    A la prochaine initialisation de ton UserForm, tu auras DIS08/04/0002 et ainsi de suite.

    Si tu laisses ton UserForm actif entre plusieurs validations de données, ajoute en plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub BoutonValidation_Click()
    'ton code de validation de tes données
    '...
    '...
    '...
    Sheets("Feuil3").Range("L2") = Sheets("Feuil3").Range("L2") + 1
    Me.TextBox6 = "DIS" & Format(Now, "yy/mm") & "/" & Format(Sheets("Feuil3").Range("L2"), "0000")
    End Sub

  5. #5
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Par défaut
    Désolé mais j'ai un message "Incompatibilité Objet 13 "

    Je fournis l'ensemble de mon code , peut-être que cela sera plus clair

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    Option Explicit
    Private WS1 As Worksheet
    Private WS2 As Worksheet
    Const G As String = "MISE A JOUR"
    Private Sub ComboBox1_Change()
    Dim lig As Integer
    If ComboBox1.ListIndex < 0 Then Exit Sub
    lig = ComboBox1.ListIndex + 2
    TextBox1.Value = WS1.Cells(lig, 2).Value
     
    End Sub
     
    Private Sub UserForm_Initialize()
    Dim Lf_données As Long
    Dim DerLg, i
    Set WS1 = ThisWorkbook.Worksheets("Feuil3")
    Set WS2 = ThisWorkbook.Worksheets("Feuil2")
    Lf_données = WS1.Range("A65536").End(xlUp).Row
     
    DerLg = WS1.Range("A2200").End(xlToLeft).Row
    With WS1
     
        For i = 2 To DerLg
            ComboBox1.AddItem .Cells(i, 1)
     
                Next i
    End With
    ComboBox1.Value = ""
    Me.Caption = G
    ComboBox4.Visible = False
    Label5.Visible = False
     
    End Sub
    Private Sub valider_Click()
    Application.ScreenUpdating = False
    'Déclaration de variable 'L' pour connaitre le numéro de la Ligne
    Dim L As Integer
    'ici je repère la dernière ligne vide pour coller les données
    L = Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1
    'Ici c'est le report de la saisie dans la feuille
    L = ComboBox1.ListIndex + 2
    With Sheets("Feuil2")
    .Cells(L, 1).Value = Me.TextBox6.Value
    .Cells(L, 2).Value = Me.TextBox1.Value
    .Cells(L, 3).Value = Me.ComboBox2.Value
    .Cells(L, 4).Value = Me.ComboBox3.Value
    .Cells(L, 5).Value = Me.ComboBox4.Value
    .Cells(L, 6).Value = Me.ComboBox5.Value
    .Cells(L, 7).Value = Me.TextBox2.Value
    .Cells(L, 8).Value = Me.TextBox3.Value
    .Cells(L, 9).Value = Me.ComboBox6.Value
    .Cells(L, 15).Value = Me.ComboBox7.Value
    .Cells(L, 16).Value = Me.TextBox4.Value
    .Cells(L, 17).Value = Me.ComboBox8.Value
    .Cells(L, 18).Value = Me.TextBox5.Value
    .Cells(L, 10).Value = DTPicker1.Value
    .Cells(L, 13).Value = DTPicker3.Value
    End With
     
     
     
    Application.ScreenUpdating = True
    End Sub
    Private Sub ComboBox3_Change()
    If ComboBox3.Value = "SOR" Then MsgBox " Merci d'indiquer le nom de la campagne concernée "
    If ComboBox3.Value = "SOR" Then ComboBox4.Visible = True
    If ComboBox3.Value = "SOR" Then Label5.Visible = True
    If ComboBox3.Value <> "SOR" Then Label5.Visible = False
    If ComboBox3.Value <> "SOR" Then ComboBox4.Visible = False
    End Sub
    Private Sub CommandButton1_Click() 'Valider
    Dim DerLigne As Integer, i As Byte
     
     
    DerLigne = Range("Feuil2!A20000").End(xlUp).Row
    Sheets("Feuil2").Cells(DerLigne + 1, 1) = DerLigne
     
    TextBox6.Value = DerLigne
     
    End Sub

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Quelle ligne provoque le message d'erreur ?

  7. #7
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 13
    Par défaut
    bonjour Fring,

    merci pour ton aide , j'ai reussi à regler mon probleme qui etait lié à une double declaration de "L"


    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 12/06/2014, 11h00
  2. [XL-2007] Activer une reference automatiquement
    Par Yolak dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/11/2009, 13h31
  3. [AC-2007] Attribuer une valeur automatique en fonction d'un autre champ
    Par spaukensen dans le forum Modélisation
    Réponses: 2
    Dernier message: 17/10/2009, 14h03
  4. Attribuer une lettre automatiquement
    Par Renardo dans le forum IHM
    Réponses: 4
    Dernier message: 14/10/2008, 18h13
  5. attribuer une couleur automatiquement a une cellule
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/04/2007, 17h55

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