Macro excel, copie sous condition

Résolu/Fermé
cid2mizar Messages postés 19 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 3 novembre 2010 - 28 févr. 2008 à 14:39
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 29 févr. 2008 à 10:22
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 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
29 févr. 2008 à 00:04
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 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 3 novembre 2010 24
29 févr. 2008 à 08:30
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 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 3 novembre 2010 24
29 févr. 2008 à 10:14
ca marche nickel merci :)
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
29 févr. 2008 à 10:22
bonjour

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