Reour à la ligne vba..

Résolu/Fermé
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 - 29 déc. 2016 à 16:40
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 - 29 déc. 2016 à 20:42
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

eriiic Messages postés 24597 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 22 septembre 2024 7 235
Modifié par eriiic le 29/12/2016 à 17:34
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
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
29 déc. 2016 à 18:34
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
eriiic Messages postés 24597 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 22 septembre 2024 7 235
Modifié par eriiic le 29/12/2016 à 18:45
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
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
29 déc. 2016 à 19:16
Je te joins un fichier plus explicatif
https://www.cjoint.com/c/FLDsp7L3M4y
merci
0
yg_be Messages postés 23230 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 septembre 2024 1 538
29 déc. 2016 à 20:30
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
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33 > yg_be Messages postés 23230 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 septembre 2024
29 déc. 2016 à 20:42
Génialissime!!!!!!!!
Du grand art .
Merci et merci
0