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 :

Problème pour insérer une ligne avant champ fusionné [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 51
    Points : 61
    Points
    61
    Par défaut Problème pour insérer une ligne avant champ fusionné
    Bonjour,

    J'ai un problème avec ma macro vb qui n'insère pas une ligne comme je le souhaiterai.

    Imaginez une colonne que l'on a remplit et dont certaines cases sont fusionnées avec leurs homologues d'en dessous. Si je souhaite insérer une ligne au dessus, rien de plus simple, un clic droit + insertion.

    J'ai utilisé une macro enregistrée et je me suis retrouvé avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Jusque la rien de choquant, une ligne a été insérée, sauf que si je parcours moi-même ma colonne (je vous passe les déclarations) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     For Each cell In PlageTest
                If cell.Value = "Grand titre2" Then ' on dit ce qu'on cherche
                    trouve = i ' si on l'a trouvé on met la variable trouvé a i
                Else ' sinon on incremente i pour dire qu'on passe à la case suivante
                    i = i + 1
                End If
            Next cell
     
    If trouve > 0 Then ' si trouve > 0 c'est qu'on a trouvé la valeur demandée
                 Call procedureAjoutMenu(trouve) ' on appelle la procédure d'ajout
            End If
    Et la sub procedureAjouterMenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub procedureAjoutMenu(cellule As Integer)
        MsgBox "Trouvé à la " & cellule & " ligne" ' on affiche la ligne à laquelle on insère
        Range(Cells(cellule, 4), Cells(cellule, 4)).Select ' sélectionne la cellule
        Selection.EntireRow.Insert ' on insère la ligne
    End Sub
    A ce moment, ce n'est plus une ligne qui est ajoutée, mais autant de lignes que la fusion inférieure.
    C'est à dire que dans ce code je souhaite insérer une ligne après "Grand titre2", eh bien si par malheur la ligne d'en dessous (qui contiendra Grand titre3 vous vous en doutez) est fusionnée avec la ligne d'encore en dessous, ma macro ajoutera 2 lignes au lieu d'une.

    Pourquoi ?
    Tout simplement parce que pour ajouter une ligne je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.EntireRow.Insert ' on insère la ligne
    Et ma sélection est une zone qui contient plusieurs cases puisque elles sont fusionnées.

    Je me demande donc comment je peux forcer vb à insérer une et UNIQUE ligne quand bien même celles d'en dessous seraient fusionnées

    Je sais bien que ce que j'explique est extrêmement brouillon, mais je ne trouve pas d'autres mots pour l'expliquer et il semble que poster des fichiers sources soit mal vu.

  2. #2
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Slt, j'ai pas testé mais en remplaçant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range(Cells(cellule, 4), Cells(cellule, 4)).Select ' sélectionne la cellule
    Selection.EntireRow.Insert ' on insère la ligne
    par cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Rows(cellule).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 51
    Points : 61
    Points
    61
    Par défaut Résolu
    Wow magnifique ca fonctionne merci beaucoup.

    Le bouton résolu est ou ?

  4. #4
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Il est juste en bas de la feuille vers le milieu.
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/07/2010, 19h48
  2. Problème pour déplacer une ligne à partir d'une variable
    Par Cadenwarr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/01/2008, 12h12
  3. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 14h13
  4. Problème pour insérer une image
    Par Paulinho dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 4
    Dernier message: 26/04/2006, 23h36
  5. Probléme pour insérer une variable dans un champs
    Par BOUTRAIS dans le forum Access
    Réponses: 2
    Dernier message: 11/04/2006, 22h45

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