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 :

problème avec les boucles vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 10
    Points
    10
    Par défaut problème avec les boucles vba
    salut tt lmnde

    J'ai un petit probleme que je n'arrive pas a resoudre je vous demande svp de l'aide et merci.

    Comment faire une boucle qui n'autorise qu'un seul enregistrement c a dire, si le nom saisi dans la textbox1 se trouve déja dans la liste alors affiche un message exple "ce nom existe;saisissez un autre" j'ain essayé ça mais je n'ai pas réussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim x As Integer
         'Boucle de 1 à 100
        For x = 1 To 100
            'On sort de la boucle si la cellule testée contient la meme Valeur       que textbox1
     
            If  (Cells(x, 1)) .value=textbox1.value
            Then Exit For
            affiche un message
            msgbox" Ce nom existe, veuillez saisir un autre"
    et vider textbox1 
            textbox1.value=""
        Next x
    2/ question: Comment vider touts les textbox dans un USF sauf une (affiche la date)
    Merci pour votre

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour,

    Et si tu utilisais un copier/coller de ton code (afin de ne pas arriver à celui que tu nous montres et ne peut en aucun cas ne pas déclencher des erreurs) ?

    Par ailleurs : te viendrait-il, par exemple, à l'idée d'éteindre ton téléviseur pour regarder une émission ? Non, n'est-ce-pas ?
    Alors comment veux-tu, dans une boucle, afficher un message alors que tu as quitté (exit for) la boucle ?

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    Réponse à tes deux questions..
    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
    Sub N2()
    Dim Lig As Long
        For Lig = 1 To 100
            'le Ucase pour tester aussi bien les minuscules que les majuscules
            If UCase(Cells(Lig, 1)) = UCase(TextBox1.Text) Then
                MsgBox " Ce nom existe, veuillez saisir un autre"
                TextBox1 = "" : TextBox1.Setfocus
                Exit For
            End If
        Next Lig
    End Sub
    'Et pour vider tout les TextBox sauf 1...
    Sub VideTxt()
    Dim Cont As Control
        For Each Cont In Me.Controls
            If TypeOf Cont Is MSForms.TextBox Then
                If Cont.Name <> "Le nom à ne pas vider" Then
                    Cont.Object.Text = ""
                End If
            End If
        Next
    End Sub
    A+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Points : 10
    Points
    10
    Par défaut probleme avec une boucle vba
    Bonjour et Merci à Monsieur LeForestier

    Le premier problème a été bien résolu mais le second , lorsque j'appuie sur le bouton annuler toutes les textbox se vide meme celle qui contient la date du jour.Dans le code j'ai remplacé :

    If Cont.Name <> "Le nom à ne pas vider" Then par

    If Cont.Name <> "Textbox28" Then, la textbox28 c'est la textbox qui contient la date mais ça ne marche pas

    Merci LeForestier

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    lorsque j'appuie sur le bouton annuler toutes les textbox se vide meme celle qui contient la date du jour.Dans le code j'ai remplacé :

    If Cont.Name <> "Le nom à ne pas vider" Then par

    If Cont.Name <> "Textbox28"
    C'est que tu a une erreur dans le nom que tu a mis, vérifie qu'il n'y a pas un espace quelque part dans le nom, le plus simple c'est de faire un copier coller du nom.
    mais assaye aussi avec...
    If Cont.Name <> "TextBox28" (B majuscule)
    A+

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

Discussions similaires

  1. [XL-2010] Problème avec les fonctions VBA String
    Par JOHN14 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/02/2011, 22h07
  2. Problème avec les boucles VBA
    Par luge29 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/06/2010, 15h32
  3. [XL-2003] problème avec les macros vba
    Par jess59 dans le forum Excel
    Réponses: 6
    Dernier message: 27/05/2009, 13h28
  4. problème avec les boucle infinies
    Par manciaux dans le forum C
    Réponses: 3
    Dernier message: 14/05/2007, 12h16
  5. [Tableaux] Problème avec les boucles
    Par speed_man002 dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 15h42

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