Detection de tableau et suppression des doublure et des cases vides

  • Initiateur de la discussion Initiateur de la discussion zed9i
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zed9i

XLDnaute Nouveau
Bonjour tous les membres du groupe

Je vous remercie d’avance pour votre aide et votre présence pour nous aider.

d'abord je suis débutant en macro, mais j'ai essayé de faire un effort 😕 avant de vous solliciter.

Mon problème se résume dans :

Je reçois un fichier Excel avec des tableaux qui n'ont pas la même taille ou la même
organisation avec toujours des cellules fusionnées. Donc, j'ai essayé en utilisant des macro de refaire la mise en forme du fichier pour qu'il soit lisible.


-La ligne ‘ .MergeCells = False ‘ annule la fusion. En ce moment-là, toutes mes cellules
se remplit de la même info que contient la cellule principale.

-la ligne ' Selection.ClearContents ' supprime les cellules doubler mais le problème que il faudra à chaque fois adapter la macro suivant les tailles des tableau reçus

- la macro à la fin pour supprimer les cellules vides ne marche pas

NB : je viens de mettre, en pièce jointe, un fichier Excel contenant:
* feuille 1 : exemple du fichier reçus
* feuille 2 : exemple du fichier après l'annulation de fusionnement
* feuille 3 : exemple du résultat souhaité

Ma demande est d’avoir une macro qui me permet d'annuler la fusion des différentes cellules
de toute la feuille, de supprimer toutes les doublures et d’avoir une bonne mise en forme
du fichier dans tous les différents cas de nbr et de taille différente des tableaux 😎 .
 

Pièces jointes

Re : Detection de tableau et suppression des doublure et des cases vides

Bonjour,

N'ayant pas tout le temps nécessaire pour réaliser cette macro, voici une approche
Code:
Sub xx()
l1 = ActiveCell.Row
c1 = ActiveCell.Column
While Cells(l1, c1) <> ""
    l1 = ActiveCell.Row
    c1 = ActiveCell.Column

    tmp = l1
    nbmerge = ActiveCell.MergeArea.Columns.Count
    While Cells(tmp, c1) <> ""
        tmp = tmp + 1
    Wend
    l2 = tmp - 1
    c2 = c1 + nbmerge - 1
    With Range(Cells(l1, c1), Cells(l2, c2))
        .Select
        .MergeCells = False
    End With
    With Range(Cells(l1, c1 + 1), Cells(l2, c2))
        .Select
        .Delete Shift:=xlToLeft
    End With
    c1 = c1 + 1
    Cells(l1, c1).Select
Wend
End Sub


il faut sélectionner la première cellule d'un tableau exemple E18 et exécuter cette macro

Reste à développer la détection d'un tableau

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
153
Retour