Macro excel, copie sous condition

Résolu
cid2mizar Messages postés 19 Statut Membre -  
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'ai un petit probleme sous excel. J'ai a ma disposition un fichier dont les colonnes sont les suivantes :
- nom de deck
- nom de team
- nom de vendeur
- categorie de produit
- nom du produit
- nom du client

Chaque vendeur apparait plusieurs fois. Je souhaite creer un fichier excel dont la premiere partie serait fixe, constituee de toutes les colonnes ci dessus (sans la colonne client) mais avec l'ensemble des produits pour tous les vendeurs.
Ca ne doit pas sembler tres clair dit comme ca donc voici la macroque je souhaiterais realiser (je ne connais rien en VBA et en macro, je vous la met en melange algo/C, mes souvenirs de programation datent...)

j:=2

for i = 2 to 4586 do

if (cellule Ci <> cellule Ci-1) then
sheet2_celluleAj=Sheet1_celluleAi
sheet2_celluleBj=Sheet1_celluleBi
sheet2_celluleCj=Sheet1_celluleCi
j=j+23 (il y a 23 produits)
end
end

voila j'ai pas la moindre idee de comment ca marche en macro excel, si vous avez des idees sur comment faire ca.
J'ai lance un enregistrement de macro et j'ai obtenu ca

Sheets("Sheet1").Select
Range("A96:C96").Select
Selection.Copy
Sheets("Sheet2").Select
Range("A25").Select
ActiveSheet.Paste
Range("B33").Select

ca me donne comment fairel a copie mais je ne sais pas comment passer une cellule avec des adresses variables (ici i et j )

Merci d'avance
A voir également:

3 réponses

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

C'est bien d'avoir des souvenirs d'un autre langage alors je te transpose ton code :
Public Sub copie()
Dim i As Long
Dim j As Long
Dim W1 As Worksheet
Dim W2 As Worksheet
Set W1 = Worksheets("Sheet1")
Set W2 = Worksheets("Sheet2")
j = 2
For i = 2 To 4586
    If W1.Cells(i, 3) <> W1.Cells(i - 1, 3) Then
        W2.Cells(j, 1) = W1.Cells(i, 1)
        W2.Cells(j, 2) = W1.Cells(i, 2)
        W2.Cells(j, 3) = W1.Cells(i, 3)
        j = j + 23 ' (il y a 23 produits)
    End If
Next i
End Sub
0
cid2mizar Messages postés 19 Statut Membre 24
 
Genial merci !!!!

ca fait deux ans que j'ai pas mes le nez dans du code et pas moyen de trouver le moindre cours simple.
0
cid2mizar Messages postés 19 Statut Membre 24
 
ca marche nickel merci :)
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Merci de ton message et quand il n'y a qu'à encoder un organigramme bien pensé c'est facile !
0