Question : boucle VBA Excel

Résolu/Fermé
Daedin Messages postés 2 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 14 août 2009 - 12 août 2009 à 17:32
bouket Messages postés 143 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 16 octobre 2011 - 14 août 2009 à 14:21
Bonjour,

Novice en programmation j'aimerais écrire un script VBA qui réalise l'action suivante :

_A____B
1 8003 2
2 8004 3
3 8005 10
4 8006 8
5 8007 5

je dois remplir une nouvelle colonne (dans une autre feuille), avec la valeur de la cellule A1 répétée autant de fois que la valeur de la cellule B1, la valeur de la cellule A2 répétée autant de fois que la valeur de la cellule B2, et ainsi de suite. ce qui donnera :

8003
8003
8004
8004
8004
8005
etc...pour un assez grand nombre de valeurs (>30000), tant qu'il y a des données dans la colonne A.

Merci pour votre aide :)

2 réponses

bouket Messages postés 143 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 16 octobre 2011 22
12 août 2009 à 17:45
Coucou,

Il suffit de faire compter VB ;) !

Tu lui fais d'abord parcourir la colonne où le nombre 2,3,10 ect est inscrit...et tu la notes dans une variable
tu luis fais alors inscrire le nombre de fois voulu le 800x et ensuite tu passes à la ligne suivante ;)


Dim rendu As Integer 'tu n'oublies pas de mettre de côté la où tu es rendu avec :
rendu = 1

For i=1 To 5000 '5000 est un exemple tu peux aussi déterminer la fin de ton tableau ;)
Dim nombre_fois As Integer 'Tu crées une variable nombre_fois qui va stocker à chaque fois combien de fois il faut mettre le nombre !
nombre_fois=Cells(i,3).Value 'tu places la valeur de la cellule de la ligne i et de la colonne 3 (C) (je suppose que c'est là que sont les  2,3,10 ect)

     For j=rendu To (rendu + nombre_fois)
     'Tu prend la valeur de B2 que tu mets dans la cellule (j,x)
     rendu=j
     Next j

Next i


bonne chance ;)
1
Daedin Messages postés 2 Date d'inscription mercredi 12 août 2009 Statut Membre Dernière intervention 14 août 2009
14 août 2009 à 11:28
Merci Bouket !

Pour mémoire à la fin le code donne ça :

Sub RepeterSource_name()
Dim rendu As Integer
rendu = 1
Dim i As Integer
i = 1
Do While Cells(i, 1).Value <> ""
Dim nombre_node As Integer
nombre_node = Cells(i, 2).Value

For j = rendu To (rendu + nombre_node)
Dim Source_name As String
Source_name = Cells(i, 1).Value
Cells(j, 3) = Source_name
rendu = j
Next j

i = i + 1
Loop

End Sub
0
bouket Messages postés 143 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 16 octobre 2011 22
14 août 2009 à 14:21
parfait :)
0