Bon, j'ai lu des examples ici et ailleurs, mais je n'arrive pas à faire fonctionner ce que je veux... Je suis débutant, très débutant, pas programmeur du tout.
voici mon code "de base". Ça fonctionne à merveille pour copier la première ligne de mes données.
il y a des choses que j'ai essayé mais comme je n'arrivais pas à compléter le code correctement je l'ai mis en commentaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Sub copie_quantité() 'copier les quantités non nulles en vue de l'impression ' Do Until Selection.Value = "" Dim CQ As Long CQ = Worksheets("Nouveau projet").Range("K70").Value If CQ <> 0 Then Range("J70:L70").Copy Range("J11").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.Offset(14, 0).Select Else Selection.Offset(1, 0).Select 'Exit Do End If
Bon, en fait ce que je veux faire précisément:
- J'ai un tableau des principaux matériaux requis sur un projet, allant de J69 à L77*. Il est possible que le tableau dépasse la ligne 77 dans le futur.
- je veux vérifier dans chaque ligne de la colonne K (début K70) si la valeur est supérieur à 0.
- Si oui, copier le range de cette ligne de J à L sur la plage J11.L11, les valeurs uniquement.
-Je veux que la macro continu la même opération sur les lignes suivantes jusqu'à qu'elle atteigne une cellule Kx vide, et que chaque fois qu'elle rencontre une celle Kx non vide, elle copie la plage Jx.Lx sur Jj.Lj.
J'ai pris ce code ailleurs que j'ai essayé d'adapter pour mes besoins, mais je n'y arrive pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Set i = Sheets("Nouveau projet") Dim d Dim j d = 10 j = 70 Do Until IsEmpty(i.Range("Q" & j)) If i.Range("K" & j) <> 0 Then d = d + 1 Range("J"&j:"L"&j).Copy¸-->erreur 'e.Rows(d).Value = i.Rows(j).Value End If j = j + 1 Loop End Sub
Donc, que dois-je faire?
*Les titres sont sur la ligne 69.
J=[Détail des matériaux] K=[Quantité] L=[Quantité approx.]
Partager