Copier / coller avec condition

Résolu
Bonjour tout le monde ;
je suis debutant en Vba et j 'ai besoin de faire une macro qui permet de faire copier coller avec condition :

En fait j'ai ma col A de la Feuil1 qui contient les articles :
exemple :
colA
Article1
Article1
Article1
Article2
Article2
Article3
Article4
Article4
.
.
je veux faire une macro qui permet de copier "Article1" dans la cellule (1:1) de la Feuil2cdu classeur , et puis elle compare la cellule (1:1) de Feuil1 (celle qu'on déjà copier dans A(1:1) de la Feuil2 ) avec les autres cellules de la meme colonne (col des artcles) une fois un autre article rencontré ,elle le copier pour le coller dans la cellule (5:1) de la feuil2 .........

exemple de resultat voulue :
Feuil2 ;
Cellule (1:1) -----> Article1
cellule(5:1) ------> Article2
cellule(10:1) -----> Article3
cellule (15:1) ----> Article4
Cellule (20:1) ---> Article4
.
.
.
.
.
Merci bcp de votre aide

4 réponses

  1. bonjour

    quelque chose comme ça devrait aller

    Option Explicit
    
    Private Sub CommandButton1_Click()
    Const limin1 = 1
    Const co1 = 1
    Const li2 = 1
    Const comin2 = 1
    Dim limax1 As Long, li1 As Long, nbart1 As Long
    Dim art1
    Dim co2 As Long
    limax1 = Sheets(1).Range("A1").End(xlDown).Row
    art1 = Sheets(1).Cells(1, 1).Value
    nbart1 = 1
    Sheets(2).Cells(li2, comin2).Value = art1
    For li1 = limin1 + 1 To limax1
      If Sheets(1).Cells(li1, co1).Value <> art1 Then
        art1 = Sheets(1).Cells(li1, co1).Value
        nbart1 = nbart1 + 1
        Sheets(2).Cells(li2, 5 * (nbart1 - 1)).Value = art1
      End If
    Next li1
    End Sub

    RQ. modifier les constantes selon les besoins

    bonne suite
    1. desolé, j'ai mal lu et confondu les lignes et les colonnes

      Option Explicit
      
      Private Sub CommandButton1_Click()
      Const limin1 = 1
      Const co1 = 1
      Const limin2 = 1
      Const co2 = 1
      Dim limax1 As Long, li1 As Long, nbart1 As Long
      Dim art1
      limax1 = Sheets(1).Range("A1").End(xlDown).Row
      art1 = Sheets(1).Cells(1, 1).Value
      nbart1 = 1
      Sheets(2).Cells(limin2, co2).Value = art1
      For li1 = limin1 + 1 To limax1
        If Sheets(1).Cells(li1, co1).Value <> art1 Then
          art1 = Sheets(1).Cells(li1, co1).Value
          nbart1 = nbart1 + 1
          Sheets(2).Cells(5 * (nbart1 - 1), co2).Value = art1
        End If
      Next li1
      End Sub
  2. Merci
    ccm81 pour ta réponse , maleureusement ça ne marche pas en fait elle copie just la première cellule de la feuil1 (A1) et elle la colle dans la cellule A1 de la feuil2 c'est tt .

    rq : il n 'est aucune erreur

    je ne comprent pas pourquoi ça ne marche pas

    Merci
    1. re

      es tu sur d'avoir transposé correctement le code
      un lien vers un exemple qui fonctionne

      http://www.cijoint.fr/cjlink.php?file=cj201103/cijoIoOgSW.xls

      bonne suite
      1. non non excuse moi , j été con hh . ça marche impec

        merci bcp