définir un tableau variable dans une boucle

A

albert

Guest
bonjour à tous, bonjour forum,

j'ai décidément pas trop de chance avec les boucles...

bogues en série...

j'ai tenté plusieurs solution, la plus réaliste est la suivante :

Si j'execute la macro avec une plage fixe, la matrice fonctionne

Application.Run "ATPVBAEN.XLA!Mcovar", ActiveSheet.Range("B1:M22"), _
ActiveSheet.Range("D26"), "C", True
Mais, avec une plage variable :

Bogue dans la boucle : visulal basic indique i = 2 et j = 1

Par conséquent, a boucle ne prend pas l’ensemble du tableau...


Li = Range("B1").End(xlToRight).Column
Co = Range("B1").End(xlDown).Row
For i = 2 To Li
For j = 1 To Co

Application.Run "ATPVBAEN.XLA!Mcovar", ActiveSheet.Range(i, j), _
ActiveSheet.Range("D26"), "C", True

Next
Next

j'ai dû louper quelqu'chose ???

quelqu'un peut-il me remettre sur la bonne route???

merci d'avance
PJ : varcovar.zip 24 Ko
albert
 

Pièces jointes

  • varcovar.zip
    23.2 KB · Affichages: 25
S

sylsyl

Guest
Salut Albert,

je n'ai pas telecharger ta PJ mais la lecture de ton code me tracasse deja un peu.

Il semblerai que tu veuilles executer la macro "ATPVBAEN.XLA!Mcovar" pour chaque cellule de ton tableau (parcours une ligne i pour une colonne j donnee).

Dans ce cas tu ne peux pas utiliser Range(i,j) puisque i et j sont les coordonnees de ta cellule (colonne 5 (=j), ligne 8 (=i) par exemple) et non des "adresses" de cellules.

Essai plutot d'utiliser Cells(i,j) a la place qui lui attend bien des "coordonnees" en entree.

Tiens nous au courant.

A++, Sylsyl.
 
S

sylsyl

Guest
Re,

essai tout simplement avec ca :

Application.Run "ATPVBAEN.XLA!Mcovar", _
ActiveSheet.Range(“B1” : cells(Range("B1").End(xlDown).Row, Range("B1").End(xlToRight).Column)), _
ActiveSheet.Range("D26"), "C", True

si ca marche pas, soit je seche soit le pb ne viens pas de ta boucle i,j (puisqu'yen a plus !!)

A++, sylsyl.
 
A

albert

Guest
miracle, ça marche!!!
j'ai seulement corrigé " " de B1 et Range("B1": Cells par Range("B1",

Application.Run "ATPVBAEN.XLA!Mcovar", ActiveSheet. _
Range("B1", Cells(Range("B1").End(xlDown).Row, Range("B1").End(xlToRight).Column)), _
ActiveSheet.Range("D26"), "C", True

mille mercis

bizarre, pour moi également, il n'y a plus les zips

à+ (et bravo pour le travail en aveugle)


albert
 
M

Mytå

Guest
Salut le Forum

Ceci aurait pu aussi fonctionner

Sub VARCOVAR()
Dim Colonne As Byte
Dim Ligne As Byte
Dim Position_fin As String

Call effacer

Colonne = Range("B1").End(xlToRight).Column
Ligne = Range("B1").End(xlDown).Row
Position_fin = Cells(Ligne, Colonne).Address

Application.Run "ATPVBAEN.XLA!Mcovar", ActiveSheet.Range("B1:" & Position_fin), _
ActiveSheet.Range("D26"), "C", True

End Sub
 
A

albert

Guest
Merci Mytå, tu es plein de ressources...

il semble qu'il ne soit plus possible d'envoyer des zips pour donner le résultat final à ceux qui seraient intéressés (il y a notamment l'utilisation xla! en macro)
 
A

albert

Guest
voilà le résultat, merci à tous les participants à l'écriture du code

tentativefin.zip 26 Ko

pour ceux qui sont intéressés, il faut installer l'utilitaire d'analyse

bonsoir à tous

albert
 

Pièces jointes

  • tentativefin.zip
    25.4 KB · Affichages: 35

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom