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 :

Introduire une variable dans une variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Par défaut Introduire une variable dans une variable
    Bonjour à tous et toutes,

    Ma question peut paraitre bizare, mais je vous explique:

    Je souhaiterais qu'une constante (par exemple a) soit rattachée à une variable (1 ou 2 ou 3...) et ceci égal à une plage de données variables:

    Je vous joins ci dessous la partie de mon programme que je n'arrive pas à programmer, ce sera plus facile à comprendre:


    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Sub extract_OTC()
     
     
    For j = Worksheets.Count To 1 Step -1
     
     
    With ActiveSheet
     
    If Cells(1, 1) = "OTC Derivatives Report - Equity Swap" Then
     
     
     
     "col"&j& = Cells(15, 100).End(xlToLeft).Column
     
    'C'est ici que ca ne marche pas, je voudrais en fait que le résultat 
    ' de ""Cells(15, 100).End(xlToLeft).Column"" soit col10 par exemple
    'et donc à la fin je supprime cet sheet et je voudrais que donc mon compteur
    'soit de 9 et donc que les données obtenues soient col9...
     
     
    "ligne"&j& = Cells(150, 1).End(xlUp).Row
     
    "plagededonnees"& j& = Range(Cells(15, 1), Cells(("ligne" & j&), "col" & j&))
     
    .Delete
    end if
    end with
     
    next j
     
     
    end sub
    Merci d'avance pour vos réponses!


    Benjamin

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Ce que tu veux faire n'est pas faisable (du moins à ma connaissance)
    Ce que tu peux faire c'est utiliser une variable tableau que tu déclarera en Public dans un module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Col(10) as integer
    et utilisera comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Col(j) = Cells(15, 100).End(xlToLeft).Column

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Par défaut
    Bonjour, et merci jfontaine pour ta réponse!

    J'ai essayé donc j'ai créé un nouveau module avec mes declarations publiques:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Col(10) As Integer
    Public Col(9) As Integer
    Public Col(8) As Integer
    Public Col(7) As Integer
    Public Col(6) As Integer
    Public Col(5) As Integer
    ............
    et donc dans mon module modifié les "col"&j& par col(j)

    cependant il me met toujours un message d'erreur:
    Ambiguous name detected : col

    Que faire?? :s

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    La déclaration de la variable comme stipulé plus haut fait qu'elle à déja 1 dimension de 11 "cases" (une variable tableau étant par défaut de base 0 et commence à 0)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim col(10) As Integer
     
    Col(0) = 10
    Col(1) = 20
    ...
    On ne peut pas avoir 2 variables avec le même nom

    A noter que si tu veux que 10 cases de 1 à 10 tu peux soit déclarer comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim col(1 To 10) As Integer
    Soit spécifier que le tableau est de base 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Base 1
    Dim col(10) As Integer

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Par défaut
    Alors deja un grand merci car tout le debut est bon, il ne me reste plus qu'une ligne à comprendre et c'est le paradis^^

    L'erreur que m'indique VBA est object required (error 424)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    plagededonnees(j) = Range(Cells(1, 2), Cells(ligne(j), col(j))).Value

    j'ai bien dimensionné plagededonnees(1 to 15) as range
    les lignes et col as integer

    Voila, si jfontaine ou quelqu'un d'autre me trouve la solution je serais le pllus heureux des programmeurs en herbe

    Bonne aprem!!

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Si tu souhaite mettre dans une variable une plage de donnée, alors fais comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim MaPlage as Range
    Set MaPlage = Range(Cells(1, 2), Cells(ligne(j), col(j)))
    A noter q'une variable tableau ne peut recevoir q'une valeur ou objet dans chaque index. Dans ton exemple tu essais de mettre x valeur la ou n'y a de la place que pour une

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Par défaut
    Le truc c'est que je souhaiterais donner à Maplage le meme numéro qu'aux ligne et colonnes
    donc Maplage (j), mais avec cet exemple, ce n'est pas possible si? :s

    Merci de ton aide!!

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

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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