Transposition d'un tableau sur VBA

TheHighFlying

XLDnaute Nouveau
Salut a tous !

Voila j'ai un probleme sur mon code VBA.

Il fonctionne parfaitement pour quelques lignes d'un tableau excel mais j'aimerai le faire fontionner sur une infinité de lignes ...

Il s'agit juste d'un bouton sur ma feuille excel servant a transposer un tableau sur une autres feuille !

Donc au lieu de rentrer A1:F1 et A2:F2 et A3:F3 etc
j'aimerai mettre des variables mais il ne me les prends pas...

Voici le code

Code:
Private Sub CommandButton2_Click()

Range("B4:F4").Copy       'Plage à adapter
Sheets("Sheet2").Range("C22").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True

Range("B5:F5").Copy       'Plage à adapter
Sheets("Sheet2").Range("C17").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True

Range("B6:F6").Copy       'Plage à adapter
Sheets("Sheet2").Range("C12").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True

Range("B7:F7").Copy       'Plage à adapter
Sheets("Sheet2").Range("C7").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True

Range("B8:F8").Copy       'Plage à adapter
Sheets("Sheet2").Range("C2").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True


End Sub

Voici ma premiere feuille excel "Sheet1"

Le but est de prendre les donné de ce tableau et en appuyant sur transposé obtenir le résultat ci apres

http://www.casimages.com

Voici ma feuille 2 "sheet2" ou je transpose mon tableau

Avant d'appui sur le bouton :

http://www.casimages.com

Et apres avoir appuyé sur le bouton

http://www.casimages.com


Donc on peu voir ici que ca fonctionne parfaitement

Maintenant j'aimerai reproduire la meme chose sur un infinité de ligne et colonne...

Et pas faire copier coller le code en changeant les numéro de ligne et colonne sinon je m'en sors pu :(

Merci a tous pour votre aide :D
 
Dernière édition:

TheHighFlying

XLDnaute Nouveau
Re : Transposition d'un tableau sur VBA

Pour faire plus court :

Au lieu de mettre ca

Range("B5:F5").Copy 'Plage à adapter
Sheets("Sheet2").Range("C17").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True

et devoir faire copier colle en modifiant les 5 par des 6 et 17 par 12

Est ce que je ne peux pas ecrire avec des variables que j'incrémente ?

Du style ca :


Dim i As Double
Dim j As Double
Dim k As Double

i=5
j=5
k=17

i=4+1
Do
...
j=4+1
Do
...

k=12-5
Do
...

Range("Bi:Fj").Copy 'Plage à adapter
Sheets("Sheet2").Range("Ck").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True


Merci
 

Staple1600

XLDnaute Barbatruc
Re : Transposition d'un tableau sur VBA

Bonjour



Peux-tu remplacer, stp, tes copies d''écran par ton fichier Excel (zippé)?


PS: dans ton premier message/Edition/ Gérer les pièces jointes


Ce serait plus facile pour tester du VBA ... avec un fichier Excel.

EDITION : En attendant ta propre édition :

Inspires toi de cela (vu j'ai testé je poste, pour pas gaché)
Code:
Sub test()
Dim fin As Long
For i = [A65536].End(xlUp).Row To 4 Step -1
Cells(i, 1).Offset(0, 1).Resize(1, 5).Copy
fin = Sheets("Feuil2").[B65536].End(xlUp).Row + 1
Sheets("Feuil2").Cells(fin, 2).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
fin = Sheets("Feuil2").[B65536].End(xlUp).Row + 1
Next i
End Sub
 
Dernière édition:

TheHighFlying

XLDnaute Nouveau
Re : Transposition d'un tableau sur VBA

Je viens d'essayer, avec quelques modifs de ton programme, ca marche nikel !

Merci

Une autre question,
est ce que c'est possible de coller le tableau,
au lieu de le mettre sur une page 2,
le mettre sur la page 1 d'un autre dossier Excel ?

Merci

(Demain j'édite mon premier post)
 
Dernière édition:

TheHighFlying

XLDnaute Nouveau
Re : Transposition d'un tableau sur VBA

Voici le code légerement modifié pour que cela corresponde a mes données :

Code:
Private Sub CommandButton1_Click()

Dim fin As Long

For i = [A65536].End(xlUp).Row To 4 Step -1
Cells(i, 1).Offset(0, 1).Resize(1, 5).Copy
fin = Sheets("Feuil2").[C65536].End(xlUp).Row + 1

Sheets("Feuil2").Cells(fin, 3).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
fin = Sheets("Feuil2").[C65536].End(xlUp).Row + 1

Next i

End Sub

Et tu as une réponse a ma question éventuellement ?

merci
 

Staple1600

XLDnaute Barbatruc
Re : Transposition d'un tableau sur VBA

Re



Je pensais que les modifications avaient été plus conséquentes (lol)

Pour ta question: Il suffit que le classeur soit ouvert
et d'adapter le code existant avec le nom du classeur et la feuille ou coller/transposer les infos.

Fais la manip manuellement (avec l'enregistreur de macros)
et tu auras une idée de la syntaxe à utiliser.
 

TheHighFlying

XLDnaute Nouveau
Re : Transposition d'un tableau sur VBA

Voila de retour au travail, j'ai mis en oeuvre le programme et voici le résultat final :

Code:
Private Sub CommandButton1_Click()


Dim fin As Long

For i = [O65536].End(xlUp).Row To 4 Step -1
Cells(i, 1).Offset(0, 14).Resize(1, 24).Copy
fin = Sheets("tcd et facteurs").[I65536].End(xlUp).Row + 1

Sheets("tcd et facteurs").Cells(fin, 9).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
fin = Sheets("tcd et facteurs").[I65536].End(xlUp).Row + 1

Next i

End Sub

La taille du tableau étant beaucoup plus conséquente que dans mon exemple !

Merci beaucoup pour ton aide Staple1600

Sans toi j'y serais pas arrivé
 

Discussions similaires

Réponses
5
Affichages
212

Statistiques des forums

Discussions
312 883
Messages
2 093 240
Membres
105 657
dernier inscrit
dominique pinocchio