VBA BESOIN D AIDE

jeremy6812

XLDnaute Nouveau
Bonjour à tous :)

Tous d'abord merci pour votre aide et les nombreuses solutions que j ai déjà trouver en parcourant ce forum :)

Mais la je bloque

Jai beau essayer ca ne marche pas , c'est pourquoi je vous envoie un fichier avec le resultat souhaitez

Explication :)

j'ai des reference en colonne A
Nombre en colonne B

Et je souhaiterais si cela est possible avoir les resulat en ligne 5 comme afficher en noir a savoir
reference A1 en D5 x nombres B1 ( soit 5 fois )
Reference A2 en E5 x nombre B2 ( soit 5 fois )

et ainsi de suite

merci mille fois si qq peu m'aider j ai deja passer 8 heures a essayer de faire une vba impossible :( :(
 

Fichiers joints

jeremy6812

XLDnaute Nouveau
Merci c'est genial ! merci mille fois

quand je voie le temps que j'ai passer a essayer et la vitesse de votre réponse elle est parfaite merci :) :) :) :)
 

dieu08

XLDnaute Occasionnel
Bonjour Jeremy,

Je suis très loin d'avoir la rapidité et l'expérience de PierreJean (qui m'a déjà dépanné).

Je te propose cette alternative avec un tableau multidomensionnel :

VB:
Sub repart()

Dim NbLig As Integer
Dim NbLoop As Integer
Dim NbCol As Integer
Dim T()

NbLig = Application.CountA(Range("A1:A65536"))
NbLoop = 0
NbCol = -1

ReDim T(NbLig - 1, NbLig - 1)

    For i = 1 To NbLig
       
        T(i - 1, 0) = Range("A" & i).Value
        T(i - 1, 1) = Range("B" & i).Value
       
        Cells(5, 4 + i) = T(i - 1, 0)
       
            NbLoop = 0
           
            NbCol = NbCol + 1
             
            Do While Not NbLoop = T(i - 1, 1)
                                           
            Cells(5 + NbLoop, 5 + NbCol) = T(i - 1, 0)
           
            NbLoop = NbLoop + 1
                       
            Loop
       
     Next i

End Sub
Qu'en pensez-vous ?

Dieu08.
 

jeremy6812

XLDnaute Nouveau
Bonjour :)

Merci également pour ton aide, deux approche très différente , mais c'est parfait car avec la solution de pierre jean , une suite de numero s'imbrique a la fin de mes reference et pour la tienne mes reference reste identique

ET c'est parfait car j'ai besoin de ses 2 cas c'est donc l'idéale merci a tous pour votre reponse :)
 

jeremy6812

XLDnaute Nouveau
je vais vous embêter encore :)

presque le meme probleme

Pouvez vous modifier vos VBA :) en colonne ( fichier exemple joint )
a savoir

A1 ET B1 NOMBRE DE FOIS C1 ( resultat souhaiter en noir )

ca serait super :) :) :) :) :)
 

Fichiers joints

dieu08

XLDnaute Occasionnel
Re,

Script a priori fonctionnel :

VB:
Sub repart2()

Dim NbLig As Integer
Dim NbRep As Integer
Dim NbRep2 As Integer
Dim NbLoop As Integer
Dim NbCol As Integer
Dim T()

Worksheets("test").Activate

NbLig = Application.CountA(Range("A1:A65536"))
NbLoop = 0
NbRep = 0
NbRep2 = 0
NbCol = -1

ReDim T(NbLig - 1, NbLig - 1)

    For i = 1 To NbLig
      
        NbRep = Application.CountA(Range("E1:E65536"))
        NbRep2 = Application.CountA(Range("F1:F65536"))
          
        T(i - 1, 0) = Range("A" & i).Value
        T(i - 1, 1) = Range("B" & i).Value
        T(i - 1, 2) = Range("C" & i).Value
      
        Cells(5 + NbRep, 5) = T(i - 1, 0)
        Cells(5 + NbRep2, 6) = T(i - 1, 1)
      
            NbLoop = 0
          
            NbCol = NbCol + 1
            
            Do While Not NbLoop = T(i - 1, 2)
                                          
            Cells(5 + NbRep, 5) = T(i - 1, 0)
          
            Cells(5 + NbRep2, 6) = T(i - 1, 1)
          
            NbLoop = NbLoop + 1
          
            NbRep = Application.CountA(Range("E1:E65536"))
          
            NbRep2 = Application.CountA(Range("F1:F65536"))
                      
            Loop
      
     Next i

End Sub


Dieu08.
 

Discussions similaires


Haut Bas