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.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Sheets("feuil2").Cells(j, i) = Sheets("feuil1").Cells(i, j)
ne sera pas interressante.

merci d'avance pour votre aide