Annuler fusion et remplissage des cellules

salandership -  
 Gus -
Bonjour,
voilà j'ai un tableau excel destiné à l'impression, il y'a dedans beaucoup de cellules fusionnées.

je veux exploiter ce tableau dans une base de données, je voudrais annuler la fusion des cellule et les remplir avec la valeur qui figure dans la cellule fusionnée, donc avoir la même valeur qui se répéte dans plusieurs cellules au lieu d'une seule cellule fusionnée.

j'espère que c'est assez claire
merci

3 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    Avec une petite macro vba c'est faisable :
    Sub défusionner()
        ' supprime toutes les fusions de cellules
        ' toutes les cellules d'une fusion reçoivent la valeur ou la formule d'origine
        Dim c1 As Range, c2 As Range, plage As Range, valeur As Variant
        Application.ScreenUpdating = False
        For Each c1 In ActiveSheet.UsedRange
            If c1.MergeCells Then
                valeur = c1.Formula
                Set plage = c1.MergeArea
                plage.UnMerge
                For Each c2 In plage
                    c2.Formula = valeur
                Next c2
            End If
        Next c1
        Application.ScreenUpdating = True
    End Sub
    

    La macro traite la feuille active.
    Fichier exemple : http://www.cijoint.fr/cjlink.php?file=cj201104/cij0buJaLN.xls

    eric
    11
    1. salandership
       
      impeccable
      je vais être un peu capricieux et vous demander une macro qui fait lamême chose mais cette fois pour remplir les cellule vide avec la valeur de la cellule première qui les précéde, c'est comme si la macro que vous avez réalisé ne "défufionne" pas.
      Merci pour votre aide précieuse
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonsoir,

      il suffit de remplacer :
      valeur = c1.Formula
      par :
      valeur = c1.Formula.offset(0,-1)
      Mais il faut que cette cellule existe, donc que les cellules fusionnées ne démarre qu'en colonne B.

      c'est comme si la macro que vous avez réalisé ne "défufionne" pas.
      Là je n'ai pas compris...
      eric
      0
    3. salandership
       
      En fait
      il arrive que j'ai un fichier excel dans lequel les cellule ayant la même valeur ne soit pas fusionnées.
      par exemple:
      j'ai des société différentes avec pour chacune plusieurs contacts
      au lieu de répéter la société pour cahque contact il esr saisie pour le premier contact pour les autres qui suivent la cellule société est vide, et ainsi de suite jusqu'a la sté suivante...
      merci
      0
    4. salandership
       
      un exemple
      http://www.cijoint.fr/cjlink.php?file=cj201104/cijVwXy79O.xls
      0
    5. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Ah, ok
      Sub recopie() 
          Dim c As Range, v As Variant 
          For Each c In Selection 
              If c.Value = "" Then c = v Else v = c 
          Next c 
      End Sub

      Dans ton exemple tu sélectionne A2:A11 et tu lances la macro.

      eric
      0
  2. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Très claire.

    Tu n'as plus qu'à prendre ton courage à 2 mains et te mettre au travail !

    Si tu savais que tu allais devoir gérer une base de données, il ne fallait évidemment pas fusionner de cellules.

    Si c'est quelqu'un d'autre qui t'a refilé le bébé, préviens-le qu'il lui faudra de la patience, avant que tu ne remettes tout ça comme il faut, une cellule après l'autre ...
    -3