[VB] Defusionner des cellules

Résolu
Thibaut63 Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   -  
 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

ratikuss Messages postés 1996 Date d'inscription   Statut Membre Dernière intervention   262
 
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
Thibaut63 Messages postés 123 Date d'inscription   Statut Membre Dernière intervention   41
 
Merci beaucoup !
Bonne journée !
0
rigolobobo
 
J'avais le même problème, ça marche parfaitement. Merci
0
Utilisateur anonyme
 
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.
0
kasfipasherov Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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...
-3
ratikuss Messages postés 1996 Date d'inscription   Statut Membre Dernière intervention   262
 
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.
0
NoPseudo
 
En 2016 et sur Excel pour mac, ce code fonctionne encore à merveille !
#CommentaireInutile
0