[VB] Defusionner des cellules

Résolu/Fermé
Thibaut63 Messages postés 123 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 27 janvier 2021 - 18 mai 2010 à 14:32
 Utilisateur anonyme - 10 août 2016 à 22:23
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 2004 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 14 décembre 2016 262
18 mai 2010 à 14:43
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 dimanche 10 août 2008 Statut Membre Dernière intervention 27 janvier 2021 40
18 mai 2010 à 14:48
Merci beaucoup !
Bonne journée !
0
J'avais le même problème, ça marche parfaitement. Merci
0
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