Userforn textbox/label

Anonimo
2019-03-20T06:59:36+00:00

Buogiorno ragazzi ho una richiesta da farvi:

Su Foglio1 ho un range di celle (A1:AE24) che tramite una formattazione condizionata in base al valore inserito che va da 1 a 12 cambiano colore di sfondo. Io devo ricreare la stessa cosa con una Userform, che andrò a richiamare con un CommandButton, formata da tanti textbox o label (a seconda di quello che sarà più opportuno) che andranno a cambiare il colore sfondo in base alle celle collegate. Come posso fare tutto questo in VBA?H Help Help! Help!

Premessa: la Userform la so "costruire", mi serve la parte VBA

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2019-03-31T18:38:18+00:00

Prova con:

   Set oRangeP = ThisWorkbook.Worksheets("FERIE").Range(sRangeP)

   NumRigheP = oRangeP.Rows.Count

   With Me

   For i = 1 To NumRigheP Step 2

      cont=cont+1

      .Controls("Labelp" & cont).Caption = oRangeP(i, 1)

   Next i

   End With

Ne prosegui della tua routine c'è un "cont = cont + 1"

Ma mi pare che non sia poi realmente utilizzato (forse un residuo dal mio codice che "costruireva anche le label".

Se invece fosse utilizzato allora dopo il ciclo dei controlli del personale va impostato nuovamente a zero indicando cont = 0

La risposta è stata utile?

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2019-03-31T18:26:27+00:00

Ma B3:B23 sono più di 12 righe (21 per l'esattezza).

Mentre le label del personale sono solo 12.

Ho letto male e l'intervallo è B3:B26, quindi 24 righe.

Si tratta di righe unite due a due?

La risposta è stata utile?

0 commenti Nessun commento

36 risposte aggiuntive

Ordina per: Più recente
  1. Anonimo
    2019-03-28T10:12:04+00:00

    Scusami casanmaner come faccio a cambiare il Range assegnato a sRange? Mi spiego meglio: ci sono 2 CommandButton che possono richiamare la UserForm dove ce il codice che mi hai dato. Se la routine viene richiamata da CommandButton1 Cost sRange è x:x Se la UserForm viene richiamoata da CommandButton2 allora sRange deve essere y:y

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2019-03-21T22:09:50+00:00

    Risolto :)

    Ho ridisegnato tutte le label ed ora funziona

    Grazie per la pazienza e la disponibilità

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2019-03-21T20:13:39+00:00

    Private Sub UserForm4_Initialize()

    Const sRange As String = "D3:AH26"

    Dim oRange As Range

    Dim NumRighe As Long, NumCol As Long

    Dim i As Long, j As Long

    Dim cont As Long

    Dim iLng As Long

    Set oRange = ThisWorkbook.Worksheets("FERIE").Range(sRange)

    With oRange

    NumRighe = .Rows.Count

    NumCol = .Columns.Count

    End With

    With Me

    For i = 1 To NumRighe

    For j = 1 To NumCol

    cont = cont + 1

    With .Controls("Label" & cont)

    iLng = oRange(i, j)

    Select Case iLng

    Case 1

    .BackColor = RGB(101, 10, 10)

    Case 2

    .BackColor = RGB(0, 255, 0)

    Case 3

    .BackColor = RGB(0, 0, 255)

    Case 4

    .BackColor = RGB(255, 0, 255)

    Case 5

    .BackColor = RGB(255, 255, 0)

    Case 6

    .BackColor = RGB(0, 0, 255)

    Case 7

    .BackColor = RGB(0, 0, 0)

    Case 8

    .BackColor = RGB(125, 0, 0)

    Case 9

    .BackColor = RGB(0, 125, 0)

    Case 10

    .BackColor = RGB(0, 0, 125)

    Case 11

    .BackColor = RGB(75, 75, 75)

    Case 12

    .BackColor = RGB(150, 150, 150)

    End Select

    End With

    Next j

    Next i

    End With

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento