Reour à la ligne vba..

Résolu
Bonjour,

Je souhaiterai rajouter une valeur, avec un retour à la ligne ,au contenu de chaque cellule d'une plage .
Le problème c'est que les valeurs rajoutées se "rajoutent " à la suite ...: logique vous me direz.
Mais je voudrais que la valeur ajoutée remplace toujours celle d'avant sans modifier le contenu initial de la cellule .
Je vous joins un fichier pour plus de clarté .
https://www.cjoint.com/c/FLDpNTDONoy
Bien merci à vous

3 réponses

  1. Contributeur
    Bonjour,

    Pas bien compris...
    Mais je voudrais que la valeur ajoutée remplace toujours celle d'avant sans modifier le contenu initial de la cellule .
    Donc tu veux remplacer la dernière ligne d'une cellule ?
    Et sans modifier le contenu initial ça je ne sais pas faire. Pas clair ton truc...
    Si oui :
    Sub Bouton1_Clic()
        Dim c As Range, txt As String, ch
        txt = Sheets("Feuil1").Range("D3").Value
        For Each c In Sheets("Feuil1").Range("$G$9:$U$9")
            ch = Split(c, vbLf)
            If UBound(ch) > 0 Then
                ch(UBound(ch)) = txt
                c.Value = Join(ch, vbLf)
            End If
        Next
    End Sub

    ne remplace que s'il y a au moins 2 lignes.
    eric

    En essayant continuellement, on finit par réussir. 
    Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
    En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
    0
    1. Merci Eric

      Désolée pour mes explications pas claires .
      En fait :
      Sheets("Feuil1").Range("D3").Value
      est une variable qu'il faut rajouter dans la cellule qui contient déjà une valeur . ( Bruit , cuir, jour .....etc)
      Il faudrait que à chaque fois que la variable
      Sheets("Feuil1").Range("D3").Value
      change , elle est rajoutée dans la cellule à la place de l’ancienne variable .
      Merci
      0
      1. Contributeur
        A la place de quelle ancienne variable ?
        Fait un fichier plus varié, là tes cellules sont toutes identiques
        Et précises quelles cellules doivent changer avec le Avant, le Après en-dessous, et le pourquoi.
        0
    2. Je te joins un fichier plus explicatif
      https://www.cjoint.com/c/FLDsp7L3M4y
      merci
      0
      1. Contributeur Ambassadeur
        Suggestion :
        Option Explicit
        Sub Bouton1_Clic()
        Dim CELL As Range
        Dim position As Integer
        For Each CELL In Sheets("Feuil1").Range("$G$9:$U$9")
            position = InStr(CELL, vbCrLf)
            If position = 0 Then
                CELL.Value = CELL.Value & vbCrLf & Sheets("Feuil1").Range("D3").Value
            Else
                CELL = Left(CELL.Value, position + 1) & Sheets("Feuil1").Range("D3").Value
            End If
        Next
        End Sub
        
        0
      2. @yg_beGénialissime!!!!!!!!
        Du grand art .
        Merci et merci
        0