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 :

tester le nom d'un userform [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 144
    Par défaut tester le nom d'un userform
    Bonjour,

    Celà fait un moment que je tournes sur différentes solution mais rien ne fonctionne

    J'ai une sub qui remplit plusieurs label ou textbox dans différents formulaires
    je l'appelle à l'ouverture pour remplir les champs selon ce code, ma dernière solution :
    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
    Sub chargdonntech(nom As UserForm, osr As Long)
     
        Dim teste As Variant
     
        teste = nom.Name
     
        For a = 3 To 1500
            If Sheets("donntech").Range("a" & a).Value = "" Then Exit For
            If Sheets("donntech").Range("a" & a).Value = osr Then
               nom.pdlinf.Caption = Sheets("donntech").Range("p" & a).Value
                If teste = "formdevis" Or teste = "formprencharg" Then
                    nom.depinf.Value = Sheets("donntech").Range("n" & a).Value
                    nom.mailinf.Value = Sheets("donntech").Range("o" & a).Value
                Else
                    nom.depinf.Caption = Sheets("donntech").Range("n" & a).Value
                    nom.mailinf.Caption = Sheets("donntech").Range("o" & a).Value
                End If
                Exit For
            End If
        Next a
    end sub
    Lorsque je l'appelle je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chargdonntech userform1,p
    Mon problème dans ma sub réside dans la condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If teste = "formdevis" Or teste = "formprencharg" Then
    qui ne veut pas fonctionner.
    Sur 2 formulaires j'ai mes controles qui ne sont pas des label mais des textbox.
    Je souhaite les remplir mais il me faut dans ces 2 cas appelé la propriété value au lieu de caption.
    J'ai des messages d'erreur différent selon mes test.
    J'ai d'abord essayé de tester avec le nom directement sans succès
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If nom.name = formdevis Or nom.name = formprencharg Then
    j'ai essayé les guillemets sur les noms sans succès
    J'ai recherché sur internet une solution et à priori celle qui s'en approche le plus serait mon test en début de paragraphe.

    mais j'ai le message
    erreur d'éxécution 438 Propriété ou méthode non gérée par cet objet
    .
    J'ai essayé ma variable au format variant et string sans succés.

    Où est mon erreur ?

    Merci pour votre aide,

  2. #2
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

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

    Je relance cette discussion car je n'ai toujours pas trouvé la solution !!!

    Avez vous une idée?
    J'ai rien trouvé sur les ancien échanges me permettant d'avancer.

    Merci

  3. #3
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 144
    Par défaut
    J'ai trouvé la solution.

    voici le code pour quelqu'un qui cherchera :
    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
    Sub chargdonntech(nom As UserForm, osr As Long)
     
        For a = 3 To 1500
            If Sheets("donntech").Range("a" & a).Value = "" Then Exit For
            If Sheets("donntech").Range("a" & a).Value = osr Then
               nom.pdlinf.Caption = Sheets("donntech").Range("p" & a).Value
                If TypeName(nom) = "formdevis" Or TypeName(nom) = "formprencharg" Then
                    nom.depinf.Value = Sheets("donntech").Range("n" & a).Value
                    nom.mailinf.Value = Sheets("donntech").Range("o" & a).Value
                Else
                    nom.depinf.Caption = Sheets("donntech").Range("n" & a).Value
                    nom.mailinf.Caption = Sheets("donntech").Range("o" & a).Value
                End If
                Exit For
            End If
        Next a
    End Sub

  4. #4
    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 re
    re
    je pige pas tres bien l'utilisation de typename ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Typename(nom) = "formdevis" Or TypeName(nom) = "formprencharg" Then
    si nom est un object userform alors ceci devrait suffire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If nom.name = "formdevis" Or nom.name = "formprencharg" Then
    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

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

Discussions similaires

  1. Nom de l'userform actif en VBA
    Par Beginner37 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 22/02/2019, 12h15
  2. [XPATH] Tester le nom d'une balise
    Par jubourbon dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/06/2010, 17h03
  3. [XL-2003] passage du nom d'un userform appelant à un userform appelé
    Par Sécateur dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/05/2010, 11h55
  4. XSL: Tester le nom d'un fichier
    Par xsmokingbenx dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 07/07/2009, 11h54
  5. nom d'un UserForm fonction d'une valeur case
    Par fantii dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/01/2008, 18h35

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