Note: The other languages of the website are Google-translated. Back to English

Comment fusionner rapidement des lignes adjacentes avec les mêmes données dans Excel?

Supposons que vous ayez une feuille de calcul avec les mêmes données dans les lignes adjacentes et que vous souhaitiez maintenant fusionner les mêmes cellules en une seule cellule, afin que les données soient nettes et belles. Comment fusionner des lignes adjacentes avec les mêmes données rapidement et facilement? Aujourd'hui, je vais vous présenter un moyen rapide de résoudre ce problème.


Fusionner les lignes adjacentes des mêmes données avec le code VBA

Bien sûr, vous pouvez fusionner les mêmes données avec Fusionner et centrer commande, mais s'il y a des centaines de cellules à fusionner, cette méthode prendra du temps. Ainsi, le code VBA suivant peut vous aider à fusionner facilement les mêmes données.

1. Maintenez le ALT + F11 clés, et il ouvre le Microsoft Visual Basic pour applications fenêtre.

2Cliquez sur insérer > Moduleet collez la macro suivante dans le Modulefenêtre.

Sub MergeSameCell()
'Updateby Extendoffice
Dim Rng As Range, xCell As Range
Dim xRows As Integer
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xRows = WorkRng.Rows.Count
For Each Rng In WorkRng.Columns
    For i = 1 To xRows - 1
        For j = i + 1 To xRows
            If Rng.Cells(i, 1).Value <> Rng.Cells(j, 1).Value Then
                Exit For
            End If
        Next
        WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge
        i = j - 1
    Next
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

3. Puis appuyez sur F5 pour exécuter ce code, une boîte de dialogue s'affiche à l'écran pour sélectionner une plage avec laquelle travailler. Voir la capture d'écran:

doc fusionner les mêmes cellules 2

4. Puis clique OK, les mêmes données de la colonne A seront fusionnées. Voir la capture d'écran:

doc fusionner les mêmes cellules 1


Fusionner les lignes adjacentes des mêmes données avec Kutools for Excel

Avec la Fusionner les mêmes cellules utilité de Kutools pour Excel, vous pouvez rapidement fusionner les mêmes valeurs dans plusieurs colonnes en un seul clic.

Kutools pour Excel : avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation en 30 jours. 

Après l'installation de Kutools pour Excel, vous pouvez procéder comme suit:

1. Sélectionnez les colonnes pour lesquelles vous souhaitez fusionner les lignes adjacentes avec les mêmes données.

2Cliquez sur Kutools > Fusionner et fractionner > Fusionner les mêmes cellules, voir capture d'écran:

3. Et puis les mêmes données dans les colonnes sélectionnées ont été fusionnées dans une cellule. Voir la capture d'écran:

doc fusionner les mêmes cellules 4

Cliquez pour télécharger Kutools pour Excel et un essai gratuit maintenant!

Pour en savoir plus, veuillez visiter ce Fusionner les mêmes cellules fonction.


Démonstration: fusionnez les mêmes cellules dans une cellule ou annulez la fusion pour remplir les valeurs en double:

