Dupliquer un nombre dans plusieurs lignes selon une police particulière

lapluchouet

XLDnaute Nouveau
Bonjour :)

Je sollicite à nouveau vos méninges...
Dans une colonne B, j'ai une liste de nombre (correspondant à des numéros de répondants) dans laquelle s'intercalent d'autres nombres, dans une police particulière (en gris et souligné), qui sont des codes que j'ai attribué aux réponses.
Je voudrais que ces codes soient répétés devant chaque ligne, jusqu'au prochain code gris souligné...

Je ne sais pas si je suis très claire.

Je joins un fichier pour mieux vous représenter la chose...

Merci d'avance :rolleyes:

Aude
 

Pièces jointes

  • Macro_Repetition.xlsx
    26.6 KB · Affichages: 38

Modeste

XLDnaute Barbatruc
Re : Dupliquer un nombre dans plusieurs lignes selon une police particulière

Bonjour lapluchouet (un avatar pareil, c'est de l'autopromotion ;)),

Pas certain de bien comprendre, mais teste ces quelques lignes (à coller dans la fenêtre de code de la feuille concernée) ... et puis tu verras
VB:
Sub répèteNum()
Columns(1).Insert
For lig = 1 To Cells(Rows.Count, 2).End(xlUp).Row
    If Cells(lig, 2).Font.Underline And Cells(lig, 2).Font.Color = 5855577 Then
        ligDep = lig
        ligne = lig
        Do
            ligne = ligne + 1
        Loop Until (Cells(ligne, 2).Font.Underline And Cells(ligne, 2).Font.Color = 5855577) Or ligne > Cells(Rows.Count, 2).End(xlUp).Row
        Range(Cells(ligDep + 1, 1), Cells(ligne - 1, 1)) = Cells(lig, 2)
        lig = ligne - 1
    End If
Next lig
End Sub
Tu noteras que tes nombres sont en colonne A dans "ce que j'ai" la macro insère donc une colonne devant celle-ci.
 

CPk

XLDnaute Impliqué
Re : Dupliquer un nombre dans plusieurs lignes selon une police particulière

Bonjour à toutes et à tous, une autre proposition.


Code:
Sub macro1()
Dim b(), c As Range, n%, i%
i = 1
Feuil5.Columns(1).Insert
With Feuil5
While .Cells(i, 2) <> ""
Set c = .Cells(i, 2)
If c.Font.Underline = 2 And c.Font.Color = 5855577 And IsNumeric(c) Then
n = n + 1: ReDim Preserve b(n): b(n) = c.Row
End If
i = i + 1
Wend
n = n + 1: ReDim Preserve b(n): b(n) = Feuil5.Cells(Rows.Count, 2).End(xlUp).Row
For i = 1 To UBound(b) - 1
.Cells(b(i), 1) = .Cells(b(i), 2)
.Cells(b(i), 1).AutoFill Range(.Cells(b(i), 1), Cells(b(i + 1), 1)), 1
.Cells(b(i), 1).ClearContents
If .Cells(b(i), 2).Offset(-1).Font.Underline = 2 Then .Cells(b(i), 1).Offset(-1).ClearContents
Next i
End With
With Feuil5.Columns(1)
.Font.Underline = 2
.Font.Color = 5855577
End With
End Sub
 

Pièces jointes

  • Sans titre.jpg
    Sans titre.jpg
    64 KB · Affichages: 31
  • Sans titre.jpg
    Sans titre.jpg
    64 KB · Affichages: 32

lapluchouet

XLDnaute Nouveau
Re : Dupliquer un nombre dans plusieurs lignes selon une police particulière

Hello !

Hehe mon avatar est lié à mon surnom... Audette... la plus chouette ! BREF...!
C'était la séquence intime ! :D

Elle est déjà nickel ta solution, pour quelqu'un qui n'est pas sûr d'avoir compris ! haha !
Et crois-tu que l'on pourrait laisser une cellule vide quand on est devant les lignes écrites en noir et soulignées ?
C'est-à-dire remplir exactement comme ce que tu as fait sauf ces cellules ??

Merkiii beaucoup

Aude(tte)
 

Modeste

XLDnaute Barbatruc
Re : Dupliquer un nombre dans plusieurs lignes selon une police particulière

Re-bonjour,
Salut CPk,

Dans l'enthousiasme, tu n'as pas vu la proposition de CPk ?? D'après l'image qu'il avait jointe, son code respectait ta demande !?

Ceci devrait fonctionner aussi:
VB:
Sub répèteNum()
Columns(1).Insert
For lig = 1 To Cells(Rows.Count, 2).End(xlUp).Row
    If Cells(lig, 2).Font.Underline And Cells(lig, 2).Font.Color = 5855577 Then
        ligDep = lig
        ligne = lig
        Do
            ligne = ligne + 1
        Loop Until (Cells(ligne, 2).Font.Underline And Cells(ligne, 2).Font.Color = 5855577) Or ligne > Cells(Rows.Count, 2).End(xlUp).Row
        Range(Cells(ligDep + 1, 1), Cells(ligne - 1, 1)) = Cells(lig, 2)
        If Cells(ligDep - 1, 2).Font.Underline <> -4142 Then Cells(ligDep - 1, 1) = ""
        lig = ligne - 1
    End If
Next lig
End Sub
 

lapluchouet

XLDnaute Nouveau
Re : Dupliquer un nombre dans plusieurs lignes selon une police particulière

Effectivement, je ne l'avais pas vue !! C'était trop d'émotions d'un coup !! hehe !
Je pense que mon navigateur n'avait pas actualisé en temps réel ! Sorry !

C'est parfaitement, parfait !!

Un ENORME merci à vous deux !!!

Aude
 

lapluchouet

XLDnaute Nouveau
Re : Dupliquer un nombre dans plusieurs lignes selon une police particulière

HAHA, vous êtes insatiables... ;)
J'ai d'autres macros pour la suite mais de manière indépendantes.
Je vous prépare un fichier ce soir pour vous montrer, si ça vous fait plaisir d'y réfléchir ! hehe

Belle journée.

Aude
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260