[VB] Defusionner des cellules [Résolu/Fermé]

Signaler
Messages postés
123
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
27 janvier 2021
-
 Utilisateur anonyme -
Bonjour,

J'ai un fichier .xls dont de nombreuses lignes et de nombreuses colonnes sont fusionner.
J'aimerai défusionner toute les cellules de mon fichier afin de pouvoir charger mon fichier en mémoire dans un tableau a deux dimensions et traiter facilement mes données.
Voilà ce que j'ai essayé :
Sub defusionne(adresse As String)

Dim fichier, xlApp, xlBook, xlWks  As Variant
Dim xlRange As Range


' Création de l'objet Excel (une classe)
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(adresse)
' Positionnement à l'intérieur du classeur
Set xlWks = xlBook.Worksheets(1)
Set xlRange = xlWks.Range("A1:A65535")

Application.ScreenUpdating = False
Application.DisplayAlerts = False
With xlWks
        Dercol = .Range("IH3").End(xlToLeft).Column 'définit la dernière colonne du fichier
        derlig = .Range("B65000").End(xlUp).Row ''définit la dernière ligne du fichier
        Selection = .Range(.Cells(1, 1), .Cells(derlig, Dercol))
End With

Selection .MergeCells = False
  
Application.ScreenUpdating = True
Application.DisplayAlerts = True

ActiveWorkbook.Save
    xlBook.Close
    Set xlBook = Nothing
    xlApp.Quit
    Set xlApp = Nothing


End Sub


Pas d'erreur mais mon fichier excel n'est pas modifié ...
Merci d'avance.

Cordialement

Thibaut63




A voir également:

2 réponses

Messages postés
2004
Date d'inscription
vendredi 8 juin 2007
Statut
Membre
Dernière intervention
14 décembre 2016
244
Avec ce code toutes les cellules de la feuille en cours sont défusionnées .
Sub Defusionner()

    Cells.Select
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
End Sub
8
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
123
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
27 janvier 2021
38
Merci beaucoup !
Bonne journée !
J'avais le même problème, ça marche parfaitement. Merci
Bonsoir à tous,
La solution de ratikuss est exacte, mais il y a bien plus simple :

Sub Défusionner()
  Cells.MergeCells = False
End Sub

Et c'est aussi plus sûr, dans le sens où ça laisse inchangées
les autres options de formatage de cellules. Cordialement.
Messages postés
6
Date d'inscription
samedi 2 février 2008
Statut
Membre
Dernière intervention
8 février 2016

Bonjour,

Quoi!!! pour défusionner des cellules il faut écrire des codes. Dans les versions 2003 et en dessous, il fallait juste faire un clic sur un petit bouton..

C'est quoi ce délire? je ne suis pas programmeur, juste un utilisateur d'un logiciel qui s'appelle Excel...
Messages postés
2004
Date d'inscription
vendredi 8 juin 2007
Statut
Membre
Dernière intervention
14 décembre 2016
244
Certes, mais tout dépend de l'utilisation finale.
Il pose une question dans la partie "VB/VBA", on répond donc avec du code VBA.
En 2016 et sur Excel pour mac, ce code fonctionne encore à merveille !
#CommentaireInutile