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

XL 2016 Répéter le contenu d'une cellule en fonction d'une valeur

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 !

Sylvain21

XLDnaute Nouveau
Bonjour à tous,

Voici ma problématique que je n'arrive pas à solutionner :

Je souhaite répéter le contenu d'une cellule dans un certains nombre de cellules adjacentes en fonction d'un nombre de répétition.

En pj une description plus parlante des conditions à respecter.

Par avance merci

Cordialement
Sylvain
 

Pièces jointes

Bonsoir,
une approche moyennement fonctionnelle, il faut re selectionner la cellule à recopier
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("C7:H11")) Is Nothing Then
recopie = Cells(Target.Row, 9).Value
Select Case recopie
Case 0
Exit Sub
Case 1
Target.Offset(, -1) = Target.Value
Case 2
Union(Target.Offset(, -1), Target.Offset(, -2)) = Target.Value
Case 3
Union(Target.Offset(, -1), Target.Offset(, -2), Target.Offset(, -3)) = Target.Value
Case 4
Union(Target.Offset(, -1), Target.Offset(, -2), Target.Offset(, -3), Target.Offset(, -4)) = Target.Value
Case 5
Union(Target.Offset(, -1), Target.Offset(, -2), Target.Offset(, -3), Target.Offset(, -4), Target.Offset(, -5)) = Target.Value
End Select
End If
End Sub
 

Pièces jointes

Bonjour Sylvain21, st007, le forum

Une proposition en fonction personnalisée, compte le nombre de couleurs égales à la couleur de la cellule contenant la fonction.

Cordialement, @+
VB:
Function Nbr_Couleurs(Target As Range)
Dim Cel_Ref As Range, Nb_Coul&
Application.Volatile
For Each Cel_Ref In Target
    If Application.ThisCell.Interior.Color = Cel_Ref.Interior.Color Then Nb_Coul = Nb_Coul + 1
Next
Nbr_Couleurs = Nb_Coul
End Function
 

Pièces jointes

Bonjour Sylvain21, st007, Bernard,

Avec le double-clic :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [A7:H11]) Is Nothing Then Exit Sub 'plage à adapter
Dim prem As Range
Cancel = True
Set prem = Cells(Target.Row, Application.Max(Target.Column - Cells(Target.Row, 9), 1))
Target.Copy Range(prem, Target) 'copier-coller
End Sub
A+
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…