Pourcourt d'un tableau en vba

mkt2001 Messages postés 7 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 10 mai 2005 - 15 mars 2005 à 16:35
ramontac Messages postés 9 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 17 mars 2005 - 17 mars 2005 à 02:20
Bonjour a tous,


J'ai un petit problème, je travaille avec excel et VBA et j'ai un tableau de ce style:
A B C D
1 ww xx yy zz
2 yy zz
3 aa bb cc dd
4 bb cc dd

(J'espere que ca donnera pas trop mal)

Je voudrai parcourir le tableau cellule par cellule et chaque fois qu'une cellule est vide, je voudrai la remplir avec la valeur de la cellule du dessus. (ex en A2 --> ww et en A4 --> aa)
Je ne sais pas trop comment faire...
Deux boucles for p-etre??
Merci d'avance pour votre aide...

A bientot

mkt2001

4 réponses

ramontac Messages postés 9 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 17 mars 2005
15 mars 2005 à 22:05
Salut,

Bon pour l'algorithme c'est pas trop compliqué

Comme tu l'as deviné il te faut deux boucles imbriquées puisque c'est un tableau à deux dimensions

Moi je te conseil de de parcourir colonne par colonne et sauvegarder la valeur précedemment analysé

Donc ca donne un truc de ce style tu verifiera la syntaxe
Dim ijprec

For i = A To B 'Deroule les colonnes
valprec = "" 'La variable doit a chaque fois etre initialisée
For j = 1 To 4 'Deroule les lignes
If ij = "" then
ij = valprec 'Si la case est libre on lui affecte la valeur précedente
End if
valprec = ij 'Sauvegarde de la valeur de la case
Next j
Next i

Voila reste a refaire la syntaxe pour ton appli et ca marche

BOn courage
0
mkt2001 Messages postés 7 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 10 mai 2005
16 mars 2005 à 08:29
Merci Ramontac, il ne me reste plus que un problème à résoudre:
Pour l'exemple j'ai mis 4 lignes et 4 colonnes mais cette zonne de travail peux varier à chaque éxécution. Comment pourait-ont faire pour que les deux boucles 'for' en tiennent compte. J4ai éssayer un truc du genre :

For i = 0 To Columns.Count
For j = 112 To Rows.Count
...

Mais ce systeme passe en revue les 65535 lignes et toutes les colonnes de la feuille!

mkt2001
0
mkt2001 Messages postés 7 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 10 mai 2005
16 mars 2005 à 15:30
Problème résolu
0
ramontac Messages postés 9 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 17 mars 2005
17 mars 2005 à 02:20
Salut mkt2001,

J'etais près à te repondre mais puisque tu as trouvé alors tant mieux
Bon courage et si tu as besoin ...
a bientot
0
Rejoignez-nous