Le code suivant me permet de transposer un tableau en selectionnant le tableau source avec la sourie et en selectionnant la cellule du depart du tableau cible avec la sourie aussi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Sub transpose()
Dim plage1 As Range
Dim plage2 As Range
Dim feuille_source
Dim feuille_cible
Set plage1 = Application.InputBox(prompt:="Selectionnez la plage à transposer ", Type:=8)
a = plage1.Rows.Count
b = plage1.Columns.Count
Set plage2 = Application.InputBox(prompt:="Selectionnez la plage cible ", Type:=8)
Application.ScreenUpdating = False
For i = 1 To a
For j = 1 To b
plage2.Cells(j, i) = "=" & plage1.Cells(i, j).Address
Next j
Next i
End Sub |
Mon probleme c'est que cette macro ne marche que si le tableau source et cible sont tous les deux dans la meme feuille du meme classeur.
j'ai essayé de mettre le nom de la feuille courante dans une variable comme suit:
1 2
| feuille_source = ActiveWorkbook.ActiveSheet.Name
MsgBox ("la feuille source est:" & vbCr & feuille_source) |
mais il m'affiche toujours la meme feuille du depart
Je precise que mon but est de fixer la source et la destination uniquement avec la sourie. Donc une solution du type :
Sheets("feuil2").Cells(j, i) = Sheets("feuil1").Cells(i, j)
ne sera pas interressante.
merci d'avance pour votre aide
Partager