Kutools pour Excel: avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation dans 30 jours. Téléchargez et essayez gratuitement maintenant!

Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (43)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Comment répliquer la macro VBA pour fusionner des cellules adjacentes dans des colonnes au lieu de lignes ? Merci
Ce commentaire a été minimisé par le modérateur sur le site
Violeta, je duplique la ligne (ci-dessous). eg eg try try eg eg try try Et changez le code en ceci : Next WorkRng.Parent.Range(Rng.Cells(1, i), Rng.Cells(1, j - 1)).Merge i = j - 1 It fusionné la ligne ci-dessus avec "par exemple" et "essayer"
Ce commentaire a été minimisé par le modérateur sur le site
pour tous ceux qui essaient encore d'y parvenir, je pense que je l'ai. Début du code ******************************** ***** Sub MergeSameCell() 'Updateby20131127 Dim Rng As Range, xCell As Range Dim xRows As Integer xTitleId = "MergeSimilar" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address , Type :=8) Application.ScreenUpdating = False Application.DisplayAlerts = False 'xRows = WorkRng.Rows.Count xCols = WorkRng.Columns.Count 'Pour chaque Rng dans WorkRng.Columns ' For i = 1 To xRows - 1 ' For j = i + 1 To xRows ' If Rng.Cells(i, 1).Value Rng.Cells(j, 1).Value Then ' Exit For ' End If ' Next ' WorkRng.Parent.Range(Rng.Cells(i , 1), Rng.Cells(j - 1, 1)).Merge ' i = j - 1 ' Next 'Next For Each Rng In WorkRng.Rows For i = 1 To xCols - 1 For j = i + 1 To xCols If Rng.Cells(1, i).Value Rng.Cells(1, j).Value Then Exit For End If Next WorkRng.Parent.Range(Rng.Cells(1, i), Rng.Cells(1, j - 1)).Merge i = j - 1 Next Next Application.DisplayAlerts = True Appl ication.ScreenUpdating = True End Sub ************************************* Fin de code IE Modifier simplement le code pour échanger toutes les références de ligne pour les références de colonne
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup!!! m'a aidé dans un moment crucial
Ce commentaire a été minimisé par le modérateur sur le site
Cela m'a été utile tant de fois :) Merci beaucoup, cela m'a fait gagner beaucoup de temps de travail. J'ai une petite demande. J'essaie de trouver le moyen de faire la même fusion, mais lorsqu'il y a des cellules vides sous chaque valeur, fusionner chaque cellule avec toutes les cellules vides ci-dessous. Comment puis-je modifier la macro ? Merci d'avance
Ce commentaire a été minimisé par le modérateur sur le site
Essayez ce sous-code MergeSameCell() Dim Rng As Range, xCell As Range Dim xRows As Integer xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type := 8) Application.ScreenUpdating = False Application.DisplayAlerts = False xRows = WorkRng.Rows.Count Pour chaque Rng dans WorkRng.Columns For i = 1 To xRows - 1 For j = i + 1 To xRows If Rng.Cells(i, 1 ).Valeur Rng.Cells(j, 1).Value Puis sortie pour fin si suivant Si non vide(Rng.Cells(i, 1).Valeur) ou non vide(Rng.Cells(j - 1, 1).Valeur ) Then WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge End If i = j - 1 Next Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sous
Ce commentaire a été minimisé par le modérateur sur le site
essayez ce code Sub MergeSameCell() Dim Rng As Range, xCell As Range Dim xRows As Integer xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:= 8) Application.ScreenUpdating = False Application.DisplayAlerts = False xRows = WorkRng.Rows.Count Pour chaque Rng dans WorkRng.Columns For i = 1 To xRows - 1 For j = i + 1 To xRows If Rng.Cells(i, 1 ).Valeur Rng.Cells(j, 1).Value Puis sortie pour fin si suivant Si non vide(Rng.Cells(i, 1).Valeur) ou non vide(Rng.Cells(j - 1, 1).Valeur ) Then WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge End If i = j - 1 Next Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sous
Ce commentaire a été minimisé par le modérateur sur le site
Si j'ai le même nom, mentez Raju 1000 Raju 2000 Monu 100 Monu 200 Alors comment puis-je faire un nom de marge avec un montant
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour lors de l'exécution de cette macro, j'obtiens "l'erreur définie par l'application ou définie par l'objet" à la ligne WorkRng.Parent.Range(rng.Cells(i, 1), rng.Cells(j - 1, 1)).Merge Any des idées comment résoudre ce problème? Cordialement, Michal
Ce commentaire a été minimisé par le modérateur sur le site
J'obtiens la même erreur. avez-vous déjà compris cela? si vous le faites, comment avez-vous fait? Merci
Ce commentaire a été minimisé par le modérateur sur le site
Je reçois la même erreur
Ce commentaire a été minimisé par le modérateur sur le site
Je laisse ici le script modifié pour qu'il fusionne les cellules ci-dessous avec la même valeur ou avec une cellule vide : Sub MergeSameCell() 'Updateby20131127 Dim Rng As Range, xCell As Range Dim xRows As Integer xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8) Application.ScreenUpdating = False Application.DisplayAlerts = False xRows = WorkRng.Rows.Count Pour chaque Rng dans WorkRng.Columns For i = 1 To xRows - 1 For j = i + 1 To xRows If Rng.Cells(j, 1).Value "" Then If Rng.Cells(i, 1).Value Rng.Cells(j, 1).Value Then Exit For Fin si Fin si suivant WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge i = j - 1 Suivant Suivant Application.DisplayAlerts = Vrai Application.ScreenUpdating = Vrai Sous-titre de fin
Ce commentaire a été minimisé par le modérateur sur le site
Salut s'il vous plaît aider. J'ai un problème avec le code, avec cette ligne. Quelque chose ne va pas? Si Rng.Cells(j, 1).Value "" Alors
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour à tous. Vous devriez avoir : if Rng.Cells(j, 1).Value = "" then...
Ce commentaire a été minimisé par le modérateur sur le site
Fusion agréable. Mais cela nécessite de spécifier la plage lors de l'exécution du code. Je souhaite spécifier la plage, c'est-à-dire B1: B50 dans le code vba. Et en faisant l'alignement en haut à gauche, mais comment s'il vous plaît aider.
Ce commentaire a été minimisé par le modérateur sur le site
Lors de l'exécution du code ci-dessus, une erreur de compilation s'affiche : erreur de syntaxe. Dans la ligne où "" est utilisé et la ligne inférieure de ceci.
Ce commentaire a été minimisé par le modérateur sur le site
Je rencontre moi aussi ce problème avec cette ligne. Si Rng.Cells(j, 1).Value "" Alors Quelqu'un peut-il aider ?
Ce commentaire a été minimisé par le modérateur sur le site
bonjour, Comment puis-je mettre la plage automatiquement sans intervention de l'utilisateur
Ce commentaire a été minimisé par le modérateur sur le site
Je suis désolé mais j'ai demandé à quelqu'un d'autre de faire le script pour moi, je n'ai aucune connaissance pour vous aider avec les modifications.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Monsieur, . J'essaie le code vba mais ça ne marche pas. Message d'erreur pour.408. Surtout que le commentaire WorkRng.Parent. Plage(rng.Cells (i, 1), rng.Cells(j - 1, 1)).Fusionner. Merci d'envoyer la solution. Je passe beaucoup de temps à fusionner les documents. Je suis surtout fusionné ce format de cellules C20059290. Merci et salutations Purusothaman. C
Ce commentaire a été minimisé par le modérateur sur le site
Cher monsieur, . J'utilise le code vba pour la feuille Excel pour les cellules de fusion. Cela ne fonctionnait pas est venu pour l'erreur 408. En particulier ce code WorkRng.Parent. Plage(rng.Cells (i, 1), rng.Cells(j - 1, 1)).Fusionner. Donnez la solution. Merci et salutations Purusothaman
Ce commentaire a été minimisé par le modérateur sur le site
Salut, quelqu'un peut-il instruire avec l'ingénierie inverse - démarquage des cellules avec la même valeur pour tous.
Ce commentaire a été minimisé par le modérateur sur le site
Salut, Le makro fonctionne, mais maintenant quand je veux filtrer sur la colonne A, seules les premières informations de la colonne B applicables à la colonne A sont visibles. En regardant l'exemple donné dans le makro, si je veux filtrer le lundi après la fusion, seul Nicol s'affichera et aucune information de Lucy et Lily ne sera affichée. Y a-t-il une ligne que je peux ajouter pour éviter cela?
Ce commentaire a été minimisé par le modérateur sur le site
si vous voulez vraiment filtrer, fusionner les cellules ne vous aidera pas.
Ce commentaire a été minimisé par le modérateur sur le site
In EXCEL INPUT NAME PRO1 PRO2 PRO3 A B C output A PRO1 A PRO2 A PRO3 B PRO1 B PRO2 B PRO3 C PRO1 C PRO2 C PRO3
Ce commentaire a été minimisé par le modérateur sur le site
Cela a été vraiment utile et m'a permis de gagner du temps dans une plus grande mesure
Ce commentaire a été minimisé par le modérateur sur le site
Le code VBA peut-il être modifié pour obtenir la même chose pour la fusion entre les colonnes (par opposition aux lignes vers le bas, comme ci-dessus), puis répéter pour toutes les lignes ?
Ce commentaire a été minimisé par le modérateur sur le site
Utilisez le code ci-dessus puis transposez le résultat
Ce commentaire a été minimisé par le modérateur sur le site
Très utile !! Merci beaucoup
Ce commentaire a été minimisé par le modérateur sur le site
Oh mon pote, tu me fais gagner beaucoup de temps. Merci!!!!
Ce commentaire a été minimisé par le modérateur sur le site
Dans la ligne de code VBA ci-dessus numéro 19 "i=j-1 "
comment cela va-t-il affecter notre logique de toute façon ? J'ai supprimé cela et je pouvais toujours obtenir le même résultat!
Un but spécifique pourquoi il est présent?
Ce commentaire a été minimisé par le modérateur sur le site
C'est pour limiter la valeur i à la dernière ligne.
Merci de ne pas tenir compte de ce post !
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés