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 :

Avec une macro, sélectionner une seule ligne même si elle traverse des cellules fusionnées.


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Espagne

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Avec une macro, sélectionner une seule ligne même si elle traverse des cellules fusionnées.
    Bonjour

    N'ayant pas trouvé la solution dans le forum, je vous soumets mon problème.

    Le but : Sélectionner une seule ligne dans une feuille excel à partir d'un module VBA quand cette ligne traverse une série de cellules fusionnées.

    A la souris dans une feuille, ça ne pose pas de problème, mais quand on exécute une macro, ce sont toutes les lignes des cellules fusionnées qui sont sélectionnées.

    Je pense que vous allez me trouver une solution !!

    Merci par avance pour vos propositions.

    Jean Marc en Andalousie
    www.haciendalamorena.com

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, cela pourrait t'aider

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Espagne

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour KIKI29

    Je viens de regarder la discussion que tu me signale mais je ne trouve pas la réponse à mon problème.
    Voila un exemple :
    Fusionner les cellules de C11 à C20 et ensuite executer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Select_ligne()
     
        Rows("15:15").Select  'Selectionne une ligne dans la plage de cellules fusionnées
    End Sub
    La sélection d'une ligne qui coupe la fusion ne se fera pas !! ce sont les lignes 11 à 20 qui seront sélectionnées !

    Il doit bien y avoir une solution.

    à plus
    Jean Marc en Andalousie
    www.haciendalamorena.com

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    non a proprement parler il n'y en a pas

    si plusieurs lignes sont présentes dans une cellules fusionnée la sélection se fait sur le groupe de ligne

    tu a quand même la possibilité de sectionner la plage de la ligne avant fusion et après fusion a toi après de reconstruire l'adresse
    et la tu aura ta sélection
    sachant que des cellules fusionnées porte le nom de la 1ere cellule en haut a gauche il est très facile de déterminer le reste a sélectionner
    un peu comme ceci heu... non tout a fait comme ceci:
    sélection étant une cellule fusionnée qui a été sélectionnée bien sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    ligne = Selection.Row
    col = Selection.Column
    col2 = Selection.Column + Selection.Columns.Count
    debut = Range(Cells(ligne, 1), Cells(ligne, col - 1)).Address
    fin = Range(Cells(ligne, col2), Cells(ligne, Columns.Count)).Address
    Range(debut & "," & Selection.Address & "," & fin).Select
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Espagne

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonsoir Patrick

    Ca ne répond pas à mes besoin ! Car mon tableau est constitué d'une multitude de groupes de cellules fusionnées verticalement en divers endroits.
    Je viens d'essayer de joindre un fichier partiel de mon tableau, mais ce que je souhaiterai, c'est d'avoir une ligne sélectionnée comme quand on clique sur le numéro d'une ligne avec la souris.
    Par exemple sur mon tableau, (si la copie du fichier est bonne) je veux sélectionner la ligne du 20 Juillet, je clique sur le numéro 14 des lignes.

    Classeur1.xlsm

    Si ce n'est pas possible, je continuerais en ne sélectionnent qu'une cellule sur la ligne, mais c'est moins visible que la ligne.

    Merci tout de même pour ta proposition.

    Bien cordialement

    Jean Marc en Andalousie
    www.haciendalamorena.com

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re

    tu es sérieux la!!?

    tu sais qu'il y a un enregistreur de macro dans ton excel ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub SELECTIONNE_LA_LIGNE14()
            Rows("15:15").Select  'Selectionne une ligne dans la plage de cellules fusionnées
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    et en cliquant sur une cellule ou des cellules fusinnées
    dans le module du sheet en question tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Rows(Target.Row).Select
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Espagne

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour Patrick

    Je te remercie pour tes réponses ! même celle qui me dit qu'il y a un enregistreur de macro sur excel.
    Pour ton autre solution, ça fonctionne très bien sur une page où il n'y a pas de cellules fusionnées.

    Par contre, sur le fichier que j'avais joint il y a de nombreuses zones fusionnées et quand on clique sur une cellule, c'est l’ensemble des zones en contact qui sont sélectionnées. Ce que je veux éviter.

    Donc pour le moment on n'a pas avancé !

    Bien cordialement

    Jean Marc en Andalousie
    www.haciendalamorena.com

  9. #9
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonjour,

    peu-être que la première question à ce poser est : à quoi cela sert de sélectionner des cellules ?

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Espagne

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour BBIL

    J'ai exposé mon problème et le but à atteindre au début de la discussion.
    A quoi cela sert !
    En fait je veux au changement de feuille me positionner sur la ligne qui correspond à la date du jour et avoir une vision de cette ligne sur toute la largeur du tableau.
    Egalement quand je suis plus bas ou plus haut dans le tableau en cliquant sur un bouton dans la barre d'outil, me repositionner à la date du jour.

    Actuellement tout cela fonctionne en me positionnant sur la cellule date du jour mais la vision sur la largeur du tableau n'est pas toujours évidente.
    D'où le problème que j'ai exposé.

    Voila, je pense vous avoir mieux cerné la chose !

    Bien cordialement
    Jean Marc en Andalousie
    www.haciendalamorena.com

  11. #11
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    si c'est pour faire de l'animation la sélection de la cellule contenant la date ne suffit pas ?

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Espagne

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Actuellement on fonctionne comme ça.
    Mais la vision sur toute la largeur du tableau n'est pas évidente compte tenu qu'il y a des zones de cellules fusionnées verticalement qui peuvent perturber la vision précise des cellules traversées.

    Le fichier que j'avais joint donne un exemple de ce tableau

  13. #13
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    les cellules fusionnées c'est une plaie pour le VBA....

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Espagne

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    S'il n'y a pas de solution, je continuerai comme ça, mais je pensais que sur le forum quelqu'un m'aurait trouvé une solution.

  15. #15
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour, bonjour !

    Citation Envoyé par Montellano Voir le message
    il y a de nombreuses zones fusionnées et quand on clique sur une cellule,
    c'est l’ensemble des zones en contact qui sont sélectionnées. Ce que je veux éviter.
    Donc la fusion des cellules dans ce cas ne sert à rien, à part galérer avec le code ‼

    Ne pas oublier l'alignement « centré sur plusieurs colonnes » remplaçant avantageusement la fusion …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2014
    Messages : 19
    Points : 36
    Points
    36
    Par défaut
    Bonjour Montellano,

    Une piste à exploité : http://excel.engalere.com/question/7...nte-dans-excel

    J'ai testé la méthode sur ton fichier en suivant la vidéo et Ô miracle, elle permet bien de mettre en évidence la ligne sur laquelle on clique, sauf les cellules fusionnées qui chevauche cette ligne. Celà peut-il te convenir?

    Si tu suis la marche à suivre décrite, sélectionne ta feuille en son entier avant de passer à l'étape 2. Sinon celà ne marchera pas.

    Une autre solution est de copier-coller le code suivant, de lancer une fois la procédure "Initialiser" et d'admirer le résultat (mais çà, c'est seulement si tu es flemmard )
    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
     
    Sub Initialiser()
    '
    ' A ne lance qu'une seule fois
    '
     
        ActiveWorkbook.Names.Add Name:="ActiveRow", RefersToR1C1:="=1"
        ActiveWorkbook.Names("ActiveRow").Comment = ""
        Cells.Select
        Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=LIGNE(A1)=ActiveRow"
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorAccent5
            .TintAndShade = 0.799981688894314
        End With
        Selection.FormatConditions(1).StopIfTrue = False
    End Sub
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
            With ThisWorkbook.Names("ActiveRow")
                    .Name = "ActiveRow"
                    .RefersToR1C1 = "=" & ActiveCell.Row
            End With
    End Sub
    Juste une petite question : Les cellules fusionnées, sont-elles vraiment nécessaires?

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Espagne

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour à tous et merci pour vos propositions, je suis en tran de les regarder

    Oui, les cellules fusionnées sont nécessaires.

    A plus

    Cordialement
    Jean Marc en Andalousie
    www.haciendalamorena.com

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Espagne

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour à tous
    et
    Merci KASSY

    La solution proposée par KASSY fonctionne. il me reste plus qu'à la mettre en forme pour ne l'executer que quand j'en ai besoin.

    Bien cordialement à tous

    Jean Marc en Andalousie
    www.haciendalamorena.com

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Citation Envoyé par Montellano Voir le message
    Bonjour Patrick

    Je te remercie pour tes réponses ! même celle qui me dit qu'il y a un enregistreur de macro sur excel.
    Pour ton autre solution, ça fonctionne très bien sur une page où il n'y a pas de cellules fusionnées.

    Par contre, sur le fichier que j'avais joint il y a de nombreuses zones fusionnées et quand on clique sur une cellule, c'est l’ensemble des zones en contact qui sont sélectionnées. Ce que je veux éviter.

    Donc pour le moment on n'a pas avancé !
    Bonjour tu n'a pas écouté ce que je t'ai dis

    plusieurs cellules fusionné prenne le nom de la première a gauche et ca c'est sans appel tu n'y pourra rien
    par contre si tu sélectionne un groupe de cellules fusionnées la ligne sélectionnée sera la première des cellules fusionnées

    exemple
    le cellules f4 à h6 sont fusionnées avec la 2 méthode tu aura la ligne 4 sélectionnée
    c'est ce qui avait été demandé il me semble non?
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2014
    Messages : 19
    Points : 36
    Points
    36
    Par défaut
    Je suis ravis que ma proposition de satisfasse et apprécierai si tu votais pour celle-ci .

    Cependant, je pense que tu peux l'améliorer en tenant compte de ce que te dis Patrick au sujet des cellules fusionnées

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. utiliser une macro dans une macro
    Par Calimero33 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2010, 17h48
  2. Ou est l'erreur - ou une différence entre une fonction et une macro ?
    Par Daranc dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/12/2009, 07h35
  3. Creer une macro via une macro
    Par GlasgowBoy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/05/2009, 14h54
  4. Réponses: 2
    Dernier message: 24/02/2009, 17h40
  5. [VBA Excel] Appliquer une macro sur une celulle contenant une valeur
    Par tchauviere dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/01/2008, 10h21

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