définir un tableau variable dans une boucle

  • Initiateur de la discussion Initiateur de la discussion albert
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
 
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.
 
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
 
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
 
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)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour