La plage nommée (ou la plage définie par l'utilisateur) comporte 6 colonnes, mais le nombre de lignes peut changer en fonction d'autres fonctions.Valeur de copie VBA de named_range dans TextBox
Essayez maintenant d'obtenir la valeur entière de cette plage, de toutes les 6 colonnes et de toutes les lignes dans un TextBox. Lignes délimitées par tabulation.
suivant renvoie de code objet erreur défini etc.
UserForm1.TextBox1.Value = Sheet1.Range("named_range").Value
Toute aide très appréciée.
Edit:
FunThomas est juste, je won'e être en mesure d'obtenir la valeur de la plage sans le déclarer une ligne distincte. J'ai donc commencé avec le code ci-dessous qui fonctionne bien dans l'affichage de la plage dans un msgBox multiligne. Comment puis-je me débarrasser de l'InputBox supplémentaire, et afficher les résultats dans UserForm1.TextBox1 à la place de la msgBox qui a une fonctionnalité limitée.
Sub showOfferRange()
Dim xRg As Range
Dim xTxt As String
Dim xCell As Range
Dim xStr As String
Dim xRow As Long
Dim xCol As Long
On Error Resume Next
xTxt = ThisWorkbook.Names("offers_running")
Set xRg = Application.InputBox("Offer range:", "Display offers", xTxt, , , , , 8)
'Set xRg = xTxt
If xRg Is Nothing Then Exit Sub
On Error Resume Next
For xRow = 1 To xRg.Rows.Count
For xCol = 1 To xRg.Columns.Count
xStr = xStr & xRg.Cells(xRow, xCol).Value & vbTab
Next
xStr = xStr & vbCrLf
Next
MsgBox xStr
End Sub
Voir [lien] (https://stackoverflow.com/documentation/excel-vba/1576/common-mistakes#t=201707270717591076459) – FunThomas
Je ne sais pas comment le lien est lié à ma question. – joell
Probablement vous voulez accéder à 'sheet1' d'un classeur, mais vous accédez à une variable appelée' sheet1'. Donc j'assume que vous avez besoin de quelque chose comme 'thisWorkbook.sheets (" sheet1 ")' ou 'activeWorkbook.sheets (" sheet1 ")', mais ceci n'est qu'une estimation. Le lien explique comment accéder au classeur et aux objets de la feuille de calcul. – FunThomas