Rapport de message :*
 

Traitement de données automatisé

Titre du sujet : Traitement de données automatisé
par Megaolive le 12/07/2007 16:34:01

Bonjour à tous,

Je connais bien Excel mais hélas, j'ai beaucoup de mal à me plonger dans la logique propre au code VBA pour écrire des macros "propres".

Souhaitant combler mes lacunes petit à petit,
je souhaite réaliser un traitement simple mais qui (il me semble) permet d'approcher quelques concepts propres à la rédaction de macro.
( constantes, variables, fonctions...)



Je dispose d'un classeur qui a 2 feuilles :
WS1 = Data
WS2= Synthesis

Sur WS1, voici une représentation de la table affichée "gestion de commentaires":

Année(s'applique à toute la table)

.................Mois1.................Mois1 ......................MoisN...
.................Pays1.................Pays2
Service1...."Commentaire"....."Commentaire"

Service2...."Commentaire"....."Commentaire"

Service N ...

La table a un périmètre défini et figé.
( Une utopie mais simplifions, simplifions pour bien comprendre ,))


Sur WS2, j'ai une page blanche.

Mon Objectif est de "scanner" les différent commentaires saisis dans la table source dans WS1 et de recopier chacun de ses commentaires dans une cellule de la WS2.
Une subtilité est que je souhaite "sauter" les cellulles qui ne contiennent pas de commentaires.

L'ambition de ma macro est de générer une liste synthétique des commentaires en appliquant un formattage particulier.

Voici ce que j'ai réussi à produire pour l'instant :

Option Explicit

Sub Comment
()

'declaration de variable "c" est une cellule
Dim c As Range

'
declaration de fonctionpour chaque Cellule du range AB15:AG31 
For Each c In Sheets("WS1").Range("AB15:AG31")

'Condition 1 Si valeur de "c" différent de vide alors
If UCase(c.Value) <> "" Then

'
Copier "c" dans le range A1:F16
c
.Copy Destination:=Sheets("WS2").Range("A1:F16")


'Fin de Si
End If

Valeur de "C" suivante
Next

' Fin de fonction
End Sub



Ce qui fonctionne : La tableau est bien scanné du début à la fin

Ce qui ne fonctionne pas : Seule la dernière cellule commentaire renseignée est recopiée sur ma feuille destination dans toute la zone destination définie...


Je ne cherche pas du code pré maché mais bel et bien à comprendre la logique de fond de création d'une macro "propre"
N'hésitez pas à corriger mes commentaires si ma lecture de mon code n'est pas la bonne.
Tout exemple proche serait très apprécié.

Merci d'avance pour vos conseils.