Copier cellules d'une colonne entre 2 lignes spécifiques sur des lignes

Bonjour à tous,

J'ai un fichier avec 2 feuilles.

La première contient une colonne décrivant des produits. La première ligne d'un produit commence par "PRODUIT" les lignes suivantes décrivent le produit. Puis on passe au produit suivant.

Je voudrais copier sur une deuxième feuille chaque ligne correspondant au PRODUIT ALPHA sur la ligne 1, celles du PRODUIT BETA sur la ligne 2, etc.

Je joins un fichier illustrant la feuille de départ (Feuil1) et la feuille à laquelle je souhaite arriver (Feuil2).

Merci à tous pour votre aide précieuse :)

Delf71

Bonjour et bienvenu sur Exel Pratique

Ci joint ma solution par macro

A+ François

Bonjour Fanfan38,

Merci infiniment. J'ai une erreur sur la ligne col = Sheets("Feuil2").Cells(lig, Columns.Count).End(xlToLeft).Column + 1 après le ELSE.

Avez-vous une idée ?

Non, perso je n'ai pas d'erreur...

La feuille s'apelle bien "Feuil2"

Cette ligne défini la dernière colonne vide de la ligne +1

A+ François

Bonsoir Delf71, fanfan38, le forum,

L’erreur se produit si on lance la macro depuis la Feuil2....

Option Explicit

Sub traitement()
 Dim i As Long, lig As Long, col As Integer
  Sheets("Feuil2").Cells.Clear
  Application.ScreenUpdating = False
   With Sheets("Feuil1")
    For i = 1 To .Range("A" & Rows.Count).End(xlUp).Row
     If Left(.Range("A" & i).Value, 7) = "PRODUIT" Then
      lig = Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row + 1
       Sheets("Feuil2").Range("A" & lig).Value = .Range("A" & i)
     Else
      col = Sheets("Feuil2").Cells(lig, Columns.Count).End(xlToLeft).Column + 1
       Sheets("Feuil2").Cells(lig, col).Value = .Range("A" & i).Value
     End If
    Next i
   End With
End Sub

Cordialement,

Un grand merci à vous 2.

Je vous prie d'accepter mes excuses, mais je viens de trouver la notification de réponse dans mes spams. D'où mon silence.

La macro fonctionne parfaitement et j'ai appris une chose de plus :).

Rechercher des sujets similaires à "copier colonne entre lignes specifiques"