Renvoyer une plage variable (fonction transpose)

Résolu
QUIZZBEE Messages postés 2 Statut Membre -  
QUIZZBEE Messages postés 2 Statut Membre -
Bonjour,
je souhaite renvoyer une plage nommée "ventil_contrat" de tous les fichiers d'un répertoire à l'aide de la fonction "transpose" pour créer un fichier liaisonné.
Le code fonctionne parfaitement lorsque j'écris le nom de la plage mais je ne parviens pas à le faire fonctionner lorsque j'utilise une variable au lieu du nom.

En gras : le code important. En souligné : l'endroit du problème. Voici le code :

Sub recup()
Dim chemin As String
Dim fichier As String
Dim nb_col As Byte
Dim nb_lign As Byte
Dim ma_plage As Range
Range("A4").Select 'sélectionner la cellule de début
chemin = Workbooks(ActiveWorkbook.Name).Path & "\"
fichier = Dir(chemin & "*.xlsx")
Application.ScreenUpdating = False
Do While fichier <> ""
Workbooks.Open Filename:=chemin & fichier, UpdateLinks:=0
On Error Resume Next
Set ma_plage = Range("ventil_contrat")
If ma_plage Is Nothing Then
ActiveWorkbook.Close savechanges:=False
Else
nb_col = ma_plage.Columns.Count
nb_lign = ma_plage.Rows.Count
ThisWorkbook.Activate
Range(ActiveCell, ActiveCell.Offset(nb_col - 1, nb_lign - 1)).Select
Selection.FormulaArray = "=transpose('" & chemin & fichier & "'!" & ma_plage & ")"
Windows(fichier).Activate
Application.CutCopyMode = False
ActiveWorkbook.Close savechanges:=False
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
End If
fichier = Dir ' Fichier suivant
Loop

Application.ScreenUpdating = True

End Sub

Pourtant si j'écris à l'endroit souligné : "'!ventil_contrat)" ça fonctionne.
J'ai essayé de l'écrire de plein de façon, à chaque fois il me renvoi du texte au lieu des valeurs :/
Merci par avance de vos précieux conseils ;-)))

1 réponse

eriiic Messages postés 25847 Statut Contributeur 7 279
 
Bonjour,

ce n'est pas de ma_plage.address que tu aurais besoin ?
En tenant compte du fait que sans paramètre c'est la référence colonne absolue, ligne absolue qui est retournée
eric

En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
1
QUIZZBEE Messages postés 2 Statut Membre
 
Salut Eric,
1000 merci c'est tout à fait ce qu'il me fallait ;-)
Grâce à toi je viens de finaliser ma première macro digne de ce nom ^^
0