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 si un TextBox existe sur la feuille Excel [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 56
    Points
    56
    Par défaut Tester si un TextBox existe sur la feuille Excel
    Bonjour à tous !

    Je travaille sur l'extraction de données de fiches d'identité d'objet sous EXCEL. Les différentes fiches sont pratiquement identiques et l'extraction de données se passe bien.

    Mon problème est que je dois récupérer les infos sur la position GPS de l'objet et que cette information n'est pas insérée de la même manière dans les fiches :

    - Soit la position GPS est écrite directement dans la cellule
    - Soit elle est insérées dans des TextBox (TextBox insérées via la boite à outil de contrôle)

    J'aimerais savoir qu'elle est la condition qui permet de savoir si un TextBox existe dans mon fichier ouvert !

    Merci d'avance pour vos réponses ! Et bonne fin de journée !

  2. #2
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Bonjour,
    un exemple qui parcours chaque feuille du classeur et vérifie les contrôles présent si le contrôle est un textbox alors ....
    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
     
    Sub test()
    Dim ws As Object, obj As OLEObject
    'pour chaque feuille du classeur
    For Each ws In Worksheets
    i = ws.OLEObjects.Count ' compte le nbre de contrôles
     
      If i <> 0 Then 'si il y a un contrôle
     
           'Si textbox control active x de formulaire
           'boucle sur chaque objet de la feuille
         For Each obj In ws.OLEObjects
     
           'si l'objet est un Textbox alors
           If TypeOf obj.Object Is MSForms.TextBox Then
     
         ' Met ici le code que tu souhaites faire    
     
          End If
        Next obj
     End If
    Next ws
    End Sub
    ATTENTION ce code fonctionne pour les Contrôles ActiveX

    EDIT:
    Salut Godzestla, dsl,

  3. #3
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    tu peux liste la liste des tes objets Ole comme ci-dessous

    (Le code suppose que ton textbox est sur la feuille 3, extrait de l'aide en Ligne )

    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
    Sub check_ole()
    Sub testb()
    Dim newsheet As Worksheet
     
    Set newsheet = Sheets(3)
    i = 2
    newsheet.Range("A1").Value = "Name"
    newsheet.Range("B1").Value = "Link Type"
    For Each obj In newsheet.OLEObjects
        newsheet.Cells(i, 1).Value = obj.Name
        If obj.OLEType = xlOLELink Then
            newsheet.Cells(i, 2) = "Linked"
        Else
            newsheet.Cells(i, 2) = "Embedded"
        End If
        i = i + 1
    Next
     
    End Sub
    ----------Edit

    gasp. Coiffé par RvToulon. Salut Rvtoulon.

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 56
    Points
    56
    Par défaut
    Merci à vous 2 pour vos réponses !

    En fait j'aimerais savoir si un TextBox précis est présent, par exemple TextBox7.
    Et non pas savoir si il y a des textbox dans le classeur.

  5. #5
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    ben c'est presque pareil,

    tu testes la propriété .name de l'object qui doit être égale à ce que tu cherches.

    Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for each obj in sheets(machin).oleobjects
    if obj.name = "TextBox7" then
      debug.print "Yesssssssss"
    endif
    next

  6. #6
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Ou bien dans le code que je t'ai donné,tu rajoutes un "AND" en remplaçant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
           If TypeOf obj.Object Is MSForms.TextBox Then
     
         ' Met ici le code que tu souhaites faire    
     
          End If
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      If TypeOf obj.Object Is MSForms.TextBox And obj.Name = "TextBox7" Then
      'Ton code Ici
      End If
    tu vérifie que l'objet est un textbox et qu'il se nomme "Textbox7".

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 149
    Points : 56
    Points
    56
    Par défaut
    Merci beaucoup pour votre aide !!

    Je vais un peu abuser mais une dernière petite question pour la route : Comment récupère-t-on la valeur d'un TextBox ?

    J'ai trouvé cela mais ça ne fonctionne pas : TextBox1.Value

    C'est bon j'ai trouvé !! Il fallait préciser la feuille !
    Sheets("Feuil1").TextBox1.Value

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/01/2015, 18h25
  2. Tester si un fichier existe sur serveur
    Par audrey_ dans le forum VBScript
    Réponses: 6
    Dernier message: 10/04/2008, 09h29
  3. Tester l'existence d'une feuille Excel
    Par RodEpsi dans le forum Delphi
    Réponses: 3
    Dernier message: 01/08/2006, 15h27
  4. Tester si un id existe sur la page.
    Par Death83 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/07/2006, 22h51
  5. tester l'existence d'une feuille excel
    Par Equus dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/12/2005, 11h31

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