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 :

pour que for each ne s'arrête pas qd cond non respectée


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2013
    Messages : 111
    Points : 50
    Points
    50
    Par défaut pour que for each ne s'arrête pas qd cond non respectée
    Bonjour,

    J'aimerais faire tourner le code suivant sur une plage entière de cellules.
    Le problème est que la condition s'arrête dès qu'elle n'est pas respectée or j'aimerais la faire tourner sur toute la plage car sinon il s'arrête sur la cellule du bas et ne se poursuit pas sur les autres colonnes...
    Je ne sais pas si c'est très clair mais voici le code (je ne sais pas pourquoi le code est barré désolé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub MettreAJourAgenda()
        Dim MyRange As Range
        Dim Cell As Range
        Set MyRange = ActiveSheet.Range("K11:P14")
     
        For Each Cell In MyRange
            If Cell.End(xlToLeft).Value = "103" Then
                Cell.Value = "thib"
            End If
        Next Cell
    End Sub
    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Qu'est-ce qui te fait croire qu'elle s'arrête ?
    MPi²

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2013
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    Car "thib" ne s'écrit que dans la première cellule.

    En réalité, dans ma première colonne, j'ai par ex en vertical 103, 104, 105, etc et ma plage commence dans la deuxième colonne à côté de 103.
    Thib ne s'écrit que dans la première cellule alors que si le FOR EACH fonctionnait, il devrait y avoir une ligne remplie de thib.

    Suis-je clair?

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonsoir,

    tu peu préciser ? elle as quel numéro ta première colonne ? 11 ?

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2013
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    c'est ca oui m plage est "K11:P14"

    en fait, je viens de l'essayer dans une autre plage et cela fonctionne.

    Est-il possible que des cellules fusionnées puissent poser problème et arrêter le code car "cellule vide" ?

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Tu dois avoir une mauvaise idée de ce à quoi correspond le code suivant :


    pour comprendre place toi sur une cellule actionne la touche FIN puis la flèche vers la gauche ... et alors le curseur ce retrouve sur la cellule dont tu teste la valeur.... as toi de tester en te plaçant sur les diverses cellules de ta plage ...

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    En faisant des tests, s'il n'y a rien d'écrit dans les colonnes L à P, seule la colonne L est remplie de "thib"
    S'il y a des valeurs dans toutes les cellules, elles se remplissent toutes.
    Tu peux faire le test en effaçant certaines données pour voir le résultat.
    MPi²

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2013
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    En réalité, le code cell.end(xltoleft) me donne bien ce que je souhaite mais visiblement, le fait que certaines cellules soient fusionnées bloque mon code. Je viens de tester cela et il s'arrête sur la cellule fusionnée..

    Merci beaucoup, je vais tenter autre chose.

    Bonne soirée

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

Discussions similaires

  1. [XL-2007] Comment faire pour que 2010-01-01 ne soit pas converti en date
    Par pierrot10 dans le forum Excel
    Réponses: 4
    Dernier message: 09/04/2010, 14h46
  2. comment faire pour que mon parseur XML n'échappe pas les carctères tels que ">" par exemple ?
    Par _LittleFlea_ dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 16/10/2009, 16h25
  3. Réponses: 2
    Dernier message: 22/04/2009, 20h47
  4. un For Each qui ne fonctionne pas avec une collection maison !
    Par grenouillesiverte dans le forum Windows Forms
    Réponses: 7
    Dernier message: 01/09/2007, 21h00
  5. Quel est l'index qui sert pour les For Each ?
    Par Nixar dans le forum VB.NET
    Réponses: 5
    Dernier message: 04/06/2007, 08h23

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