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 dynamique en VBA [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
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Avril 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 36
    Par défaut Nommer une plage dynamique en VBA
    Bonjour le forum,

    J'ai bien l'impression d'être fatigué, mais rien y fait, je suis en train de perdre mon temps pour une erreur qui sautera à vos yeux experts.
    J'essaye de nommer une plage dynamique après la création d'une feuille avec une formule de type DECALER. Apparemment, ça ne plait pas trop à excel qui me dit que ma formule contient une erreur, J'ai beau chercher, je ne trouve pas, un idée?

    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
    Dim Prgm As String
    Dim Wb As Workbook
    Dim D As Integer
     
     
     
    Set Wb = ActiveWorkbook
     
     
     
    Prgm = InputBox("Quel programme souhaitez-vous créer?")
     
     
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Name = Prgm
        ActiveCell.FormulaR1C1 = "Liste des activités liées à " & Prgm
     
       Wb.Names.Add Name:=Prgm, RefersTo:= _
            "=DECALER('" & Prgm & "'!$A$1;1;0;NBVAL('" & Prgm & "'!$A:$A)-1)"

  2. #2
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    bonjour,

    essaye d'avoir la syntaxe correcte de ta formule avec l'enregistreur macro.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Avril 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 36
    Par défaut
    Bonjour NVCfrm,

    C'est pourant bien ce que j'ai fait. Quand je teste l'expression obtenue par la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=DECALER('" & Prgm & "'!$A$1;1;0;NBVAL('" & Prgm & "'!$A:$A)-1)"
    en faisant une Msgbox, l'expression me semble correcte. Est-ce que je fais une bonne utilisation des opérandes de concaténation?

    Merci pour votre aide.

    Banane

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Avril 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 36
    Par défaut
    Rebonjour le forum,

    Il fallait enlever le "=" dans le code de ma formule pour empêcher l'erreur!
    Cependant, un problème persiste. Quand le programme nomme ma plage, la valeur est mise entre guillemets de cette manière :
    ="DECALER('herty'!$A$1;1;0;NBVAL('herty'!$A:$A)-1)"
    Comment retirer les guillemets avant Decaler et après la parenthèse?

    Je vous remets le code corrigé :
    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
    Option Explicit
     
    Sub Creer_Prgm()
    '
    ' Macro de création d'un programme
    'Dim ws As Worksheet
    Dim Prgm As String
    Dim Wb As Workbook
    Dim D As Integer
    Dim SyntaxeN As String
     
     
    Set Wb = ActiveWorkbook
     
     
     
    Prgm = InputBox("Quel programme souhaitez-vous créer?")
     
     
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Name = Prgm
        ActiveCell.FormulaR1C1 = "Liste des activités liées à " & Prgm
        Cells(2, 1).Value = "Activité-modèle"
    SyntaxeN = "DECALER('" & Prgm & "'!$A$1;1;0;NBVAL('" & Prgm & "'!$A:$A)-1)"
    MsgBox (SyntaxeN)
       Wb.Names.Add Name:=Prgm, RefersTo:=SyntaxeN
        Wb.Sheets("Liste des programmes en cours").Activate
        D = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row - 1
        Cells(D + 1, 2) = Prgm
        Cells(D + 1, 3) = Now
        Cells(D + 1, 4) = Environ("USERNAME")
        Sheets("Accueil").Select
    End Sub
    Merci

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    Déjà est est ce que sans utiliser de macros tu arrive à utiliser décaler dans la référence d'un champ nommé ?

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Avril 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 36
    Par défaut
    Bonjour Bbil,

    oui, cela fonctionne sans problème. La formule est exactement la même. D'ailleurs, en retirant les guillemets, ça fonctionne parfaitement.

    La question devient donc : "Comment retirer ces satanés guillemets?"

    Merci de ton aide.

    Banane

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

Discussions similaires

  1. [XL-2007] Comment nommer une plage en boucle ?
    Par rvtoulon dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/10/2009, 11h44
  2. diviser une colonne d'une plage dynamique
    Par mini_moi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/05/2009, 20h44
  3. [A-00] Nommer une plage Excel depuis Access
    Par jean-paul lepetit dans le forum VBA Access
    Réponses: 4
    Dernier message: 26/01/2009, 20h36
  4. Créer un Graphique avec une plage dynamique
    Par AccessMacro dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/10/2008, 16h37
  5. [VBA-E] somme d'une plage dynamique
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/11/2005, 21h58

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