Salut Mutzik !
J'avais commencé une appli, mais comme tu as fini...Héhéhé....!!
J'ai modifié ton code légèrement, look at !
Option Explicit
Sub Comptage()
Dim nbMatieres As Integer, cpt1 As Integer
Sheets(2).Range('A7:B' & Range('B65536').End(xlUp)(2).Row).ClearContents
Sheets(1).Activate
nbMatieres = Range('IV3').End(xlToLeft).Column
For cpt1 = 3 To nbMatieres
If Cells(3, cpt1) > 0 Then
Sheets(2).Range('B65536').End(xlUp)(2) = Sheets(1).Cells(3, cpt1).Value
Sheets(2).Range('A65536').End(xlUp)(2) = Sheets(1).Cells(5, cpt1).Value
End If
Next cpt1
Range('A1').Select
End Sub
Sans 'Select' inutile
Nota : Le fait de mettre Sheets(2) à la place de Sheets('Feuil2'), permet à l'utilisateur de changer le nom de l'onglet sans perturber la macro.
De même, le fait d'avoir activer le Sheets(1) et de n'avoir pas activé ni selectionné d'autres 'Sheets', on peut aisément supprimer 'Sheets(1)' dans :
Sheets(2).Range('B65536').End(xlUp)(2) = Sheets(1).Cells(3, cpt1).Value
Sheets(2).Range('A65536').End(xlUp)(2) = Sheets(1).Cells(5, cpt1).Value
Et écrire :
Sheets(2).Range('B65536').End(xlUp)(2) = Cells(3, cpt1).Value
Sheets(2).Range('A65536').End(xlUp)(2) = Cells(5, cpt1).Value
@ +++
Moa
Message édité par: Moa, à: 06/05/2005 19:22
Message édité par: Moa, à: 06/05/2005 19:24
Message édité par: Moa, à: 06/05/2005 19:29