Macro excel

Bonjour,

j'aimerais faire une petite manip sur un tableau excel. (je me suis appuyé sur une petite illustration ci-dessous) Ce que je souhaiterais faire c'est sur la premiere colonne, fusionner toutes les cellules adjacentes identiques, de sorte à ce que le tableau soit plus lisible. Je n'y connais presque rien en macro alors à l'aide SVP!!!! Merci bcp.
Voici grosso modo ce que je souhaitrerai :

**** avant la macro ********

colonne1 | colonne2 | colonne3 | colonne4 |
1 | a | j | s |
1 | b | k | s |
1 | c | l | t |
2 | d | m | f |
2 | e | n | v |
2 | f | o | w |
3 | g | p | x |
3 | h | q | y |
4 | i | r | z |

**** apres la macro ********

colonne1 | colonne2 | colonne3 | colonne4 |
| a | j | s |
1 | b | k | s |
| c | l | t |
| d | m | f |
2 | e | n | v |
| f | o | w |
3 | g | p | x |
| h | q | y |
4 | i | r | z |
Configuration: Windows 2000
Internet Explorer 6.0

2 réponses

  1. Salut,

    Ce que je te conseille de faire pour une macro, c'est de sélectionner les cellules à fusionner puis de simplement cliquer sur "Outils/Macro/Nouvelle macro".
    Ensuite tu lui donne un nom, une touche de raccourci (souvent bien pratique), tu cliques sur "Ok" puis normalement une petite fenêtre s'ouvre sur laquelle tu clique sur le bouton "Référence relative" (si la fenêtre ne s'ouvre pas, va la chercher sur "Affichage/Barres d'outils/Arrêter l'enregistrement".
    Enfin, tu cliques bouton de droite sur les cellules sélectionnées puis choisis "Format de Cellule" et dans l'onglet "Alignement", tu coches "Fusionner les cellules". Tu cliques sur "Ok" puis sur le bouton "Arrêter l'enregistrement" de la fenêtre concernant qui s'est ouverte toute seule tout à l'heure.

    Tu viens de créer une macro qui fusionne automatiquement les cellules que tu sélectionnes (utilise le raccourci que tu as choisi pour l'exécuter sinon va dans "Outils/Macro/Macros...").

    Si tu veux qu'en plus ta macro dès qu'elle trouve deux cellules adjacentes les fusionne, il faut aller dans de la programmation plus avancée.

    Bon courage.
    1. Contributeur
      Bonjour,
      Essaye cette macro
      Alt+F11 >> Insertion >> Module
      dans la nouvelle fenêtre tu colle le code ci-dessous.
      Tu met le curseur dans la macro et tu tape F5
      Sub MrgCellule()
      Dim i As Long, Cel As Variant, Deb As Long
          Application.DisplayAlerts = False 'Une seule fois suffit
          Sheets("feuil1").Select
          Cel = Cells(1, 1): Deb = 1
          For i = 1 To Range("A65536").End(xlUp).Row + 1
              If Cells(i, 1) <> Cel And i > Deb Then
                  Range(Cells(Deb, 1), Cells(i - 1, 1)).Select
                  With Selection
                      .HorizontalAlignment = xlCenter
                      .VerticalAlignment = xlCenter
                      .Merge
                  End With
                  Deb = i
                  Cel = Cells(i, 1)
              End If
          Next i
      End Sub

      Tu dit..
      A+