[VB] Defusionner des cellules

Résolu
Thibaut63 Messages postés 143 Statut Membre -  
 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



--
Dans tout les tiek's ca chuchotte

2 réponses

  1. ratikuss Messages postés 56 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
    1. Thibaut63 Messages postés 143 Statut Membre 41
       
      Merci beaucoup !
      Bonne journée !
      0
    2. rigolobobo
       
      J'avais le même problème, ça marche parfaitement. Merci
      0
    3. 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
  2. kasfipasherov Messages postés 8 Statut Membre
     
    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
    1. ratikuss Messages postés 56 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
    2. NoPseudo
       
      En 2016 et sur Excel pour mac, ce code fonctionne encore à merveille !
      #CommentaireInutile
      0