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 plage de cellule variable en auto


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Octobre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 11
    Par défaut nommer une plage de cellule variable en auto
    Bonjour,

    N'ayant pas trouvé de réponse pertinnente dans le FAQ, je me permets de poster ce message.

    Mon but est de pouvoir via une macro nommer une plage de cellule, qui par la suite peut évoluer en taille. Par exemple passer de a1:z3000 à a1:z5000. Pour l'instant j'arrive à faire la sélection de la zone par macro en fonction du nombre de donner mais je n'arrive pas à modifier la plage du nom.

    merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,
    si tu utilises la fonction decaler dans Excel, lors de l'ajout d'une ligne en fin de colonne, elle est automatiquement incorporee a ta zone nommee.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Par défaut
    Bonjour,

    Sinon avec du code vba quelque chose dans ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Sheets("lafeuille").Range("a1:z5000").Names.Add Name:="taPlageNommée", RefersTo:="=lafeuille!R1C26:R5000C26"
    Enregistre une macro et modifie le code ensuite.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut brice86190 et le forum
    Mon but est de pouvoir via une macro nommer une plage de cellule, qui par la suite peut évoluer en taille. Par exemple passer de a1:z3000 à a1:z5000.
    Un tas de solutions, mais il faut plus d'infos. Une proposition (honnête):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    Dim X As Long
    X = 5
    ActiveWorkbook.Names.Add Name:="AA", RefersToR1C1:="=Feuil1!R1C1:R1C26"
    'Définit le nom pour la plage A1Z1 ou redéfinit la plage
    ActiveWorkbook.Names("AA").RefersToR1C1 = "=Feuil1!R1C1:R" & X & "C26"
    'Redéfinit la plage de référence
    End Sub
    A+

  5. #5
    Membre habitué
    Inscrit en
    Octobre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 11
    Par défaut
    Bonjour,

    Si j'ai bien compris, Access Newbie, avec ta proposition la plage de cellule n'est pas une variable et ne se modifiera pas automatiquement lors d'ajout d'autre données à la base?

    Il faudrait que dans le "range", à la place de "a1;z5000" je puisse mettre la variable decaler() par exemple mais cela ne fonctionne pas.

    Bonjour Gorfael,

    Je ne suis pas un as en vba, je voulais savoir si à base du code que tu me propose, il est possible de définir une plage qui contient des données. Car avec ton code il sélectionne les 5 1ère ligne de toutes les colonnes qu'il y est des données ou pas dedans, ou puis-je insérer une variable dans ce code, par exemple la fonction "decaler" peut elle être insérer dans ce code.

    Merci

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut brice86190 et le forum
    puis-je insérer une variable dans ce code
    Plus tu nous donnes moins d'informations, moins on peut plus t'aider. Si tu es débutant, expliques-le dès le départ, sinon, les réponses ne te fournissent que des pistes.
    Si tu n'exposes pas complêtement le problème, même punition.

    jpcheck te propose d'utiliser la fonction DECALER() pour créer une plage dynamique, qui recalculera les adresses, directement dans la feuille de calcul, sans passer par VBA : c'est une autre méthode.

    Dans les instructions VBA que je t'ai données, j'ai fourni une piste :
    "=Feuil1!R1C1:R1C26"
    de R1C1 (A1) à R1C26 (Z1)
    Par exemple passer de a1:z3000 à a1:z5000.
    Quand je lis une telle phrase, j'en déduis que tu veux pouvoir modifier le nombre de ligne (passer de 3000 à 5000). Donc je fournis une idée de la modification de ligne :
    Dim X As Long Définir la variable X en entier long
    X = 5 alimenter la variable avec une valeur => ici 5
    ActiveWorkbook.Names("AA").RefersToR1C1 = "=Feuil1!R1C1:R" & X & "C26" redéfinir la plage nommée AA avec la valeur de la variable => ici R1C1:RxC26 <=> R1C1:R5C26 : A1:Z5
    Ça ne correspond pas exactement à ta demande, mais ça te donne une idée de ce que tu dois chercher, comme toi tu nous as donné une idée de ton problème.

    "=Feuil1!R1C1:R1C26" peut se transformer en
    "=Feuil1!R" & L_1 & "C" & C_1 & ":R" & L_2 & "C" & C_2 & """" avec
    C_1 et C_2 des variables définissant les numéros de colonnes de départ et de fin de la plage
    L_1 et L_2 des variables définissant les numéros de lignes de départ et de fin de la plage

    Donc, si je définis C_1=2, C_2=27, L_1=3000, L_2=5000, la plage nommée AA sera redéfinie en B3000:AA5000

    Mais ce n'est qu'une idée, pour pouvoir travailler, pas la résolution de ton problème, puisque la seule info fournie est que tu veux renommer une "plage de données", et qu'on n'en sait pas plus.
    Une instruction dans la définition du nom dans la feuille excel du style :
    =DECALER(Feuil1!A1;0;0;NBVAL(A:A);26)
    serait peut-être plus adaptée, mais comment savoir ????

    Et ne te fais pas d'illusion, les dépanneurs recherchent à écrire le moins possible. Perso, un sujet simple qui dépasse les 5 postes ne m'intéresse plus : soit il faut torturer le créateur pour lui arracher des infos, soit celles qu'il donne ne permettent pas de comprendre le problème. Et passer mon temps en écrivain ou en bourreau ne m'apporte que peu de satisfaction

    A+

Discussions similaires

  1. Sélectionner une plage de cellules variable
    Par LeRogerTroutman dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/07/2009, 22h43
  2. Sélectionner une plage de cellules variables
    Par thierry_b dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/06/2009, 11h42
  3. Selection d'une plage de cellules variables
    Par bykeman dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/06/2008, 10h20
  4. Sélectionner une plage de cellules variables pour faire un graphique?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/11/2007, 18h06
  5. appliquer une macro a une plage de cellule variable
    Par johndeuf dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/11/2006, 16h18

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