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 :

Textbox dans multipage


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    paysan developpeur debutant mais ... têtu
    Inscrit en
    Février 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : paysan developpeur debutant mais ... têtu

    Informations forums :
    Inscription : Février 2011
    Messages : 84
    Points : 50
    Points
    50
    Par défaut Textbox dans multipage
    Bonjour les forumeuzes et bonjour les forumeurs

    Le papy continue son apprentissage
    Voilà un nouveau pb por moiet évidemment j'ai cherché avant de venir demander ...
    sur un usf j'ai posé un multi page avec trois pages et 13 textbox dans chaque page.
    j'ai voulu rendre ces textboxes innaccessibles (locked) j'ai donc d'abord essayé les boucles (ca m'a permis de reviser !)
    suite à une succession de "propriété non gérée par l'objet"
    j'ai fini par essayer de mettre locked à vrai dans la fiche propriété d'une textbox de mon multipage et ô surprise c'est inopérant
    Quelqu'un pourrait m'expliquer pourquoi et comment faire pour pallier la situation.
    Depuis j'ai bricolé en mettant les pages du multi à enabled = faux .
    ca produit le meme résultat mais ca m'ennuie de pas comprendre, ils sont comme ca les vieux !!!

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    voir le code que tu avais tenté aurait permis de t'expliquer le problème

    voici donc, à défaut, un petit exemple

    j'ai crée un userform, placé un multipage et un CommandButton
    dans chaque page du multipage, j'ai mis des Textbox

    Voici quelques "actions" :

    - parcourir chaque page
    - "faire des choses" sur chaque textbox (afficher son nom, le Locker, vérifier si c'est Locked)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CommandButton1_Click()
    Dim MonTextBox As MSForms.TextBox
        With Me
            For Each MaPage In .MultiPage1.Pages
                'MsgBox MaPage.Name
     
                For Each MonTextBox In MaPage.Controls
                    'MsgBox MonTextBox.Name
                    'MonTextBox.Locked = True
                    'MsgBox MonTextBox.Locked
                Next MonTextBox
            Next MaPage
        End With
    End Sub

  3. #3
    Membre du Club
    Homme Profil pro
    paysan developpeur debutant mais ... têtu
    Inscrit en
    Février 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : paysan developpeur debutant mais ... têtu

    Informations forums :
    Inscription : Février 2011
    Messages : 84
    Points : 50
    Points
    50
    Par défaut
    Merci Joe de t'interesser à mon cas
    J'ai essayé et EVIDEMMENT ça marche (mais je n'en doutais pas) !!!
    Je joint mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim tb As MSForms.Control
     
    For Each tb In usf4.mp_dis.Pages()
    If TypeOf tb Is MSForms.textbox Then
    tb.Locked = True
    End If
    Next
    End Sub
    Bien sur j'ai vu des differences avec ton code Joe
    Mais ce que je ne comprends pas c'est que si je mets un point d'arret je vois bien la bouvcle se faire mais seulement 3 fois au lieu des 39 qui est le nbre de text box dans le multipage.
    Et a la sortie rien de locked.
    S'il vous plait un peu d'indulgence pour qqun qui voudrait mourir moins bête

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu as déclaré tb comme un "contrôle" et non pas un "contrôle.TextBox"

    donc tb est considéré comme un page de ton multipage car tu dis à VBA "pour chaque objet [Page] de mon multipage"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each tb In usf4.mp_dis.Pages()
    donc il ne boucle que trois fois, puisque tu n'as que trois pages

    regarde bien mon exemple, il y a deux boucles :

    1) Parcourir chaque page du multipage
    2) Parcourir chaque textbox de chacune des pages du multipage


    toi, tu as fusionné ces deux boucles, d'où le problème

  5. #5
    Membre du Club
    Homme Profil pro
    paysan developpeur debutant mais ... têtu
    Inscrit en
    Février 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : paysan developpeur debutant mais ... têtu

    Informations forums :
    Inscription : Février 2011
    Messages : 84
    Points : 50
    Points
    50
    Par défaut
    Hé voui j'avais bien vu cette subtile difference!
    Autre chose avant que je clique sur résolu :
    pourquoi n'as tu pas dimensionné MaPage ?

  6. #6
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Je ne l'ai pas dimensionné par ce que, tout simplement, j'ai oublié


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim MaPage As MSForms.Page

  7. #7
    Membre du Club
    Homme Profil pro
    paysan developpeur debutant mais ... têtu
    Inscrit en
    Février 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : paysan developpeur debutant mais ... têtu

    Informations forums :
    Inscription : Février 2011
    Messages : 84
    Points : 50
    Points
    50
    Par défaut
    mais alors si ca marche sans dimensionner MaPage ca marche auusi sans dimensionner les textbox ?
    Je t'ennuie peut etre mais je suis curieux de nature et j'ai deja remarqué que souvent le vba était intelligent à ma place !

  8. #8
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    bien entendu, c'est le danger/avantage des variables
    si tu ne type pas une variable, VBA la traite comme un "Variant", c'est à dire que ta variable peut être de n'importe quel type.
    Le type sera défini par VBA en fonction de l'utilisation que tu lui demandes de faire avec la variable

    Mais, quand on sait qu'une variable sera d'un type bien déterminé, c'est plus propre et sécurisant de la typer

    parfois, on a besoin de ne pas typer la variable, voici un exemple :

    on cherche une valeur dans un Array en utilisant la fonction Match (EQUIV() en français)
    Si la valeur n'existe pas, la fonction génère une erreur, sinon elle donne la position de l'élément
    Alors on utilise une variable "variant" pour assigner le résultat de la formule.
    Si la variable est de type "erreur" alors l'élément n'existe pas, sinon on peut dire où se trouve l'élément

    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
    Sub toto()
    Dim Tableau(), ValeurCherchee As String
    Dim Resultat
     
    Tableau = Array("A", "B", "C")
    ValeurCherchee = "C"
    Resultat = Application.Match(ValeurCherchee, Tableau, False)
     
        If IsError(Resultat) Then
            MsgBox ValeurCherchee & " n'existe pas dans le tableau [" & Join(Tableau, ";") & "]"
        Else
            MsgBox ValeurCherchee & " est à la position " & Resultat & " du tableau[" & Join(Tableau, ";") & "]"
        End If
     
    End Sub

    On utilise aussi ce stratagème quand on appelle une fonction personnalisée et qu'on peut obtenir plusieurs résultats différents
    Au retour de la fonction, on test le type qui nous est renvoyé.
    Par exemple, une fonction qui va rechercher des valeurs, et renvoie un String si une seule valeur, ou un tableau d'éléments si plusieurs valeurs ... voir un booléen "FALSE" s'il n'y a aucun résultat !

  9. #9
    Membre du Club
    Homme Profil pro
    paysan developpeur debutant mais ... têtu
    Inscrit en
    Février 2011
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : paysan developpeur debutant mais ... têtu

    Informations forums :
    Inscription : Février 2011
    Messages : 84
    Points : 50
    Points
    50
    Par défaut
    Hé bin voilà ! Maintenant je sais !!!!!
    Heureux que tu es croisé mon chemin Joe

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

Discussions similaires

  1. [AC-2003] Probléme textbox dans multipage
    Par maclolo2 dans le forum IHM
    Réponses: 7
    Dernier message: 29/07/2011, 17h25
  2. [XL-2003] TextBox dans contrôle multipage
    Par Domimart dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/06/2011, 16h26
  3. [XL-2003] Séléction de plusieurs textbox dans une multipage
    Par jackall dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/07/2009, 13h40
  4. [VB.net] TextBox dans Repeater
    Par TekP@f dans le forum ASP.NET
    Réponses: 2
    Dernier message: 06/05/2005, 13h38
  5. [C#] Probleme avec TextBox dans un DataGrid
    Par Oberown dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/12/2004, 16h05

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