Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao fabbristeve,
in questo file è presente una userform dove vengono caricati i valori presenti nell'intervallo A1:F30 in altrettante textbox nominate da TextBox1, TextBox2, TextBox3 .... ecc.
Nell'esempio le TextBox vengono aggiunte "dinamicamente" quando la userform viene "inizializzata".
Ovviamente tu potresti prima creare manualmente le textbox nominandole TextBox1, ecc.
Qui il file di esempio:
Questo il codice presente nel modulo della UserForm:
'---
Option Explicit
Private Sub UserForm_Initialize()
Dim rng As Range
Dim NumRec As Long, NumCol As Long
Dim cont As Long, i As Long, j As Long
Dim TxtControl As MSForms.TextBox
Dim iTop As Long, iLeft As Long
Dim iWidth As Double
'imposto l'intervallo celle
Set rng = ThisWorkbook.Worksheets("Foglio1").Range("A1:F30")
With rng
'determino il numero di righe e colonne per eseguire il ciclo
NumRec = .Rows.Count
NumCol = .Columns.Count
End With
With Me
.Width = 350
iWidth = (((.InsideWidth - (5 * NumCol)) - 5) / NumCol)
iLeft = 5
iTop = 5
'inizio il ciclo per popolare le TextBox (che in questo caso vengono aggiunte dinamicamente)
For i = 1 To NumRec
For j = 1 To NumCol
cont = cont + 1
.Controls.Add "Forms.TextBox.1", "TextBox" & cont, True
With .Controls("TextBox" & cont)
.Width = iWidth
.Height = 20
.Left = iLeft
.Top = iTop
iLeft = iLeft + iWidth + 5
End With
'inserimento valori nel text box in base alla posizione della cella
.Controls("TextBox" & cont).Text = rng(i, j).Value
Next j
iTop = iTop + 25
iLeft = 5
Next i
End With
End Sub
'---
Vedi se può darti qualche idea in relazione al tuo progetto effettivo.
Edit: ho impostato in corsivo la parti che non sarebbero necessarie in caso di TextBox inseriti manualmente nella userform.