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ù utili
  1. Anonimo
    2019-03-30T16:22:22+00:00

    Potresti nominarle labelp1, labelp2, ..., labelp12

    Poi in un ciclo che può precedere o essere successivo a quello che popola le atre label assengare il valore delle 12 celle individuate.

    Ad esempio nella UserForm dichiari assieme alle altre dichiarazioni delle variabili altre due variabili:

    Dim oRangeP as  Range

    Dim NumRigheP as Long

    E prima o dopo l'altro ciclo fare eseguire queste istruzioni:

    Set oRangeP = ThisWorkbook.Worksheets("Ferie").Range(oRangeP)

    NumRigheP = oRangeP.Rows.Count

    With Me

       For i = 1 To NumRigheP

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

       Next i

    End With

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2019-03-30T08:14:04+00:00

    Buongiorno casanmaner, se volessi completare la userform aggiungendo altre 12 label in verticale che non hanno nulla a che fare con le 744 precedenti ma che vanno sempre a prendere dei valori (nominativi inseriti nelle celle) nel foglio FERIE cosa dovrei aggiungere alla tua routine senza fare casini?

    Sicuramente andrò ad inserire nello stesso modulo dove avevo dichiarato la variabile sRange anche la variabile pRange (p=personale) ed aggiungere il nuovo range nei CommandButton... ma cosa devo inserire nella Routine di UserForm per far "leggere" i valore di queste 12 label che sono posizionate in verticale (anche i vadi range del foglio Ferie sono posizionati in verticale)?

    Grazie infinitamente della tua pazienza :(

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2019-03-28T22:13:15+00:00

    Top :)

    Ovviamente x la variabile "Strong" sulla VBA era scritta giusta :)

    Immagino :) ... anche perché il debug avrebbe protestato un bel po' ;)

    La risposta è stata utile?

    0 commenti Nessun commento