Aide pour définir une adresse de plage de longueur variable

Bonjour le forum

Je voudrai donner à une variable la valeur "A2:A" & derLigne.

Si j’écris mavar =" "A2:A" & derLigne " je génère évidemment une erreur.

Je pense qu’il y a un moyen de contourner le problème mais malgré des recherches je ne le trouve pas.

Merci d’avance pour l’aide.

PhilippeBE

Bonjour,

Ecrivez

Dim mavar as String
mavar = "A2:A" & derLigne

Ou si vous souhaitez référer à la range directement,

Dim mavar as Range
Set mavar = ActiveSheet.Range("A2:A" & derLigne)

Bonjour,

C'est quoi ce titre à la noix ? " Erreur du a 3.. "

Pardon c'est parti trop vite. Donne nous ton fichier et explique nous ce que tu tentes de récupérer dans une variable string par ce que là, m^me la réponse de saboh ne me satisfait guère certes il n'y a pas d'erreur mais en guise de string tu va récupérer l'adresse de toute la plage.

Ensuite quand tu nous passse du vba dans ton message pas de "petit bout" SVP

A+

Bonjour,

En effet mon intitulé est vraiment ... à la noix. Désolé.

Edit modo : titre modifié

Ci-dessous mon code rectifié qui fonctionne

Option Explicit
Public Type R
mavar As String
derLigne As Integer
End Type
Public leR As R
Sub maMacro()
leR.derLigne = Range("A1").End(xlDown).Row + 1
leR.mavar = "C1:C" & leR.derLigne 'LeR.mavar varie
Call Tri1
End Sub
Sub Tri1()
Range("A1:F" & leR.derLigne).Select
ActiveWorkbook.Worksheets("F").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("F").Sort.SortFields.Add2 Key:=Range(leR.mavar), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("F").Sort
.SetRange Range("A1:F7")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub.

Edit Modo : code mis entre balises </> pour plus de lisibilité. Merci d'y penser à l'avenir

L’erreur stupide étai de faire leR.mavar = " "C2:C" & derLigne " et pas leR.mavar = "C2:C" & derLigne

Je suis nouveau sur le forum et en VBA mais j’ai compris la leçon.

Merci et bonne soirée.

Si le problème est résolu c'est le plus important. N'oubliez pas de cloturer le fil en sélectionnant une réponse.

... Et à l'avenir quand vus voulez citer du code VBA veuillez le faire en utilisant le bouton </> dans l'éditeur de texte.

Si on vous a mis des outils c'est pour s'en servir. Pour le code c'est vraiment beaucoup plus lisible...

*A+

Rechercher des sujets similaires à "aide definir adresse plage longueur variable"