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 :

Question basique sur l'étendue masquée d'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é Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Par défaut Question basique sur l'étendue masquée d'une boucle
    Bonjour
    pratiquement tout est dit, j'ai un trou de mémoire.
    Si je boucle sur n lignes, ma formule va t elle prendre en compte les lignes masquées par le filtre au moment du lancement du code ?
    Si oui, pas de souci pour définir les limites de dernière ligne
    Si non, je dois d'abord paramétrer le rang de la dernière ligne et la définir comme fin de boucle.

    suis je clair ?
    Ex: 100 lignes, colonnes A, etc..

    Je boucle sur tout: for i=1 to 100, formule

    je boucle sur les lignes affichées:
    DL=Range("A" & Rows.Count).End(xlUp).Row
    => Dl tient il compte uniquement des lignes affichées ou toutes ?
    For i = 1 to DL

    Le but, c'est d'appliquer mon code uniquement sur les lignes non masquées

    Meci de votre lumière !

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Bien entendu que c'est possible d'insérer des formules uniquement sur les cellules des lignes visibles.
    As-tu seulement essayé ?
    Peux-tu nous montrer le code déjà réalisé ?
    Petite remarque il est inutile de faire une boucle pour insérer des formules sur une plage de cellules comme expliqué dans ce billet Ecrire une formule dans Excel à l'aide d'une procédure VBA
    Il suffit de définir la plage en question en utilisant la méthode SpecialCells avec comme argument xlCellTypeVisible et ensuite écrire la formule sur cette plage (une ligne de code pour l'écriture)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Polygos Voir le message
    Si je boucle sur n lignes, ma formule va t elle prendre en compte les lignes masquées par le filtre au moment du lancement du code ?
    Ca n'a aucun rapport avec la boucle elle-même.

    Ca dépend de la façon dont tu détermine ton nombre de lignes.
    Ca dépend aussi de ta façon d'assigner les lignes dans la boucle. Par exemple, si tu utilises Cells avec le numéro de ligne, tu pourras assigner les lignes masquées. Par contre, si tu change de ligne avec un Offset, les lignes masquées seront sautées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DL=Range("A" & Rows.Count).End(xlUp).Row
    => Dl tient il compte uniquement des lignes affichées ou toutes ?
    Pourquoi ne pas, tout simplement, faire un essai ? Ca t'aurait pris moins de temps que de déposer la question sur le forum.

    A mon avis, cette DL va contenir le numéro de la dernière ligne visible sans tenir compte des lignes masquées au delà de la dernière visible.

    Je te conseille plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DL = ActiveSheet.UsedRange.Rows.Count

Discussions similaires

  1. Question basique sur un while
    Par chrislav dans le forum Langage
    Réponses: 3
    Dernier message: 01/02/2009, 19h24
  2. question basique sur la validation d'un fichier xml
    Par waliddib dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 12/01/2009, 20h01
  3. [Joomla!] Quelques questions basiques sur Joomla
    Par Siguillaume dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 26/08/2008, 10h02
  4. [tres nouveau] question basique sur DOTNET
    Par ratoso dans le forum Débuter
    Réponses: 2
    Dernier message: 30/05/2008, 11h39
  5. Question basique sur les tableaux
    Par valanagrid dans le forum C++
    Réponses: 8
    Dernier message: 08/11/2006, 15h47

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