Question : boucle VBA Excel

Résolu
Daedin Messages postés 2 Date d'inscription   Statut Membre -  
bouket Messages postés 147 Statut Membre -
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 :)
Configuration: Windows XP
Firefox 3.0.13

2 réponses

  1. bouket Messages postés 147 Statut Membre 22
     
    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
    1. Daedin Messages postés 2 Date d'inscription   Statut Membre
       
      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
  2. bouket Messages postés 147 Statut Membre 22
     
    parfait :)
    0