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 :

Conseils pour une boucle


Sujet :

Macros et VBA Excel

Vue hybride

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 174
    Par défaut Conseils pour une boucle
    bonjour,

    je souhaite afficher un message d'erreur si toutes les cases ne sont pas remplies. Mais j'ai un problème au niveau de ma boucle, je n'arrive pas à la faire tourner jusqu'à "point+1". voici mon code:

    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
    Private Sub CommandButton6_Click()
    Dim point As Integer
    Dim i As Integer
    Dim x As Integer
     
    point = Range("C5").Value
    x = 11
     
    Dim cel As Range, z As String
     
    For i = 1 To point + 1
    For Each cel In Cells(x, 2)
    x = x + 1
        If cel.Value = "" Then z = z & Chr(10) & cel.Address
    Next
    Next i
    If z <> "" Then
        MsgBox "Veuillez compléter les cellules suivantes :" & Chr(10) & z
        Exit Sub
    End If
     
    End Sub
    merci

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    ta boucle ne tourne pas jusqu'a point +1 mais point +1 fois, et ce n'est pas pareil
    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
     
    Sub test()
    Dim point As Integer
    Dim i As Integer
    Dim x As Integer
     
    point = Range("C5").Value
    x = 11
    Dim cel As Range, z As String
    For i = 1 To point + 1
    For Each cel In Cells(x, 2)
    x = x + 1
    If cel.Value = "" Then z = z & Chr(10) & cel.Address
    Next cel
    Next i
    If z <> "" Then
        MsgBox "Veuillez compléter les cellules suivantes :" & Chr(10) & z
        Exit Sub
    End If
    End Sub
    dans le sens point +1 fois, elle fonctionne.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Alsimbad :

    ta boucle ne tourne pas jusqu'a point +1 mais point +1 fois, et ce n'est pas pareil
    Je suis peut-être un peu fatigué (déjà !) ce soir, mais je n'ai pas bien compris.

    J'ai cru comprendre que la boucle ne se terminait pas et dans ce cas est-ce qu'il n'y aurait pas un dépassement de capacité pour la MsgBox (combien de cellules vides trouvées ?) car j'ai essayé également et le code fonctionne bien.

    Mais j'ai peut-être encore mal compris.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 174
    Par défaut
    Bonjour,

    Alsimbad :

    je ne comprends pas ou etait l'erreur

  5. #5
    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
    Par défaut
    Bonsoir,

    Je n'ai pas testé ton code, jbggg

    Je te demande seulement de faire l'effort de tenter de le commenter (pour chacune des lignes), ne serait-ce que pour te forcer à analyser chacune de tes instructions.
    Commence déjà par t'interroger sur le sens d'une boucle For i to ... next dans laquelle tu n'utilises pas i !
    Mais ce n'est pas tout...

    Commente et tu verras toi-même !!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Et oui, c'est vrai, on est 2 à dire que ça fonctionne, mais on n'a pas testé en en pas-à-pas, ni jusqu'au bout.

    Grave erreur.

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    non, j'ai testé, elle fonctionne, mais bien sur je ne l'ai testé qu'avec des petits chiffres
    Citation Envoyé par jbgg
    j'ai un problème au niveau de ma boucle, je n'arrive pas à la faire tourner jusqu'à "point+1".
    c'est une petite nuance, et en l'occurence, ça ne change rien mais ce n'est pas pareil.dans ce code, la boucle est effectué point+1 fois, a partir de 11 (valeur de x) et non pas de 1 a point+1 . ceci dit, je n'agraverais pas mon cas par une défense maladroite mais
    Citation Envoyé par ucfoutu
    Commence déjà par t'interroger sur le sens d'une boucle For i to ... next dans laquelle tu n'utilises pas i !
    et i est utilisé pour faire ...n fois la boucle

    sinon au code d'origine, j'ai seulement présisé Next cel

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/05/2010, 16h17
  2. [Systeme d'Information] Quels conseils pour une refonte ?
    Par jejefeds dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 07/12/2005, 18h23
  3. Conseils pour une reconversion dans l'informatique
    Par Laurentq1970 dans le forum Etudes
    Réponses: 11
    Dernier message: 02/06/2005, 22h16
  4. Besoin d'un conseil pour une sélection Access/fichier
    Par Oluha dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/03/2005, 19h10
  5. [Debutant(e)]conseil pour une liste ?
    Par Tymk dans le forum Débuter
    Réponses: 5
    Dernier message: 05/08/2004, 14h33

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