Renvoyer une plage variable (fonction transpose)

Résolu/Fermé
QUIZZBEE Messages postés 2 Date d'inscription dimanche 23 août 2015 Statut Membre Dernière intervention 24 août 2015 - 23 août 2015 à 19:12
QUIZZBEE Messages postés 2 Date d'inscription dimanche 23 août 2015 Statut Membre Dernière intervention 24 août 2015 - 24 août 2015 à 12:49
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 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 7 216
Modifié par eriiic le 23/08/2015 à 22:20
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 Date d'inscription dimanche 23 août 2015 Statut Membre Dernière intervention 24 août 2015
24 août 2015 à 12:49
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