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 :

sélection d'une cellule avec des "noms"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 79
    Par défaut sélection d'une cellule avec des "noms"
    Bonjour à tous,

    Dans excel, si j'affecte un nom, bien sûr déjà défini, à une colonne et un autre nom à une ligne, puis-je faire référence à la cellule qui est à la croisée de cette ligne et de cette colonne.

    En d'autres termes, puis-je écrire quelque chose du genre : "Range (Nom1, Nom2).select" ? Si oui, pouvez-vous me préciser la syntaxe exacte ?

    Merci d'avance,
    Cordialement,
    Maurice GUILLIER

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé 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 : 72
    Localisation : France

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

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

    Tu peux utiliser la méthode Intersect de l'objet Application.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim maPlage as Excel.Range
    set maPlage = Application.Intersect(Range("nom1"), Range("nom2"))
    maPlage représente alors la ou les cellules qui appartiennent à Nom1 et Nom2.

    Cordialement,

    PGZ

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Sélection d'une cellule comune
    Bonjour Maurice,

    Propriété "Intersect"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub ESSAI()
    Intersect([MACOLONNE], [MALIGNE]).Select
    End Sub
    Si tu utilises cette cellule à plusieurs étapes de ton développement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub ESSAI()
     
    Dim macellule as range
     
    Set macellule = Intersect([MACOLONNE], [MALIGNE])
    With macellule
      .select
       'etc.....
    End With
     
    End Sub
    Cordialement

    Marcel

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 79
    Par défaut
    Bonjour à vous deux,

    Bizarre, bizarre !

    Ce matin, j'ai écrit le code dans un fichier vierge et j'ai, me semble-t-il, bien pu affecter des valeurs à la croisée des colonnes nommées et des lignes nommées.

    Cet après-midi, je me suis vu opposer un bug

    Voici le code que j'ai écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub macro1()
    ThisWorkbook.Sheets("Feuil1").Select
    Intersect([guillier], [brioche]).Select
    ActiveCell.FormulaR1C1 = 56
    End Sub

    Je me retrouve avec un pop-up "Erreur d'exécution 424 : Objet requis"

    Merci à nouveau de votre aide
    Cordialement,
    Maurice

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut INTERSECT
    Bonsoir,

    J'ai essayé ce code sans problème sur Excel 2003, en appliquant tes noms.

    Sur quelle ligne de ton développement obtiens-tu un bug ?

    Cordialement.

    Marcel

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé 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 : 72
    Localisation : France

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

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

    L'utilisation des méthodes Select allourdit et ralentit le code. Autre bizarrerie, si tu veux écrire 56 dans une cellule, pourquoi FormulaR1C1 et pas value? Avec formula il faut mettre la donnée en string, donc entre quotes.
    Tu peux donc faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub toto()
     
    Application.Intersect([Guillier], [Brioche]).Value = 56
    End Sub
    ou, si tu tiens à FormulaR1C1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub toto()
     
    Application.Intersect([Guillier], [Brioche]).FormulaR1C1 = "56"
    End Sub
    En espérant que cela t'aide,

    PGZ

  7. #7
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut intersect
    Bonsoir Pgz,

    J'ai essayé la méthode avec quote, et sans quote.
    Cela donne le même résultat.

    Y a-t-il une différence à ce sujet entre Excel 2003 et Excel 2007?

    Bien à toi.

    Marcel

  8. #8
    pgz
    pgz est déconnecté
    Expert confirmé 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 : 72
    Localisation : France

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

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re,

    As-tu essayé de remplacer ton code par l'une des 2 lignes que je te propose?

    PGZ

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/10/2009, 19h05
  2. Sélection multiples de cellules avec des variables
    Par John81 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 31/08/2008, 21h12
  3. Réponses: 2
    Dernier message: 13/02/2007, 18h40

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