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 :

CurrentRegion dans une fonction ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Par défaut CurrentRegion dans une fonction ?
    Bonjour à tous,


    Débutant en VBA, je cherche à créer une formule que je rentre dans une cellule du style : =maformule(A1)

    Et cette formule ferai la somme du premier groupe de case adjacentes pleines qui se trouve au dessus d'elle dans sa colonne.

    J'ai pensé à CurrentRegion, j'ai essayé dans un premier temps de compter le nombre de lignes d'un groupe de cellules pleines avec une macro de ce type lancée par CTRL+G:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Macro2()
     
    ' Touche de raccourci du clavier: Ctrl+g
     
        MsgBox Range("A2").CurrentRegion.Rows.Count
     
    End Sub
    Ca marche sans pb mais après quand j'ai voulue faire une fonction comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function nbrlignes(Cellule As Range) As Integer
     
     
        nbrlignes =  Cellule.CurrentRegion.Rows.Count
     
     
    End Function

    Et bien ca marche plus..

    Pour testé j'ai essayé aussi de mettre dans ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Range("A2").CurrentRegion.Rows.Count
    Mais c pareil même çà ca me donne pas le même résultat que le code qui marche.


    Cà doit être stupide comme question car même en fouillant sur google je trouve pas de réponse, mais comment faut-il faire? .

    Merci de votre aide

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    ce qui en marche pas, c'est quoi exactement?

    la réponse est érronnée ou un message d'erreur apparait?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Par défaut
    Merci de votre réponse,

    Excusez moi je n'ai pas été très précis c'est vrai,

    Alors en fait ce qui ne marche pas c'est que au lieu de m'afficher le nombre de lignes que contient le tableau trouvé pas la fonction CurrentRegion en fonction de la cellule choisie, il m'affiche toujours la valeur 1.

    Et comme je suis pas le roi des explications au besoin voici un exemple :

    http://dl.free.fr/rGaqPAwkP

  4. #4
    Membre chevronné Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Par défaut
    Chez moi, ca fontionne :

    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
    Function nbrlignes(Cellule As Range) As Integer
     
     
        nbrlignes = Cellule.CurrentRegion.Rows.Count
     
     
    End Function
     
     
    Sub main()
     
        toto = nbrlignes(Range("A2"))
        MsgBox (toto)
     
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Par défaut
    J'ai copié collé ton code dans ma un module, effectivement la MsgBox affiche bien la bonne valeur mais lorsque dans une cellule j'écris :

    Et bien la valeur de la cellule n'est pas la même que la valeur de la MsgBox.

    Cherchez pas bien loin, ce doit être une erreur de débutant qui n'a pas bien compris le fonctionnement du VBA (Car c mon cas..)

    Merci de votre aide.

  6. #6
    Membre chevronné Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Par défaut
    J'ai regarder, effectivement
    On recupere bien la cellule mais il ne fait aucune action sur la feuille

    J'ai essayé de mettre

    Mais meme ca il le fait pas ....

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

Discussions similaires

  1. Recuperation de formulaire dans une fonction
    Par arsgunner dans le forum ASP
    Réponses: 5
    Dernier message: 23/06/2004, 15h04
  2. Transmission d'un objet crée dans une fonction
    Par EvilAngel dans le forum ASP
    Réponses: 2
    Dernier message: 10/05/2004, 20h19
  3. Utilisez MinimizeName() dans une fonction
    Par James_ dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/05/2004, 18h05
  4. [Postgresql]Connecter à une autre base dans une fonction
    Par alex2205 dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/05/2003, 11h30
  5. [Turbo Pascal] Allocation et désallocation de pointeurs dans une fonction
    Par neird dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 17/11/2002, 20h14

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