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
1648154592136.png
 

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

Retour