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 :

Resize plage nommée [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Par défaut Resize plage nommée
    Bonjour à tous,
    j'ai essayé tout ce que j'ai trouvé sur les forums mais je n'arrive pas à faire ceci :
    j'ai une plage nommée ActiveWorkbook.Names("ListeRisqueTechnique") qui va de AC4 à AC159.
    Je crée une nouvelle ligne et donc, je veux qu'elle aille de AC4 à "AC & nouveau numéro de ligne".
    Je ne sais pas ce qui ne va pas mais j'ai eu tous les codes erreurs possibles.
    Est-ce que quelqu'un pourrait m'aider s'il vous plaît ?
    Je ne veux pas faire de delete avant parce que sinon, les tableaux qui y font référence se mettent en #erreur.
    Comment je lui dit que je veux faire un resize ?
    Quand je passe par l'enregistreur de macro, il fait ça (j'ai juste ajouté la partie variable du n° de ligne) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ActiveWorkbook.Names("ListeRisqueTechnique")
                    .Name = "ListeRisqueTechnique"
                    .RefersToR1C1 = "='Affaires en cours'!R4C29:R" & CStr(NumLigneProjet) & "C29"
                End With
    Merci de votre aide, je ne m'en sors vraiment pas...

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Bonjour,
    voici un code qui fait ce que tu souhaites, adapte le à ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub nom_plage()
    Dim maplage As String, derligne As Long
    'récupère le n° de la dernière ligne remplis
    derligne = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
     
    'définition de ma plage
    maplage = "A1:H" & derligne
     
    'définition du nom de la plage
    ActiveWorkbook.Names.Add Name:="plage1", RefersTo:="=Feuil1!" & maplage
     
    'sélectionne la plage
    Range("plage1").Select
    End Sub
    si tu modifies la plage en rajoutant une ligne il va modifier ou créer une plage avec le même nom mais des références Différentes.

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Par défaut Merci Hervé mais il y a encore un souci.
    Avec ton code ça me donne une nouvelle plage or il faut que j'utilise toujours la même.

  4. #4
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Je viens de faire un test ou je modifie mon tableau en rajoutant ou supprimant des lignes et j'ai bien une plage qui à toujours le même nom avec l'adresse adaptée.

    As-tu changer le nom de la plage de mon code et mis le nom de ta plage?

    Peux-tu mettre ton code afin que l'on puisse voir ce qu'il en est?

    merci

    Essaye avec ceci:
    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
    Sub nom_plage()
    Dim maplage As String, derligne As Long
     
    'récupère le n° de la dernière ligne remplis
    derligne = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
     
    'définition de ma plage
    maplage = "A1:H" & derligne
     
    'Modification de la plage
    With ActiveWorkbook.Names("plage1")
            .Name = "plage1"
            .RefersTo = "=Feuil1!" & maplage
    End With
     
    'sélectionne la plage
    Range("plage1").Select
    End Sub

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Par défaut Je pense que je n'ai pas tout compris
    Je pense que je n'ai pas bien compris ce que tu as écrit dans ton code.
    Voilà ce que j'ai mis.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub nom_plage()
    Dim maplage As String, derligne As Long
     
    'définition de ma plage
    maplage = "A4:A" & derligne
     
    'définition du nom de la plage
    ActiveWorkbook.Names.Add Name:="ListeRisqueTechnique", RefersTo:="=Affaires en cours" & maplage
     
    'sélectionne la plage
    Range("ListeRisqueTechnique").Select
    End Sub

  6. #6
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    ok voici le code avec les changements:
    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
    Sub nom_plage()
    Dim maplage As String, derligne As Long
     
    'récupère le n° de la dernière ligne remplis
    derligne = Sheets("Affaires en cours").Range("AC" & Rows.Count).End(xlUp).Row
     
    'définition de ma plage
    maplage = "AC4:AC" & derligne
     
    'modification de la plage
    With ActiveWorkbook.Names("ListeRisqueTechnique")
            .Name = "ListeRisqueTechnique"
            .RefersTo = "=Affaires en cours!" & maplage
    End With
     
    'sélectionne la plage
    Range("ListeRisqueTechnique").Select
    End Sub

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

Discussions similaires

  1. Boucle sur plages nommées
    Par Xavier34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/11/2007, 16h50
  2. Mise en forme bordure par Macro sur plage nommée
    Par tempo-lyon dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 01/10/2007, 10h52
  3. Mettre une plage nommée dans un ComboBox
    Par Swiper dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 18/07/2007, 08h51
  4. Adresse de Cellule d'une plage nommée
    Par edelweisseric dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 22/06/2007, 09h13
  5. Export Excel "Impossible d'agrandir la plage nommée"
    Par jean-paul lepetit dans le forum Access
    Réponses: 15
    Dernier message: 22/05/2007, 09h55

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