Titre du sujet : Re: Traitement de données automatisé par myDearFriend! le 12/07/2007 21:24:40
Re le fil,
Voici une solution d'après l'analyse que j'ai du problème pour ma part (j'ai essayé de préserver autant que possible la procédure originale) :
Sub Comment()
'declaration de variable "c" est une cellule
Dim c As Range
'déclaration d'une variable compteur (maxi = nombre de cellules de la plage source)
Dim N As Byte
'Boucle parcourant chaque Cellule du range AB15:AG31 sur la Feuil1
For Each c In Sheets("Feuil1").Range("AB15:AG31")
'Condition 1 Si valeur de "c" différent de vide alors
If c.Value <> "" Then
'j'incrémente le compteur d'une unité
N = N + 1
'Copier "c" dans le range A1:F16 de la Feuil2 à la Nième position dans cette plage
c.Copy Destination:=Sheets("Feuil2").Range("A1:F16").Item(N)
'Fin de Si
End If
' Valeur de "C" suivante
Next c
' Fin de boucle
End Sub
Modifications apportées à la procédure : J'ai ajouté une variable compteur "N" qui permet de ranger les données copiées au fur et à mesure dans la plage réceptriceJ'ai ajouté et revu certains commentaires (For Each/Next n'est pas une "fonction" mais un "bloc d'instructions" permettant de réaliser une boucle)Dans If UCase(c.Value) <> "" Then, j'ai supprimé la notion de Ucase() qui n'a semble t'il pas d'intérêt ici (Ucase est une fonction permettant de convertir une chaine en Majuscules)
Espérant avoir compris le sujet et t'avoir un peu aidé... N'hésite pas si tu as besoin d'un complément d'informations.
Cordialement,
|