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 :

Quelle macro pour annuler la fusion des cellules dans Excel en remplissant toutes les cellules crées ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Par défaut Quelle macro pour annuler la fusion des cellules dans Excel en remplissant toutes les cellules crées ?
    Bonjour,

    J'ai un tableau de données Excel qui comprends de nombreuses cellules fusionnées sans ordre précis.

    Probablement pour gagner en lisibilité, la personne qui a créé le tableau a fusionné les cellules ayant les mêmes valeurs.

    De mon coté, pour exploiter le contenu j'ai besoin d'annuler la fusion des cellules.

    Seulement, si je fais ça, je me retrouve avec plein de cellules vides.

    Imaginons par exemple que j'ai la cellule fusionnée :

    -----------------------
    1 |
    2 | "Contenu"
    3 |
    -----------------------

    Si j'annule la fusion j'obtiens :

    -----------------------
    1 | "Contenu"
    -----------------------
    2 |
    -----------------------
    3 |
    -----------------------

    Or ce dont j'ai besoin c'est de :

    -----------------------
    1 | "Contenu"
    -----------------------
    2 | "Contenu"
    -----------------------
    3 | "Contenu"
    -----------------------

    C'est facilement réglable à la main en faisant un glisser-déposer sur chaque cellule mais il y vraiment beaucoup de données. Je cherche une fonction ou une macro qui permet de réaliser cette opération sur l'ensemble des cellules de la feuille de calcul.

    Merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    D'un premier jet... La macro balaie une plage et défusionne les cellules en y plaçant la valeur de la plage fusionnée. Il y a peut-être plus académique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub UnMergeAndReplace(Rng As Range)
      Dim merged As Range
      Dim Cell As Range
     
      For Each Cell In Rng
        If Cell.MergeArea.Cells.Count > 1 Then
          Set merged = Cell.MergeArea
          Cell.UnMerge
          merged.Value = Cell.Value
        End If
      Next
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 562
    Par défaut
    Bonjour à tous

    Une solution manuelle aussi mais rapide : partie Combler les trous http://www.excel-formations.fr/Trucs...s/ToucheF5.php

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 166
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Manuellement comme en vba d'ailleurs il est possible de supprimer en une seule opération les cellules fusionnées par la sélection de la plage concernée et ensuite décocher Fusionner centrer et ensuite comme indiqué par l'astuce proposée par Chris

    En VBA pour une plage commençant en cellule A1 de la feuille nommée Test du classeur où se trouve le code VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub t()
      Dim rng As Range
      Set rng = ThisWorkbook.Worksheets("Test").Range("A1").CurrentRegion
      With rng
      .MergeCells = False
      .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
      .Value = .Value
      End With
      Set rng = Nothing
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    [...]


    Si la proc reçoit la plage plutôt que de la déterminer, ça fait un outil générique à se garder bien au chaud
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 166
    Billets dans le blog
    53
    Par défaut
    Bonjour Pierre,
    Si la proc reçoit la plage plutôt que de la déterminer, ça fait un outil générique à se garder bien au chaud
    Oui, je l'ai écrite en vitesse sans placer ma fonction car ces derniers temps cela ne semble pas clair pour beaucoup de demandeurs. Merci pour le vote
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Macro pour afficher et masquer des colonnes dans une feuille protégée
    Par CALOU3117 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/04/2018, 21h14
  2. [2013] Macro pour modifier la valeur des cellules d'une table excel
    Par ch_minds dans le forum Microsoft Office
    Réponses: 3
    Dernier message: 30/12/2017, 20h41
  3. Macro fusion des cellules vides au dessous d'une cellule non vide
    Par Yuna- dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/05/2016, 10h37
  4. [XL-2010] macro pour afficher le contenu des lignes des cellules vides
    Par BUX07 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/08/2012, 15h48
  5. Annuler Fusion des cellules en-tête par défaut
    Par verveine47 dans le forum Cognos
    Réponses: 0
    Dernier message: 12/06/2009, 09h58

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