Concatener plusieurs cellules dans une boucle [Résolu]

Signaler
Messages postés
32
Date d'inscription
jeudi 5 décembre 2019
Statut
Membre
Dernière intervention
10 juillet 2020
-
Messages postés
32
Date d'inscription
jeudi 5 décembre 2019
Statut
Membre
Dernière intervention
10 juillet 2020
-
Bonjour, bonsoir!

J'ai écris ce petit code pour récupérer des données dans une Feuille de calcul, mais je ne suis pas assez expérimenté pour pouvoir récupérer ces données et les coller sous la forme d'une phrase, dans une autre cellule du même fichier.

je vous mets le code:


Sub Recup()
Dim TopT As Range
Dim cel As Range

Set TopT = Feuil1.Range("A2:A10")
For Each cel In TopT
    If cel <> "" Then
        If cel = "" Then
            Exit For
        Else
            cel.Select
            ActiveCell.Offset(0, 0).Copy
            ActiveCell.Offset(0, 1).Copy
            ActiveCell.Offset(0, 2).Copy
                If ActiveCell.Offset(0, 4) = "" Then
                    Application.CutCopyMode = xlCut
                    GoTo 1
                Else
                    ActiveCell.Offset(0, 4).Copy
                    ActiveCell.Offset(0, 10).Copy
                End If
            ActiveCell.Offset(0, 15).Copy
            Feuil1.Range("U11").End(xlUp).Offset(1, 0).Select
            Selection.PasteSpecial
            Application.CutCopyMode = xlCut
        End If
    End If
1
Next cel
End Sub


Ce que je souhaite, c'est de grouper les Activecell.Offset(x, x).Copy, ou pouvoir récupérer ces données qui sont forcément dans un dossier temporaire ou autre, et les insérer dans une phrase du genre:
La porte du xxxx a été changé le: xxxx, à: xxxx, par M xxxx.
J'espère avoir été assez claire dans mon exposé. Je vous remerci d'avance pour l'aide.

2 réponses

Messages postés
86
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
11 juillet 2020
12
Bonjour
J'espère avoir répondu à ton problème.....

Sub Recup()
Dim TopT As Range, cel As Range, mavar As String
Set TopT = Feuil1.Range("A2:A10")
mavar = ""
Columns(21).ClearContents
For Each cel In TopT
If cel <> "" Then
If cel = "" Then
Exit For
Else
cel.Select
mavar = "La porte du " & ActiveCell.Offset(0, 0)
mavar = mavar & " a été changé le: " & ActiveCell.Offset(0, 1)
mavar = mavar & ", à: " & ActiveCell.Offset(0, 2)
If ActiveCell.Offset(0, 4) = "" Then
GoTo 1 'decale d'une ligne les resultats???
Else
mavar = mavar & ", par M " & ActiveCell.Offset(0, 4)
mavar = mavar + ActiveCell.Offset(0, 10)
End If
mavar = mavar + ActiveCell.Offset(0, 15)
Feuil1.Range("U11").End(xlUp).Offset(1, 0).Value = mavar
End If
End If
1
Next cel
End Sub


A+ François
Messages postés
32
Date d'inscription
jeudi 5 décembre 2019
Statut
Membre
Dernière intervention
10 juillet 2020

C'est exactement cela dont j'avais besoin. Merci grandement.
Messages postés
32
Date d'inscription
jeudi 5 décembre 2019
Statut
Membre
Dernière intervention
10 juillet 2020

Bonjour François.
Toutes mes excuses pour ma réponse tardive. Je te remercie déjà de m'avoir répondu, mais avec les circonstances sociales je n'ai pas eu trop de temps ces jours-ci. je vais essayer ce que tu m'as envoyé et je te dis si c'est ok.