Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro test colonne et fusion des cellules

  • Initiateur de la discussion Initiateur de la discussion kris
  • 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 !

kris

XLDnaute Nouveau
Bonjour le forum,

A l'aide d'une macro, je souhaite tester les valeurs des cellules de la colonne D et lorsque la valeur d'une cellule est égale à '1' les cellules Dj à Jj fusionnent et la valeur 1 de la cellule Dj est remplacée par la valeur 2 dans la cellule fusionée (Dj:Jj).

Je sais réaliser le test de valeur dans la colonne D et la fusion de plusieurs cellules mais je ne sais pas relier le test de valeur et la fusion en boucle.

Merci d'avance pour votre aide,

Kris
 
Salut Kris,

Essaye ce code dans ta macro.

Code:
For i = 1 To Range('D65536').End(xlUp).Row 'de la ligne 1 à la dernière ligne de la colonne D
    If Cells(i, 4).Value = 1 Then
        Range('D' & i & ':J' & i).Select
        Selection.Merge
        ActiveCell.FormulaR1C1 = '2'
    End If
Next i

Bonne continuation


EDIT: ne tiens pas conte des nb&p ou qq chose du style, je sais pas ce que c'est

Message édité par: adebrux, à: 21/11/2005 15:22
 
Bonjour Kris, le forum

Oups AdeBrux, j'ai doublé ... mais j'ai la même chose (c'est rassurant pour Kris) A+ 😉

Voici un code te permettant de fusionner les cellules D à J si la valeur de la cellule D est 1. Cela pour toutes les cellules non vides de D.

Code:
Sub fusions()
Dim c As Range
Dim cpt As Integer

'pour toutes cellules non vides de D'
For Each c In Range('D2:D' & Range('D65536').End(xlUp).Row)
    
    'Tester la valeur'
    If c.Value = 1 Then
        'Sélectionner dans affirmative'
        Range(Cells(c.Row, 4), Cells(c.Row, 10)).Select
        
        'Centrer et fusionner la sélection'
        With Selection
            .HorizontalAlignment = xlCenter
            .Merge
        End With
        'Changer la valeur de la cellule et compter + 1'
        c.Value = 2
        cpt = cpt + 1
    End If
'Recommencer'
Next c

Range('D2').Select
'message'
MsgBox cpt & ' lignes modifiées'

End Sub

En espérant que c'est ce que tu voulais.
A+
😉 [file name=Kris.zip size=8805]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Kris.zip[/file]

Message édité par: zzr09, à: 21/11/2005 15:25 😉

Message édité par: zzr09, à: 21/11/2005 15:28
 

Pièces jointes

Bonsoir Kris, Arnaud, ZZR09, et à tout le forum,

Une 3ème solution pour le cas où ton tableau serait 'lourd' et que tu ne souhaiterais pas scanner les cellules une par une. C'est une macro avec la fonction Find...

Amicalement
Charly [file name=KrisV3.zip size=8478]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/KrisV3.zip[/file]
 

Pièces jointes

- 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
9
Affichages
524
Réponses
9
Affichages
168
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…