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 :

pb avec boucle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 192
    Par défaut pb avec boucle
    Bonjour tout le monde,

    Voilà je vous explique ma doléance. Dans mon code j'ai la boucle suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each c In ActiveCell.CurrentRegion.Cells
        If c.Value = "" Then c.Value = "nc"
    Next
    Mon code tourne sur à peu près 80 fichiers. Le problème c'est que sur certains fichiers la boucle continue, alors qu'on n'est plus dans la "currentregion", autrement dit elle dépasse la dernière ligne de mon tableau. A noter, que les cellules dans les colonnes A, B, C contiennent un menu déroulant. Pourquoi? Comment peut-on contourner cette erreur?

    Cordialement,

    sash

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par sash6
    For Each c In ActiveCell.CurrentRegion.Cells
    If c.Value = "" Then c.Value = "nc"
    Next
    A vrai dire, je ne vois pas comment ta boucle peut fonctionner
    Essaie plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each c In ActiveCell.CurrentRegion
        If c.Value = "" Then c.Value = "nc"
    Next
    Et n'utilise pas Activecell mais Cells(NoLigne, NoColonne) ou Range(la cellule) sinon tu vas au devant de surprises

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 192
    Par défaut
    Merci Ouskel, mais ça me génère la même errerur au même endroit...
    activecell c'était pratique car le prog trouvait jusque là tout seul la taille du tableau (en l'occurrence la dernière ligne). Je vais essayer les pistes que tu m'as données

  4. #4
    Expert confirmé

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Par défaut
    Ton code ne pose, a priori, pas de souci, puisqu'il fonctionne.

    Pour comprendre ton véritable souci (continuation au-dela du tableau) il faut comprendre à quoi sert CurrentRegion

    CurrentRegion, c'est léquivalent de CTRL+* (ou encore Edition/Atteindre/Cellule/Zone en cours)

    un petit coup de F1 sur currentregion apportera un mieux.

    une currentregion est une plage délimitée pour des lignes et colonnes vides.
    si ta plage est plus grande que ton tableau, c'est qu'il y a des choses à côté. forcément !

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 192
    Par défaut
    effectivement, il devait y avoir quelque chose, bien que les lignes en question étaient vides! En les supprimant, maintenant le ctrl+* fonctionne correctement. C'est bizarre, mais j'ai pas mal de fichiers comme ça, c'est des reportings et les mecs qui les envoient doivent les traffiquer sans vraiment le vouloir...Enfin bref, ça marche maintenant! Merci beaucoup pour vos aiguillages!

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 192
    Par défaut
    merci pour le post Ouskel! C'est marrant, parce que le but de cette boucle c'était justement de remplir les cellules vides dans mes tableaux pour que je puisse les traiter dans des bonnes conditions. En tout cas ça me permettra de prendre des précautions: certains tab arrivent avec des lignes ou des colonnes masquées...

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour supprimer les lignes vides par macro, regarde
    Mais un tri les réunit au même endroit, suffit ensuite que tu sélectionnes la première cellule renseignée.

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Un peu de lecture ici pour avoir la plage de données réelle. Currentregion, c'est bien mais tu ne dois avoir ni ligne ni colonne entièrement vide dans ta plage de données. Ensuite, la cellule choisie doit se trouver impérativement dans ta plage de données. Ton "ActiveCell" doit être remplacée par une adresse de cellule se trouvant dans la plage.
    A toutes fins utiles

Discussions similaires

  1. [VBA][Débutante] Fonction Excel avec Boucle
    Par Inelukia dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 11/01/2006, 19h31
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. [Debutant/WinAPI] Souci avec boucle While et GetMessage()
    Par SnowStyle dans le forum Windows
    Réponses: 11
    Dernier message: 15/10/2005, 19h19
  4. pb requete avec boucle
    Par kidu dans le forum Requêtes
    Réponses: 1
    Dernier message: 31/08/2005, 14h27
  5. Réponses: 10
    Dernier message: 05/04/2005, 10h25

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