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 :

Référence à un nom de cellule en VBA [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut Référence à un nom de cellule en VBA
    Bonjour,

    En VBA est-il possible de faire référence à une cellule nommée ?

    Dans mon code j'ai par exemple:

    je voudrai le remplacer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("MonParametre").Value


    C'est possible ou pas ?

    Merci.

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    A tu essayé?
    Tu auras la réponse

  3. #3
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Si c'est un nom étendu au classeur, je te propose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Names("MonNomDefini").RefersToRange.Value
    Si le nom défini est limité à une feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Worksheets("NomFeuille").Names("MonNomDefini").RefersToRange.Value
    Cordialement,

    PGZ

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut
    Merci à vous deux, oui j'avais fais des essais mais sans succès, mais avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Names("MonNomDefini").RefersToRange.Value
    ça fonctionne très bien.

    Bonne soirée.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut
    Bonsoir,

    Je reviens vers vous car je fais des essais pour affiner mon programme, en effet je souhaite avec

    faire référence à deux colonnes avant sur la même ligne, mais je ne trouve pas .

    Je voudrai que la date en colonne I soit automatiquement renvoyée sur la même ligne en colonne K sous condition que la colonne N contienne le code "achat" toujours sur la même ligne, mais en cas d'erreur de saisie "Vente" par exemple que cette date soit vide pour en saisir une autre.
    je saisie mes ventes de vêtements ligne par ligne.

    Comment pratiquer ?

    Merci.
    Philippe.

  6. #6
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Ce n'est pas le même sujet et tu aurais dû ouvrir une nouvelle discussion.

    Si tu as beaucoup d'opérations de ce type sur ta feuille, tu pourrais choisir de faire un formulaire pour renseigner ligne par ligne.

    Sinon, dans la feuille tu peux traiter sur l'évènement Change, comme 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
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Target.Column = 9 Then 'colonne I
        If Target.Offset(, 5).Value = "achat" Then Target.Offset(, 2).Value = Target.Value 'si N = "achat" alors K = I
     
    ElseIf Target.Column = 14 Then 'colonne N
     
        If Target.Value = "achat" Then 'si N = "achat"
            Target.Offset(, -3).Value = Target.Offset(, -5).Value 'K = I
     
        Else
            Target.Offset(, -3).Value = Empty 'K = Empty
        End If
    End If
     
    End Sub
    sous rserve de vérification des valeurs d'offset.

    Cordialement,

    PGZ

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 330
    Points : 127
    Points
    127
    Par défaut
    Merci, je vais travailler sur ton code pour l'étudier.

    @+

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Référence à un nom de cellule en VBA
    Bonsoir , je pense que je n'ai pas les bonnes infos et du coup je n'arrive pas à utiliser vos différentes réponses pour faire les Entêtes/Pieddepage automatiques

    j'ai essayé 2 types d'affectation pour récupérer des valeurs par nom de cellules et rien ne fonctionne , est-ce que j'ai oublié quelque chose ?

    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
    Sub toutes_feuilles()
    Dim x As Byte
    Dim EGH As String
    Dim EGB As String
    Dim EMB As String
    Dim EDH As String
    Dim EDB As String
    'EGH = ThisWorkbook.Worksheets("modification list").Names("EnteteGaucheHaut").RefersToRange.Value
    'EGB = ThisWorkbook.Worksheets("modification list").Names("EnteteGaucheBas").RefersToRange.Value
    'EDH = ThisWorkbook.Worksheets("modification list").Names("EnteteDroitHaut").RefersToRange.Value
    'EDB = ThisWorkbook.Worksheets("modification list").Names("EnteteDroitBas").RefersToRange.Value
    'EMH = ThisWorkbook.Worksheets("modification list").Names("EnteteMillieuBas").RefersToRange.Value
    EGH = ThisWorkbook.Worksheets("2").Range("EnteteGaucheHaut").Value
    EGB = ThisWorkbook.Worksheets("2").Range("EnteteGaucheBas").Value
    EDH = ThisWorkbook.Worksheets("2").Range("EnteteDroitHaut").Value
    EDB = ThisWorkbook.Worksheets("2").Range("EnteteDroitBas").Value
    EMH = ThisWorkbook.Worksheets("2").Range("EnteteMillieuBas").Value
     
    For x = 1 To Sheets.Count
        With Sheets(x).PageSetup
            'en-tête de page
            .LeftHeader = EGH & Chr(10) & EGB '<-- contenu de la cellule EnteteGaucheHaut sur feuille 2 (sans précision = style par défaut)
            .CenterHeader = EMH '"&A" & Chr(10) & "&F" <-- nom feuille + saut de ligne + nom fichier
            .RightHeader = EDH & Chr(10) & EDB
            'pied de page
            .LeftFooter = "&G&10&""Arial""&F" 'nom fichier
            .CenterFooter = "&G&10&""Arial""&D / &T" '<-- date / heure
            .RightFooter = "&G&10&""Arial""&P/&N" '<-- numéro de page / nombre de pages
        End With
    Next x
     
    End Sub

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

Discussions similaires

  1. [XL-2010] Utiliser les noms des cellules avec VBA
    Par laguernette dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/08/2013, 23h02
  2. Nom de cellule et VBA
    Par toniodelavega dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/08/2010, 10h54
  3. [VBA] nom de cellule
    Par getea85 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/08/2006, 10h51
  4. Réponses: 4
    Dernier message: 30/05/2006, 17h21
  5. [VBA-E]attribution d'un nom à une cellule
    Par capedam dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/02/2006, 05h22

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