IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

[VBA W] : fusionner cellules vides dans tableau


Sujet :

VBA Word

  1. #1
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut [VBA W] : fusionner cellules vides dans tableau
    Bonsoir à tous,

    J'avais déjà obtenu une superbe réponse pour mon problème mais pour un exemple hors tableau. Et comme je n'arrive pas à faire le transfert, je vous expose mon problème :

    j'ai un énorme tableau avec des cellules vides que je veux fusionner avec la cellule qui est au-dessus dans la même colonne. Du style :

    pour le moment, j'ai :

    |----------|
    | 1 | 2 | 1 |
    |----------|
    | 0 | 2 | 1 |
    |----------|
    | 0 | 2 | 1 |
    |----------|
    | 2 | 2 | 1 |
    |----------|

    0 = cellule vide

    et ce que j'aimerais :

    |----------|
    | 1 | 2 | 1 |
    | |--------|
    | | 2 | 1 |
    | |--------|
    | | 2 | 1 |
    |----------|
    | 2 | 2 | 1 |
    |----------|

    Voilà, si quelqu'un avait une idée du code...

    en tout cas, j'avais de ce style façon paragraphe ici

    merci à celui ou celle qui sera inspiré !

    camzo

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Tu n'as pas essayé de modifier un peu le code pour fusionner deux cellules identiques ?

    C'est le même principe, sauf que pour le test, tu vérifies si les cellules sont vides et pas simplement identiques.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    ouais,je sais bien...

    voilà ce que j'ai fait pour le moment :

    j'ai un fichier world avec des répétitions :

    | contenu1 | contenu3 |
    | contenu1 | contenu4 |
    | contenu1 | contenu5 |

    je voulais toujours dans world 2007 obtenir :

    | contenu1 | contenu3 |
    | '''''''''''''''''''' | contenu4 |
    | '''''''''''''''''''' | contenu5 |

    NB : les ''' sont là uniquement pour mettre en forme l'exemple

    bref, je voulais une fusion des cellules identiques dans la colonne 1 sans que la colonne 2 soit altérée.

    Malheureusement, je n'ai pas réussi avec world 2007 car ma macro ne fonctionne qu'avec world 2003. C'est comme ça.

    j'ai alors exporter le fichier world sous excel 2007

    j'ai alors trouvé une macro qui me permettait justement de faire cette fusion. En voici le contenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Sub fusion()
     
    Cell_Départ = "A1"
    Dim Fin As Range, i As Long, J As Long, Col As Integer
    Dim ModeCalcul As Long
     
    With Application
    ModeCalcul = .Calculation
    .Calculation = xlCalculationManual
    .ScreenUpdating = False
    End With
     
    Col = Range(Cell_Départ).Column
    Set Fin = Range(Cell_Départ).End(xlDown)(2)
     
    On Error Resume Next
    Do
    i = J + 1
    J = Range(Cells(i, Col), Fin).ColumnDifferences(Cells(i, Col))(0).Row
    If Err Then Exit Do
    If J > i Then Range(Cells(i + 1, Col), Cells(J, Col)).ClearContents
    Loop
    If i < Fin.Row Then Range(Cells(i + 1, Col), Fin).ClearContents
     
    Application.Calculation = ModeCalcul
     
    End Sub
    là, j'ai enfin pu obtenir une partie de cette fusion en obtenant la disparition du contenu des cellules identiques !!!

    j'ai donc obtenu :

    | contenu1 | contenu3 |
    | '''''''''''''''''''' | contenu4 |
    | '''''''''''''''''''' | contenu5 |

    malheureusement, je n'ai pas réussi à fusionner... autrement dit, j'ai toujours les séparation entre cellules qui apparaissent. Voilà ce que je veux dire :

    | contenu1 | contenu3 |
    -----------------------
    | '''''''''''''''''''' | contenu4 |
    -----------------------
    | '''''''''''''''''''' | contenu5 |

    bref, je crois que je vais encore agir à la main (sélection des cellules > clic droit > fusionner).

    Tant pis, c'est comme ça !!!

    voilà voilà...

    camzo

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    La macro modifiée ne fonctionne pas ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    non, j'ai toujours des problèmes et je ne me suis pas remis dessus car je ne trouvais pas la faute....

    Merci quand même !!!!


    camzo


    PS : je poste un comm si je trouve quelque-chose d'autre mais, y a peu de chance à mon avis...

  6. #6
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Pour les cellules vides, j'ai un peu réfléchi, c'est une macro plus lourde qu'il n'y parraît.
    En effet, il faut marque la première cellule vide, vérifier les suivantes, si la suivante est vide, passer à la suivante.
    Si elle n'est pas vide, enlever la marque de la cellule marquée.
    Reprendre, si deux ou plus de cellules sont vides, les fusionner.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  7. #7
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    Décembre 2006
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 168
    Points : 101
    Points
    101
    Par défaut
    comme tu dis, c'est plus compliqué que ça... l'informaticien de la fac de béziers a tenté de me résoudre ça mais en vain... alors, je laisse tombé. Eh oui, je ne suis qu'un petit documentaliste !!! autrement dit, je me débrouille mais j'ai des limites. Mais bon, si tu es bloqué un jour n'importe où dans le monde et que tu n'as plus que ton ordi sous la main, n'hésites pas à résoudre cette macro !!!

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/11/2014, 10h49
  2. Réponses: 0
    Dernier message: 01/10/2010, 21h18
  3. [XL-2003] Les cellules (vides) dans un tableau croisé dynamique
    Par Mauna dans le forum Excel
    Réponses: 12
    Dernier message: 12/05/2009, 09h44
  4. Trouver les cellules vides dans un tableau de cellules
    Par ricololo dans le forum MATLAB
    Réponses: 12
    Dernier message: 13/11/2008, 15h11
  5. [Tableau] Griser / fusionner cellules vides
    Par razorlok dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/06/2008, 10h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo