COMMENT UTILISE UserForm_Initialize

Bonsoir Monsieurs et Mes Dames!

J'ai un problème

J'ai un Userform

Et j'ai une base de donnée (BD_SKOX)

a la suite j'aimerais affiché des information avenir dans ma TxtCode...

lorsque je rample (Feuill1) par (BD_SKOX) j'ai des erreur comme 424 ou 13.... incompatible

Private Sub TxtCode_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If InStr("C19c19-1234567890", Chr(KeyAscii)) = 0 Then KeyAscii = 0

End Sub

Private Sub TxtCode_Change()

TxtCode.Text = UCase(TxtCode.Text)

End Sub

Private Sub UserForm_Initialize()

Dim iLastRow As Long

Dim sStr As String

iLastRow = 2

esp = Mid(Feuil1.Range("A" & iLastRow), 5)

sStr = CStr(CLng(esp) + 1)

Do

sStr = "0" & sStr

Loop Until Len(sStr) = 6

Me.TextBox1 = "ADI-" & sStr

OptionButton2 = True

OptionButton4 = True

End Sub

Veuillez recevoir, Madames, Monsieurs, l'assurance de ma considération distinguée.

Bonjour,

Tout d'abords, deux suggestions, quand tu postes du code, utilises les balises de Code (le bouton </>, tu colles le code entre les balises), pour éviter aux intervenants de devoir concevoir un fichier qui pourrait éventuellement ressembler au tien afin d'effectuer des tests et pour plus de compréhension de ta demande, je te conseille de poster ton fichier amaigri et anonymisé. Ceci dit, en ce qui concerne le TextBox, la procédure événementielle "TxtCode_KeyPress()" suffit, la mise en majuscule se fait dans le "Select Case", évites autant que possible de faire des modifications dans la procédure Change() car ça fait yoyo. Pour la procédure événementielle Initialize(), je n'ai pus que deviner ce que tu souhaites faire puisque absence d'un fichier :

Private Sub UserForm_Initialize()

    Dim sStr As String
    Dim Esp

    Esp = Mid(Feuil1.Range("A2").Value, 5)

    'si pas numérique, message et fin de procédure
    If Not IsNumeric(Esp) Then MsgBox "La valeur de '" & Esp & "' n'est pas numérique !": Exit Sub

    'incrémente
    sStr = CStr(CLng(Esp) + 1)

    'complète par des 0 jusqu'à 6 caractères
    sStr = sStr & String(6 - Len(sStr), "0")

    Me.TextBox1 = "ADI-" & sStr

    OptionButton2 = True
    OptionButton4 = True

End Sub

Private Sub TxtCode_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    Select Case KeyAscii

        'seulement : chiffres, C, c et tiret. Le c minuscule est passé en majuscule
        Case 45, 48 To 57, 67, 99: If KeyAscii = 99 Then KeyAscii = 67

        Case Else: KeyAscii = 0

    End Select

End Sub

infiniment merci voici mon FICHE

12formulaire.xlsm (51.82 Ko)
Rechercher des sujets similaires à "comment utilise userform initialize"