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 :

Boucle For Each avec Offset variable suivant Application.thiscell.column


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien d'étude
    Inscrit en
    Juin 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'étude

    Informations forums :
    Inscription : Juin 2015
    Messages : 87
    Points : 61
    Points
    61
    Par défaut Boucle For Each avec Offset variable suivant Application.thiscell.column
    Bonjour tout le monde

    Dans Feuille excel, j'ai crée une fonction pour compter les cellules qui correspondent en fonction des croix en face des cellules à prendre en compte.Je voudrais faire varier la ligne Et.Offset(0, 3) en Et.Offset(0, i) ou i = le numéro de la colonne ou la formule est inscrite.

    Comment puis je faire cela ? il me retourne une erreur.
    En vous remerciant pour votre aide

    Test.xlsm

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    ce que appréciée dans ton tableau c'est qu'il est compréhensible au premier regard!

    Function AEP(Etage As Range, Logement As Range)
    Test 1 4
    2 2
    3 3
    Test TOTAL 6 9
    Test1 2 2
    1 1
    2 2
    Test1 TOTAL 3 3
    Test2 3 3
    Test2 TOTAL 3 3
    Test x x
    Test1 x
    Test2 x x
    TOTAL #VALEUR! #VALEUR!


    Cheval 1 4
    2 2
    3 3
    Cheval TOTAL 6 9
    Cheval1 2 2
    1 1
    2 2
    Chevalt1 TOTAL 3 3
    Cheval2 3 3
    Cheval2 TOTAL 3 3
    Cheval x x
    Cheval1 x
    Cheval2 x x
    TOTAL #VALEUR! #VALEUR!

  3. #3
    Membre du Club
    Homme Profil pro
    Technicien d'étude
    Inscrit en
    Juin 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'étude

    Informations forums :
    Inscription : Juin 2015
    Messages : 87
    Points : 61
    Points
    61
    Par défaut
    Test.xlsm

    J'espère que cela sera plus clair en fait dans mon tableau précedent Dim i et J mettais un peu le bazar autant pour moi, j'ai essayer d’éclaircir le tableau.

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 110
    Points : 9 919
    Points
    9 919
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    une solution un peu radicale mais te permettant d'étirer ta formule :

    la fonction possède un nouvel argument : ColCherche

    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
    Function AEP(Etage As Range, Logement As Range, ColCherche As Long)
    Application.Volatile
    Dim Lgt As Range
    Dim Et As Range
    Dim EF As Single
    Dim i As Integer
     
    For Each Lgt In Logement
        For Each Et In Etage
            If Et = Lgt And Lgt.Offset(0, 1) = "TOTAL" And Et.Offset(0, ColCherche - 1) = "x" Then
                EF = EF + Lgt.Offset(0, 3)
            End If
        Next Et
    Next Lgt
     
    AEP = EF
    End Function

    Formule en D19 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =aep($A$15:$A$17;$A$3:$A$12;COLONNE(D1))
    En étirant ta formule en E19, COLONNE(D1) va devenir COLONNE(E1), ce qui permet de générer le décalage de ton Et.Offset(0, ColCherche - 1) = "x"

  5. #5
    Membre du Club
    Homme Profil pro
    Technicien d'étude
    Inscrit en
    Juin 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'étude

    Informations forums :
    Inscription : Juin 2015
    Messages : 87
    Points : 61
    Points
    61
    Par défaut
    Du coup pour la solution pas forcement besoin de rajouter un argument :

    Col = application.thiscell.column marche très bien avec Et.offset(0, col -1).

    Merci pour votre aide

  6. #6
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 110
    Points : 9 919
    Points
    9 919
    Billets dans le blog
    5
    Par défaut
    Très bonne adaptation

    je n'utilise pas (à tort) la propriété ThisCell ... voici un excellent contre exemple de ma mauvaise habitude

  7. #7
    Membre du Club
    Homme Profil pro
    Technicien d'étude
    Inscrit en
    Juin 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien d'étude

    Informations forums :
    Inscription : Juin 2015
    Messages : 87
    Points : 61
    Points
    61
    Par défaut
    On a tous ses défauts Merci dans tous les cas, je bloquais depuis un moment sur cette formule, les deux choses que j'avais oublié, c'est le -1 dans offset et c'est le as Long, j'ai encore beaucoup de chose à apprendre, merci encore

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

Discussions similaires

  1. Boucle For Next avec 2 variables
    Par neninio31 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 20/07/2019, 19h46
  2. [XSLT] For-each avec variable multidimensionelle
    Par pourloineus dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 05/08/2009, 10h04
  3. For-each avec une variable en php
    Par Aurel06 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 03/08/2009, 12h52
  4. [XSL] For each avec variables imbriquées
    Par Wells dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/05/2008, 19h28
  5. Réponses: 2
    Dernier message: 07/05/2007, 16h46

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