VBA: Besoin macro en boucle

hasardeux

XLDnaute Nouveau
Bonsoir la communauté,

J'ai vraiment besoin de votre aide.

En fait, j'ai un tableau excel avec de milliers de lignes et quelques colonnes.

Je voudrais que 3 de mes colonnes soient en ligne (en utilisant le transposé sans blanc)

Le fichier ci joint contient 2 classeurs: BRUT (tableau initial) et RESULTAT (tableau attendu) .

Il faut noter que le fichier joint est juste une partie. Le fichier réel est bcp plus long (d'où l'importance d'un code en boucle).

Merci encore de vos aides précieuses
 

Pièces jointes

  • Recette2.zip
    35.4 KB · Affichages: 33
  • Recette2.zip
    35.4 KB · Affichages: 32
  • Recette2.zip
    35.4 KB · Affichages: 32

hasardeux

XLDnaute Nouveau
Re : VBA: Besoin macro en boucle

Non, c'est juste un tableau excel que j'ai récupéré. Je pense pas qu'il s'agit d'un tableau dynamique.

Donc je dois le transformer au format attendu afin que je puisse l'intégrer dans un logiciel de type commercial.
 

Efgé

XLDnaute Barbatruc
Re : VBA: Besoin macro en boucle

Bonjour à tous,
Je vous fait une proposition, Liste de la feuille 1 transposée en feuille 2.
Cordialement
 

Pièces jointes

  • transpose.xls
    32.5 KB · Affichages: 47
  • transpose.xls
    32.5 KB · Affichages: 46
  • transpose.xls
    32.5 KB · Affichages: 45

kjin

XLDnaute Barbatruc
Re : VBA: Besoin macro en boucle

Bonsoir,
Avec ce que je comprends
Code:
Sub Macro3()
Dim T As Variant, Ta As Variant, Tb() As Variant
With Sheets("BRUT")
Ta = .Range("A1:D1").Value
T = .Range("A2:G" & .Range("A65000").End(xlUp).Row).Value
    For i = 1 To UBound(T, 1)
        x = x + 1
        ReDim Preserve Tb(1 To 6, 1 To x)
        Tb(1, x) = T(i, 1)
        Tb(2, x) = T(i, 2)
        Tb(3, x) = T(i, 3)
        Tb(4, x) = T(i, 4)
        Tb(5, x) = .Range("E1")
        Tb(6, x) = T(i, 5)
        x = x + 1
        ReDim Preserve Tb(1 To 6, 1 To x)
        Tb(1, x) = T(i, 1)
        Tb(2, x) = T(i, 2)
        Tb(3, x) = T(i, 3)
        Tb(4, x) = T(i, 4)
        Tb(5, x) = .Range("F1")
        Tb(6, x) = T(i, 6)
        x = x + 1
        ReDim Preserve Tb(1 To 6, 1 To x)
        Tb(1, x) = T(i, 1)
        Tb(2, x) = T(i, 2)
        Tb(3, x) = T(i, 3)
        Tb(4, x) = T(i, 4)
        Tb(5, x) = .Range("G1")
        Tb(6, x) = T(i, 7)
    Next
End With
With Sheets("RESULTAT")
    .Range("A1:D1") = Ta
    .Range(.Cells(2, 1), .Cells(UBound(Tb, 2) + 1, UBound(Tb, 1))) = Application.Transpose(Tb)
End With

End Sub
A+
kjin
 

Pièces jointes

  • Hasardeux.zip
    9.9 KB · Affichages: 17
  • Hasardeux.zip
    9.9 KB · Affichages: 17
  • Hasardeux.zip
    9.9 KB · Affichages: 16

Excel-lent

XLDnaute Barbatruc
Re : VBA: Besoin macro en boucle

Bonsoir tout le monde,

Je vois que plusieurs solutions ont été donné!

Ayant travaillé sur une solution, et ne voulant pas l'avoir fait pour rien.

Voici ci-joint ma proposition.

La macro est faite pour pouvoir être lancé à partir de n'importe quelle onglet!

-> "outils" / "macro" / "macros..." / sélectionner la macro "proposition"
(il ne te reste plus qu'à créer un bouton pour lancer la macro)

Bonne soirée à tous
 

Pièces jointes

  • Recette2 proposition.zip
    24.5 KB · Affichages: 20

Efgé

XLDnaute Barbatruc
Re : VBA: Besoin macro en boucle

Re hasardeux, bigmousse.
Bonjour kjin, Excel-lent.
En regardant le fichier proposé on trouve ce code :
Code:
Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 21/01/2010 par mattou
'
' Touche de raccourci du clavier: Ctrl+w
'
    Selection.EntireRow.Insert
    Selection.EntireRow.Insert
End Sub
Il semble que les propositions soient bien plus complexes que la demande :D

kjin,
Etant sur le forum pour "fairecequejepeux" (c) Dull et apprendre, pouvez vous m'expliquer :
Code:
ReDim Preserve Tb(1 To 6, 1 To x)
En vous remerciant par avance de votre réponse.
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 435
Messages
2 088 392
Membres
103 838
dernier inscrit
noureddine