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 :

Pb Validation 2 TextBox [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut Pb Validation 2 TextBox
    Bonjour,

    Je viens de créer un UserForm suite à un tuto mais çà bug.

    En effet, j'ai créer 2 TextBox + 1 Bouton de commande.
    A chaque fois que je saisi un nom et un prenom, je clique sur le bouton de commande qui va aller inscrire sur la ligne vierge suivante le nom en colonne A grace au TAG 1 et le prenom en colonne B grace au TAG 2 (propriete du bouton de commande).

    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
    Private Sub CommandButton1_Click()
     
    Dim ctrl As Control
    Dim r As Integer
    Dim t As Integer
    Dim derligne As Integer
     
    With Worksheet("Feuil1")
    derligne = .Range("65536").End(xlUp).Row + 1
    For Each ctrl In UserForm1.Controls
    r = Val(ctrl.Tag)
    If r > 0 Then Feuil1 , Cells(derligne, r) = ctrl
    Next
    End With
    TextBox = ""
    End
    End Sub
    Mais çà bug sur le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If r > 0 Then Feuil1 , Cells(derligne, r) = ctrl
    sur Ctrl.

    Merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If r > 0 Then ActiveWorkbook.Worksheets("Feuil1").Cells(derligne, r) = ctrl

  3. #3
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Bonjour,

    Je viens de modifier mon code comme tu me l'as dis mais maintenant çà bug ligne 8 du code sur WORKSHEET :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Worksheet("Feuil1")
    Cordialement

    Nota : J'ai pris le tuto dans cette discussion :
    http://www.developpez.net/forums/d13...tion-userform/

    dans la reponse de EXCEL MAN (video youtube)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    un petit s à With Worksheet("Feuil1")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Worksheets("Feuil1")
    Si tu te places sur l’instruction et que tu fais [CTRL] + [espace] la solution arrive d’elle-même !

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    peut etre parce que tu boucle sur tout les controls et tous n'ont pas le tag d'instruit voir meme le meme type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each ctrl In UserForm1.Controls
    r = Val(ctrl.Tag)
    If r > 0 Then Feuil1 , Cells(derligne, r) = ctrl
    Next
    l'orsque tu arrive sur le bouton dans la boucle tu a forcement une erreur

    essaie pluto ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each ctrl In UserForm1.Controls
    if typename(ctrl)="TextBox"and ctrl.tag>0 then 
    sheets("Feuil1") . Cells(derligne,ctrl.tag) = ctrl
    Next
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    peut etre parce que tu boucle sur tout les controls et tous n'ont pas le tag d'instruit voir meme le meme type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each ctrl In UserForm1.Controls
    r = Val(ctrl.Tag)
    If r > 0 Then Feuil1 , Cells(derligne, r) = ctrl
    Next
    l'orsque tu arrive sur le bouton dans la boucle tu a forcement une erreur

    essaie pluto ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each ctrl In UserForm1.Controls
    if typename(ctrl)="TextBox"and ctrl.tag>0 then 
    sheets("Feuil1") . Cells(derligne,ctrl.tag) = ctrl
    Next
    au plaisir
    çà bug ici, la ligne reste rouge :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets("Feuil1") . Cells(derligne,ctrl.tag) = ctrl
    Citation Envoyé par rdurupt Voir le message
    Bonjour,
    un petit s à With Worksheet("Feuil1")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Worksheets("Feuil1")
    Si tu te places sur l’instruction et que tu fais [CTRL] + [espace] la solution arrive d’elle-même !
    Meme avec le S en + çà n'y fait rien

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ce code fonctionne chez moi ! (Office 2010 widiows7 64 bits), attention au panachage de version XP sevent !
    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
    Private Sub CommandButton1_Click()
    Dim ctrl As Control
    Dim r As Integer
    Dim t As Integer
    Dim derligne As Integer
     
    With Worksheets("Feuil1")
    derligne = .Range("A65536").End(xlUp).Row + 1
    For Each ctrl In UserForm1.Controls
    r = Val(ctrl.Tag)
    If r > 0 Then Worksheets("Feuil1").Cells(derligne, r) = ctrl
    Next
    End With
    TextBox = ""
    End
    End Sub

  8. #8
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Slt,

    J'utilise Excel 2003 avec Vista, tu crois que celà viens de là ?
    Pourtant le code utilisé n'est pas sorcier.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Possible seulement si tu as développé ton code sur une autre machine.
    Pour acquis de conscience regarde ce lien

    http://www.developpez.net/forums/d13...l/#post7158281

  10. #10
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Non j'ai pris le tuto dans une autre discussion http://www.developpez.net/forums/d13...tion-userform/ ensuite j'ai ouvert Excel 2003 et j'ai essayé.

    Citation Envoyé par patricktoulon Voir le message
    peut etre parce que tu boucle sur tout les controls et tous n'ont pas le tag d'instruit voir meme le meme type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each ctrl In UserForm1.Controls
    r = Val(ctrl.Tag)
    If r > 0 Then Feuil1 , Cells(derligne, r) = ctrl
    Next
    l'orsque tu arrive sur le bouton dans la boucle tu a forcement une erreur

    essaie pluto ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each ctrl In UserForm1.Controls
    if typename(ctrl)="TextBox"and ctrl.tag>0 then 
    sheets("Feuil1") . Cells(derligne,ctrl.tag) = ctrl
    Next
    au plaisir
    Rebjr,

    Le fait d'avoir renommé mes textbox en par exemple :
    TextBox1 en NOM_PRENOM
    a t'il un effet par rapport au code que j'ai recopié ?

  11. #11
    Invité
    Invité(e)
    Par défaut
    Joints ton classeur on verra sur pièce.

    Apriori, la seule erreur que j’imagine, c’est qu’il n’existe pas d’onglet Feuil1 dans ton classeur.
    Vérifies ça et remplace Feuil1 par son vrai nom
    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
    Private Sub CommandButton1_Click()
    Dim ctrl As Control
    Dim r As Integer
    Dim t As Integer
    Dim derligne As Integer
     
    With Worksheets("VraiNom")
    derligne = .Range("A65536").End(xlUp).Row + 1
    For Each ctrl In UserForm1.Controls
    r = Val(ctrl.Tag)
    If r > 0 Then Worksheets("VraiNom").Cells(derligne, r) = ctrl
    Next
    End With
    TextBox = ""
    End
    End Sub
    Dernière modification par AlainTech ; 01/04/2013 à 08h15. Motif: Fusion de 2 messages

  12. #12
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    voici en pj mon fichier modifié quelque peu pour des raisons de confidentialité mais aucun chgt au niveau de mes colonnes

  13. #13
    Invité
    Invité(e)
    Par défaut
    J’ai fait des petites modifications sur des point de bug mais pas sur With Worksheets("Feuil1") ?!@҉҉
    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
    Private Sub CmdValider_Click()
    Dim ctrl As Control
    Dim r As Integer
    Dim t As Integer
    Dim derligne As Integer
     
    With Worksheets("Feuil1")
    derligne = .Range("A65536").End(xlUp).Row + 1
    For Each ctrl In FrmAjout.Controls
    If TypeName(ctrl) = "TextBox" And Val(ctrl.Tag) > 0 Then
    Sheets("Feuil1").Cells(derligne, Val(ctrl.Tag)) = ctrl
    End If
    Next
    End With
    TextBox = ""
    End
    End Sub

  14. #14
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Merci çà fonctionne.
    Sinon quel code pour Annuler le formulaire ?
    Je ne trouve pas

    Concernant le formulaire Modif :
    Dois je mettre le meme code que celui de Ajout ?
    J'ai créé une listbox avec la liste des personnels. lorsque je clique sur un des nom, les renseignements qui se trouve dans la feuille 1 doivent aller dans les bons textbox. Et ensuite je modifie le textbox par exemple GRADES et lorsque je valide le nouveau GRADE se met a jour dans feuil1.

    Sinon comment imposer dans un TEXTBOX que les NOM_Prénom s'ecrivent :
    NOM en MAJUSCULE et Prénom : 1ere lettre en MAJUSCULE et reste en minuscule ?
    Comment imposer que les dates soient jj/mm/aaaa ?
    En fait que tout ce qui est saisi dans le formulaire soit au meme format que celle des cellules de la feuil1 ?

    Je sais que j'en demande beaucoup mais je suis au début du commencement en VBA

    Cordialement

  15. #15
    Membre expérimenté
    Homme Profil pro
    Technicien Méthodes
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Méthodes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Par défaut
    Bonjour,

    A adapté en fonction de tes variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        MonNom = UCase(Nom)
        MonPrenom = UCase(Left(Prenom, 1)) & LCase(Right(Prenom, Len(Prenom) - 1))
        MaDate = Format(LaDate, "dd/mm/yyyy")

  16. #16
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Merci pour la reponse mais je met çà où ?
    Dans mon code du formulaire ?
    Sinon comment grace a ce code que les dates (car j'en ai plusieurs dans mon formulaire) iront s'inscrirent correctement dans Feuil1 et comment concaténer ton code avec nom prenom car dans mon formulaire on saisi le nom suivi du prenom dans le meme textbox et j'ai des noms et prenoms composés séparés par des tirets . Ce qui sépare le nom du prenom restera toujours un espace .

    Cordialement.

  17. #17
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CmdAnnuler_Click()
     
    'code non trouvé a ce jour afin annuler la saisie et fermer le formulaire
    End
    End Sub

  18. #18
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    Merci c'etait tout C (bete)

    Sinon pour le formulaire Modif je fais comment ?

    J'ai oublié un détail lorsque je clique dans le formulaire sur la croix face à chauffeur, il faudrait que le mot "CHAUFFEUR" aille s'inscrire sur la colonne 16 (P) "Roles".


  19. #19
    Invité
    Invité(e)
    Par défaut FrmModif
    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
    Private Sub CmdAnnuler_Click()
    End
    End Sub
     
    Private Sub CmdValider_Click()
     
     ActiveWorkbook.Worksheets("Feuil1").Cells(Me.Tag, 9) = Me.TextBox17
    ActiveWorkbook.Worksheets("Feuil1").Cells(Me.Tag, 4) = Me.TextBox7
    ActiveWorkbook.Worksheets("Feuil1").Cells(Me.Tag, 8) = Me.TextBox8
    ActiveWorkbook.Worksheets("Feuil1").Cells(Me.Tag, 5) = Me.TextBox11
    ActiveWorkbook.Worksheets("Feuil1").Cells(Me.Tag, 17) = Me.TextBox10
    Me.TextBox9 = ActiveWorkbook.Worksheets("Feuil1").Cells(Me.Tag, 13) = Me.TextBox9
    ActiveWorkbook.Worksheets("Feuil1").Cells(Me.Tag, 16) = ""
    If Me.CheckBox1.Value = True Then ActiveWorkbook.Worksheets("Feuil1").Cells(Me.Tag, 16) = "Chauffeurs"
    ActiveWorkbook.Worksheets("Feuil1").Cells(Me.Tag, 15) = Me.TextBox14
     ActiveWorkbook.Worksheets("Feuil1").Cells(Me.Tag, 7) = Me.TextBox16
     End
    End Sub
     
    Private Sub ListBox1_Noms_Change()
    RenseignerChamps
    End Sub
     
     
    Private Sub UserForm_Initialize()
    Me.ListBox1_Noms.ListIndex = 0
    End Sub
     
    Sub RenseignerChamps()
    Dim MyRange As Range
    Dim L As Long
    Set MyRange = ActiveWorkbook.Worksheets("Feuil1").Range("A:A")
    L = MyRange.Find(Me.ListBox1_Noms).Row
    Me.Tag = L
    Me.TextBox17 = ActiveWorkbook.Worksheets("Feuil1").Cells(L, 9)
    Me.TextBox7 = ActiveWorkbook.Worksheets("Feuil1").Cells(L, 4)
    Me.TextBox8 = ActiveWorkbook.Worksheets("Feuil1").Cells(L, 8)
    Me.TextBox11 = ActiveWorkbook.Worksheets("Feuil1").Cells(L, 5)
    Me.TextBox10 = ActiveWorkbook.Worksheets("Feuil1").Cells(L, 17)
    Me.TextBox9 = ActiveWorkbook.Worksheets("Feuil1").Cells(L, 13)
    If ActiveWorkbook.Worksheets("Feuil1").Cells(L, 16) = "Chauffeurs" Then Me.CheckBox1.Value = True
    Me.TextBox14 = ActiveWorkbook.Worksheets("Feuil1").Cells(L, 15)
    Me.TextBox16 = ActiveWorkbook.Worksheets("Feuil1").Cells(L, 7)
     
    End Sub

  20. #20
    Membre éprouvé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 222
    Par défaut
    MERCI à toi pour le tps que tu me consacres à me dépatouiller.

    Mais y'a 2 petits bug :

    Le 1er : quand je met une croix dans chauffeur dans le formulaire Ajout , le mot chauffeur ne s'inscrit pas en feuil1.

    Le 2ème : dans le formulaire Modif : dans le textbox du GRADE vient s'inscrire le N° APPEL


+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Attribute 'class' not valid for textbox
    Par olibara dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/01/2010, 16h07
  2. Réponses: 2
    Dernier message: 30/11/2009, 18h28
  3. Valider une textbox avec la touche entrée
    Par Chacha35 dans le forum C#
    Réponses: 11
    Dernier message: 04/09/2009, 14h48
  4. validator checkbox textbox
    Par bilouz93 dans le forum ASP.NET
    Réponses: 10
    Dernier message: 06/05/2008, 14h26
  5. [c#] valider une textbox
    Par tomtom41 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/04/2005, 20h30

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