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 :

Nommer une range dans une variable [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 226
    Par défaut Nommer une range dans une variable
    Bonjour à tous,

    Petite question j'aimerais nommer une range via ce code.

    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
     
     
    Dim DernLigne As Long, DernColonne As Integer
    Dim ws As Worksheet
    Dim maPlage As Range
     
    Set ws = Sheets("Dbase")
     
    'dernière ligne colonne A
    DernLigne = ws.Range("A" & Rows.Count).End(xlUp).Row
    'dernière colonne ligne 1
    DernColonne = ws.Cells(1, Cells.Columns.Count).End(xlToLeft).Column
     
    'activation de la feuille de donnée
    ws.Activate
    Set maPlage = Range(Cells(1, 1), Cells(DernLigne, DernColonne))
    'Ce que je souhaite faire mais j'ai le message d'erreur ci-dessous : Set maPlage = ws.Range(Cells(1, 1), Cells(DernLigne, DernColonne))
     
    maPlage.Name = "data_range"
     
    'activation de la page utilisateur
    Sheets("Dash").Activate
    Le message d'erreur en question.

    Nom : Capture_message_range.PNG
Affichages : 616
Taille : 14,1 Ko

    Pour éviter cela je fais un "activate" avant, mais j'aime pas trop faire des activates, alors si je peux m'en passer.

    Si vous avez des idées sur le sujet?

    Merci d'avance.

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonsoir
    je crois que ton problème vient de la dernière ligne
    désactive cette instruction et voir le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Dash").Activate

  3. #3
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 226
    Par défaut
    Hello,

    Merci pour ton aide.

    Je pense pas j'ai l'erreur sur cette ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set maPlage = Range(Cells(1, 1), Cells(DernLigne, DernColonne))
    En fait il refuse de mettre

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    essayer de remplacer par ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With ws
    Set maPlage = .Range(Cells(1, 1), .Cells(DernLigne, DernColonne))
    'Ce que je souhaite faire mais j'ai le message d'erreur ci-dessous : Set maPlage = ws.Range(Cells(1, 1), Cells(DernLigne, DernColonne))
     
    maPlage.Name = "data_range"
    End With

    remplacer ws.activate par : with ws
    n'oublier pas d'ajouter un point devant la range et un point devant cells

  5. #5
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 226
    Par défaut
    Re,

    Pas mieux avec le with, j'ai le même code erreur. Je comprends pas bien le probléme, ta solution me semble ok.


    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
     
    Dim DernLigne As Long, DernColonne As Integer
    Dim ws As Worksheet
    Dim maPlage As Range
     
    'ActiveWorkbook.Names("data_range").Delete
     
    Set ws = Sheets("Dbase")
     
    'dernière ligne colonne A
    DernLigne = ws.Range("A" & Rows.Count).End(xlUp).Row
    'dernière colonne ligne 1
    DernColonne = ws.Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    'activation de la feuille de donnée
    With ws
        Set maPlage = .Range(Cells(1, 1).Cells(DernLigne, DernColonne))
     
        'Ce que je souhaite faire mais j'ai le message d'erreur ci-dessous : Set maPlage = ws.Range(Cells(1, 1), Cells(DernLigne, DernColonne))
     
        maPlage.Name = "data_range"
    End With

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    te manque un virgule mon ami !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set maPlage = .Range(Cells(1, 1), .Cells(DernLigne, DernColonne))

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. [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
  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