Créer une boucle avec itération

Bonjour à tous,

Voici mon problème. J'ai un excel composé de 2 onglets:

  • un onglet comprenant un tableau source appelé "source", qui contiendra à terme une cinquantaine de lignes
  • un onglet destination appelé "export"

Le tableau source contient dans l'ordre les colonnes suivantes;

- Tâche à réaliser colonne A

- Pays colonne B

- Région colonne C

- Ville colonne D

- Code bureau colonne E

- Référence client colonne F

Mon tableau export résume d'une phrase les différentes infos du tableau source

Par exemple La case A2 sera =

"Pour le client" rty36 "de la ville de" LYON "en Région" Rhone alpes " il faudra" Démonter les chapiteaux"

J'arrive a concatainer les textes ainsi que les valeurs extraites des differentes cellules du tableau source , mais je n'arrive pas à mettre en place la boucle. (je pense utiliser FOR)

nb: j ai utilisé des couleurs pour etre la plus claire possible dans la présentation de mon probleme, mais en réalité tout sera en noir et blanc.

Bonjour,

Merci de joindre un fichier avec quelques données significatives, le résultat attendu et tes préférences pour résoudre : Formule ou Macro.

@+

Bonjour,

Une piste, les résultats sont donnés dans une boite de message :

Sub Test()

    Dim Plage As Range
    Dim Cel As Range

    'défini la plage sur le colonne F de la feuille active à partir de F2
    With ActiveSheet: Set Plage = .Range(.Cells(2, 6), .Cells(.Rows.Count, 6).End(xlUp)): End With

    For Each Cel In Plage

        MsgBox "Pour le client " _
                & Cel.Value _
                & " de la ville de " _
                & Cel.Offset(, -2).Value _
                & " en région " _
                & Cel.Offset(, -3).Value _
                & " il faudra " _
                & Cel.Offset(, -5).Value

    Next Cel

End Sub

Bonjour,

Merci à Bernard et Theze pour vos premières réponses.

Le code que tu m as donné Thèze est tres bien , mais ce n'est pas dans une message box que je souhaite voir apparaître les messages.

je voudrai voir ce message apparaître dans une cellule.

Je joins le fichier excel pour que ma demande soit plus explicite.

Encore merci pour votre aide

17exmple-forum.xlsm (17.74 Ko)

Bonjour,

Donc voici ce que tu demande :

Sub Test()

    Dim FeSource As Worksheet
    Dim FeExport As Worksheet
    Dim Plage As Range
    Dim Cel As Range
    Dim Lig As Long

    Set FeSource = Worksheets("source")
    Set FeExport = Worksheets("Export")

    'défini la plage sur le colonne F de la feuille active à partir de F2
    With FeSource: Set Plage = .Range(.Cells(2, 6), .Cells(.Rows.Count, 6).End(xlUp)): End With

    For Each Cel In Plage

        With FeExport

            Lig = .Cells(.Rows.Count, 1).End(xlUp).Row + 1

            .Cells(Lig, 1).Value = "Pour le client " _
                                    & Cel.Value _
                                    & " de la ville de " _
                                    & Cel.Offset(, -2).Value _
                                    & " en région " _
                                    & Cel.Offset(, -3).Value _
                                    & " il faudra " _
                                    & Cel.Offset(, -5).Value

        End With

    Next Cel

End Sub

Un immense merci pour ton aide, ça marche super bien

Bonjour,

Merci de ton retour ! Je te souhaite de très bonnes fêtes.

Rechercher des sujets similaires à "creer boucle iteration"