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 :

Initialisation plusieurs textbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Par défaut Initialisation plusieurs textbox
    Bonjour a tous,
    J'ai une feuille excel sur laquelle j'ai énormément de textbox.
    Mes soucis sont :

    -les initialiser toutes a 0, et de leur laisser prendre uniquement des valeurs numérique entière et positive.

    Cependant j'ai 3 types de textbox.
    Une contenant des heures , l'autres des minutes et pour finir la derniere de simple entiers.
    Je ne penses pas que les types des textbox gènes dans leur initialisation merci de me contredire si j'ai tord svp.

    Afin de les initialiser j'ai esssayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim t as texbox
     
    For each t in activesheet
    t.text= 0
    next t
    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    dim Obj as OLEObject
     
    For each Obj in Activesheet.OLEObjects
    Obj.Object.text=0
    next Obj
    Evidement si je post c'est que cela ne marche pas pourtant j'ai initialiser plusieurs combobox ayant toutes la mm valeur ainsi (grace a votre aide sur le fofo d'ailleurs)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim Obj as OLEObject 
    Dim tableau as variant (benh oui c une combo ya pas qu'une valeur)
     
    tableau= array("MC","LC")       (j'initialise le tableau)
     
    For each Obj in Activesheet.OLEObjects 
        If typeOf Obj.Object is MSForms.Combobox then 
               Obj.Object.List= tableau
               Obj.Object.listIndex=0
       End If
    next obj
    Je pensais donc mettre l'initialisation Textbox dans la boucle précedente en utilisant un else if. Mais faudrait déja que l'initialisation des texbox marche correctement. Ensuite je pourrais lui dire d'accepter que des valeur entieres positive.

    Merci de m'avoir lu et merci d'avance aux personnes qui repondront.

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    ce bout de code renvoie les noms des textboxs d'une feuille
    A toi d'adapter a ton besoin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim obj As Object
     
    For Each obj In Me.OLEObjects
     If Left(obj.progID, 13) = "Forms.TextBox" Then
        MsgBox obj.Name
    End If
     
    Next

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Par défaut
    Left(obj.progID, 13) = "Forms.TextBox"

    pourrais tu expliciter?

    en particulier Left(obj.progID, 13) je ne comprend pas sa signification

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Avec typeof

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    For Each obj In Me.OLEObjects
     If TypeOf obj.Object Is msforms.TextBox Then
        MsgBox obj.Name
    End If

  5. #5
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    ProgID renvoie le type au format texte
    progID : "Forms.TextBox.1"
    Dans l'exemple je récupère la 13 permiers caractères

    Tu pourrais remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each obj In Me.OLEObjects
     If obj.progID = "Forms.TextBox.1" Then
        MsgBox obj.Name
    End If
    J'avais pas vu que le 1 ne s'incrèmentait pas

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour,

    essaye ceci

    testé avec un textbox


    dans l objet 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
    18
    19
    20
     
    Private Sub TextBox1_LostFocus()
    Dim t
    t = TextBox1
    If Not IsNumeric(t) Or Val(t) < 0 Then
    TextBox1 = "0"
    End If
    End Sub
     
    Private Sub Worksheet_Activate()
    Dim Obj As OLEObject
     
     
    For Each Obj In ActiveSheet.OLEObjects
        If TypeOf Obj.Object Is MSForms.TextBox Then
               Obj.Object.Text = "0"
       End If
    Next Obj
     
    End Sub

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 21
    Par défaut
    Rien ne marche... ça doit quand mm pas etre si dur que ça d'initialiser des textbox!!! Et normalement cela devrait marcher pour les textbox si ça marche avec la combo. Je comprend pas pourquoi il ne prend pas cette boucle


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For Each Obj In ActiveSheet.OLEObjects
        If TypeOf Obj.Object Is MSForms.TextBox Then
               Obj.Object.Text = "0"
       End If
    Next Obj
    (jme suis bien mis sur la feuille1)

    Par contre quand je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private sub commande1.click 
     
    For Each Obj In ActiveSheet.OLEObjects
        If TypeOf Obj.Object Is MSForms.TextBox Then
               Obj.Object.Text = "0"
       End If
    Next Obj
     
    end sub
    la ça marche correctement...

Discussions similaires

  1. Valeur de plusieurs textbox
    Par smartbis dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/08/2007, 12h50
  2. Plusieurs TextBox lié à plusieurs objet
    Par ecor6633 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 06/07/2007, 16h16
  3. somme de plusieurs textbox (debutant)
    Par josémaria dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/03/2007, 13h25
  4. Plusieurs textbox sur la même ligne
    Par kahya dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 15/02/2007, 14h19
  5. [C++.NET]RAZ de plusieurs textbox
    Par lowrider dans le forum MFC
    Réponses: 11
    Dernier message: 06/05/2006, 07h41

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