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 :

adresse tronquée dans formule (ie pas de référence à la feuille)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 24
    Par défaut adresse tronquée dans formule (ie pas de référence à la feuille)
    Bonjour ,

    en lançant le code indiqué ci-après le résultat est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV(150;$A$1:$H$105; 2; FAUX)
    alors que la table matrice est définie dans une autre feuille appelée ICB_classification. Pourquoi le nom de la feuille n'apparaît pas ?
    Je vous remercie d'avance pour votre aide.
    Jean-Marie

    Voici le code qui aboutit à ce résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set plage1 = Sheets("ICB_classification").Range("A1").CurrentRegion
     
    ' valeur recherchée = 150 (1er argument fonction Vlookup)
    secteur = Range("D" & i).Value 
     
    ActiveCell.Formula = "=vlookup(" & secteur & "," & plage1.Address & ", 2, _ False)"
    pourquoi plage1.address indique $A$1:$H$105 au lieu de
    ICB_classification!$A$1:$$H$105 ?

    Comment faire pour obtenir l'adresse complète ?

  2. #2
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    Bonjour ,

    Address ne renvoie que ligne et colonne, pas le nom de la feuille



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set plage1 = Sheets("ICB_classification").Range("A1").CurrentRegion
    
    ' valeur recherchée = 150 (1er argument fonction Vlookup)
    secteur = Range("D" & i).Value 
    
    ActiveCell.Formula = "=vlookup(" & secteur & ",ICB_classification!" & plage1.Address & ", 2, _ False)"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim F1 As Worksheet
    Set F1 = Sheets("ICB_classification")
    Set plage1 = F1.Range("A1").CurrentRegion
     
    ' valeur recherchée = 150 (1er argument fonction Vlookup)
    secteur = Range("D" & i).Value
     
    ActiveCell.Formula = "=vlookup(" & secteur & "," & F1.Name & "!" & plage1.Address & ", 2, 0)"
    cordialement

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    deux autres possibilités sans variable intermédiaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Plage1.Parent.Name & "!" & Plage1.Address
    La propriété Address contient un argument facultatif "External", qui permet aussi de récupérer le nom de la feuille:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MsgBox Mid(Plage1.Address(1, 1, 1, True, 0), _
        InStr(Plage1.Address(1, 1, 1, True, 0), "]") + 1)
    Ce derniere exemple renvoie un résultat dans le style:
    [NomClasseur.xls]ICB_classification!$A$1:$B$8
    Les fonctions MID et INSTR permettent ensuite de manipuler la chaîne de caractères afin de ne récupéer que le nom de la feuille et l'adresse des cellules.


    bonne journée
    michel

  4. #4
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    désolé Michel mais il vaudrait mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Plage1.Worksheet.Name & "!" & Plage1.Address

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    rebonjour et merci Bidou


    Je ne connais pas de cas de figure qui nécessiterait de privilégier Worksheet à Parent, mais Je te fais confiance dans ce domaine ... ;o)


    bonne journée
    michel

  6. #6
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    c'est une histoire de liaisons

    Worksheet renvoie un objet Worksheet donc tu gardes l'intellisense et en cas de pilotage tu restes en liaison précoce, Parent renvoie Object donc tu perds l'intellisense et tu passes en liaison tardive

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/11/2009, 19h38
  2. Référence dans formule Excel depuis VBA
    Par Neosquall2 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/09/2008, 10h09
  3. formule dans une cellule, référence à une feuille
    Par carpediem2807 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/05/2008, 23h00
  4. Réponses: 6
    Dernier message: 22/05/2007, 10h55
  5. Réponses: 25
    Dernier message: 23/01/2007, 23h27

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