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 :( :(
 

Pièces jointes

  • aide.xlsm
    10.3 KB · Affichages: 38

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 :)
 

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

Réponses
7
Affichages
485
Réponses
10
Affichages
1 K

Statistiques des forums

Discussions
311 720
Messages
2 081 896
Membres
101 833
dernier inscrit
sandra25