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 :

Appel de fonction, portée des variables [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2011
    Messages : 34
    Points : 28
    Points
    28
    Par défaut Appel de fonction, portée des variables
    Bonjour le forum,

    Comment puis je faire en sorte qu'un macro ne prenne pas en compte les lignes cachées, par exemple (simple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each cell In range
        If cells (i, 1) = "Oui" then
                cell.Offset(1, 0).Value = "Oui"
            End If
        Else
    End If
    Next
    si cell (i, 1) = "Oui" et que la ligne (i + 1) est cachée j'aimerai que "Oui" ne soit pas affiché en (i + 1, 1) mais en (i + 2, 1)

    J'espère ne pas m'être trop mal exprimer et qu'il existe une solution.

    Merci d'avance

  2. #2
    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,
    teste la propriété hidden de ta feuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If cells (i, 1) = "Oui"   Then 
             if  cells (i, 1).EntireRow.Hidden   then
               'Cachée
              else
                'Pas cachée
               endif

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2011
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    Bon du coup j'ai changer d'idée, j'ai rentré une fonction qui compte le nombre de ligne cachées.

    Seulement, c'est la première fois que j'ai a faire appel à une fonction et je galère. voici le passage concerné:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Cells(i, 3).Value = "Oui" Or Cells(i + 1, 3).Value = "Oui" Then
                Cells(i, ColTiree).Value = "OT#": Call CLC(i + 2)
                Cells(i + 2 + NbCachées, ColTiree).Value = "OT#": Call CLC(i + 4)
                Cells(i + 4 + NbCachées, ColTiree).Value = "OT#"
        End If
    Et la fonction appelée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function CLC(ByVal k As Variant) 'compte les lignes caché entre k et la prochaine ligne visible
     
    Dim NbCachées As Integer
     
    NbCachées = 0
     
    While Rows(k).Hidden = True
        NbCachées = NbCachées + 1
    k = k + 1
    Wend
     
    End Function
    Le problème est je pense la façon dont j'ai déclarer "NbCachées" car la fonction me compte bien les lignes correctement, mais NbCachées est vidée dès end function.

    Comment prolonger la durée de vie de NbCachées jusqu'au prochain appel de la fonction ?

  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
    Je comprends pas trop ce que tu veux faire ...

    mais bon lit cela : http://bbil.developpez.com/tutoriel/...ariables#LXIII

    au sujet de la 'portée' des variables pour ton NbCachées (évite les accents dans les noms de variables et fonctions ...)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2011
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    C'est bon il fallait juste déclarer NbCachees comme public Tout en haut avant le premier sub

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

Discussions similaires

  1. $(this), fonction et porté des variables
    Par comode dans le forum jQuery
    Réponses: 1
    Dernier message: 03/07/2014, 08h41
  2. Coloration en fonction de la portée des variables
    Par Kaamo dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 20/11/2013, 15h53
  3. Portée des variables: Include dans une fonction
    Par BlindeKinder dans le forum Langage
    Réponses: 9
    Dernier message: 08/02/2011, 18h45
  4. Réponses: 4
    Dernier message: 22/02/2010, 01h13
  5. Portée des variables et des fonctions
    Par Haze. dans le forum Général Python
    Réponses: 5
    Dernier message: 23/06/2007, 10h10

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