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

eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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
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
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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
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
salandership
 
un exemple
http://www.cijoint.fr/cjlink.php?file=cj201104/cijVwXy79O.xls
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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
salandership
 
:-(
merci qd mme
0
Raymond PENTIER Messages postés 71871 Date d'inscription   Statut Contributeur Dernière intervention   17 402
 
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