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 :

Implémentation d'une Range


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Par défaut Implémentation d'une Range
    Bonjour a tous,

    Je voudrais utiliser la fonction PercentRank.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            With Sheets("CrossSectional")
                nbcol = .Cells(1, Columns.Count).End(xlToLeft).Column
                    For j = 2 To nbcol
                        Select Case .Cells(8, j)
                            Case Is = ""
                                 plage = Range(.Cells(7, 2), .Cells(7, nbcol)).Select
                                .Cells(8, j) = .Cells(7, j) + (1 - WorksheetFunction.PercentRank(plage, .Cells(8, j))) * (WorksheetFunction.Max(plage) - WorksheetFunction.Min(plage))
                                Case Else
                        End Select
                    Next j
            End With
    J'esssaye de stocker ma Range de Valeur dans la variable Plage.

    Lorsque j'essaye de recuperer mon PercentRank il me renvoie le message d'erreur suivant :

    Object variable or with block variable not set.
    Je ne connais pas la methode pour stocker une Range dans une variable.

    Des idées ?

  2. #2
    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
    D'abord, on déclare (ce qui devrait être fait pour toutes les variables) :
    Ensuite, pour affecter la référence d'un objet à une variable, on utilise l'instruction Set.
    Il manque un "." devant le Range si tu veux que VBA considère le contenu (les Cells) appartient à la même feuille que le contenant (le Range).
    Et le Select ne sert à rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                                 Set plage = .Range("B7", .Cells(7, nbcol))
    Le "Case Else" aussi est inutile.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/04/2006, 00h22
  2. Implémentation d'une jointure "rien=tout"
    Par lafeuil dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/03/2006, 17h26
  3. Implémentation d'une liste chaînée
    Par Yux dans le forum C
    Réponses: 22
    Dernier message: 02/03/2006, 21h31
  4. Réponses: 5
    Dernier message: 23/02/2006, 01h34
  5. Réponses: 12
    Dernier message: 01/07/2004, 12h03

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