Reour à la ligne vba..

Résolu
julia Namor Messages postés 532 Statut Membre -  
julia Namor Messages postés 532 Statut Membre -
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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. julia Namor Messages postés 532 Statut Membre 33
     
    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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
  3. julia Namor Messages postés 532 Statut Membre 33
     
    Je te joins un fichier plus explicatif
    https://www.cjoint.com/c/FLDsp7L3M4y
    merci
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      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
      1. julia Namor Messages postés 532 Statut Membre 33 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Génialissime!!!!!!!!
        Du grand art .
        Merci et merci
        0