Téléchargement
illégal
Posez votre question Signaler

Boucle en vba Excel [Résolu]

wida 134Messages postés 5 novembre 2007Date d'inscription 28 novembre 2011Dernière intervention - Dernière réponse le 22 juin 2009 à 16:33
Bonjour,
est ce qu'il possible, avec vba excel, de faire une boucle du genre
Dim i as integer
for(i=1; i<10; i+1)
{
range(Ai) :=range(Ai-1)+range(Bi)
}
je sais que syntaxiquement c faux!! pour la boucle je pourai utiliser "do until" s'il n'ya pas le for mais parcontre pour gerer les cellule ainsi j'ai pas d'idée comment faire!!
j'ai besoin de votre aide!
Merci.
Lire la suite 

Boucle en vba Excel »

9 réponses
Réponse
+14
moins plus
Bonjour,

Tu peux utiliser le For ... Next ou le While ... Wend ou le Do ... Loop.

Dim i As Integer
   For  i = 1 To 10
      Sheets(1).Range("A" & i).Value = Sheets(1).Range("A" & i - 1) + Sheets(1).Range("B" & i)
   Next i


Ou
Dim i As Integer
i = 1
   While i < 10
      Sheets(1).Range("A" & i).Value = Sheets(1).Range("A" & i - 1) + Sheets(1).Range("B" & i)
      i = i + 1
   Wend


Le problème c'est que tu vas lever une exception dès ta première boucle, dans les 2 cas.

i étant le numéro de ligne, si tu commences à 1, quand tu fais : Sheets(1).Range("A" & i - 1), i sera égal à 0. Hors la ligne 0 n'existe pas dans Excel. La numérotation des lignes, comme des colonnes, commence à 1.

;o)
garion28- 22 juin 2009 à 12:43
pas sur d'avoir vraiment compris ce que polux31 a dit ^^
mais si ton i commence a 1 et non pas a 0 alors il n'y a pas de problème (premier passage dans la boucle: i=1)
Polux31- 22 juin 2009 à 14:21
Fais un test en commençant à i = 1, tu vas vite voir où se situe le problème... ^^
Ajouter un commentaire
Réponse
+0
moins plus
bonjour

a quoi correspond range(Ai-1)?
cellule au dessus: si oui, pb si i=1
ou cellule
range(Ai)-1

1° cas:
dim i as integer 'en VBA les variables doivent de préférence être déclarées

for i=2 to 10
cells(i,1)=cells(i-1,1)+cells(i,2)
next

2° cas:
for i=1 to 10
cells(i,1)=cells(i,1)+cells(i,2)-1
next
Ajouter un commentaire
Réponse
+0
moins plus
Merci beaucoup pour vos reponses claires et bien détaillées.
au fait le range Ai-1 correspond a la cellule au dessus, j'ai mis i=1 dans cet exemple juste pour simplifier.
Merci à tous, les deux methodes celle de Polux31 et de michel_m marchent bien.
Ajouter un commentaire
Réponse
+0
moins plus
Excuses-moi, Polux, je n'avais pas rafraichi...
Ajouter un commentaire
Réponse
+0
moins plus
Excuses-moi, Polux, je n'avais pas rafraichi...
Polux31- 22 juin 2009 à 15:41
Pas de problème ... deux avis valent mieux qu'un. Mon post 5 s'adresse à Garion ... ^^

;o)
Ajouter un commentaire
Réponse
+0
moins plus
^^ oui je vien de voir qu'il fesai -1 a un moment, donc logique que ca bug (en vba je code un peu comme je réfléchi donc ya pas (ou très peu) d'erreur de ce genre là)
Ajouter un commentaire
Ce document intitulé « boucle en vba Excel » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?