Transposition d'un tableau sur VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 😀
 
Dernière édition:
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
 
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:
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:
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
 
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.
 
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é
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
718
Réponses
18
Affichages
492
Réponses
2
Affichages
360
  • Question Question
Microsoft 365 Erreur de format
Réponses
5
Affichages
559
Réponses
17
Affichages
1 K
Retour