Listbox e textbox



  • Listbox e textbox
    di alessia (utente non iscritto) data: 02/05/2014 10:12:45

    Buongiorno a tutti,
    ho bisogno di un vostro aiuto. Arrivo al dunque. Con il codice sotto riportato mi copia il contenuto della listbox2 in un foglio d'appoggio chiamato "Foglio temporaneo", per poi darlo alla stampa.

    Private Sub CommandButton3_Click()
    Worksheets("Foglio temporaneo").Range("A:h").ClearContents ' pulisco tutte le celle

    Dim rng As Excel.Range

    Set rng = Worksheets("foglio temporaneo").Range("b:h") ' inserisco nel foglio d'appoggio nel range(b:h) il contenuto della listbox2
    With Me.ListBox2
    rng.Resize(.ListCount, .ColumnCount) = .List

    UserForm6.Hide ' nascondo il foglio per l'anteprima di stampa
    With ActiveSheet.PageSetup
    'Do alla stampa l'orientamento orizzontale
    .Orientation = xlLandscape
    .PaperSize = xlPaperA4

    rng.PrintPreview ' dammi l'anteprima
    'rng.PrintOut ' attualmente disattivato per prove
    End With
    End With
    End Sub

    Quello che non riesco a fare, sarebbe inserire nel foglio d'appoggio nella colonna A il valore contenuto della textbox1.
    Vorrei inserire in questa riga: Set rng = Worksheets("Foglio temporaneo").Range("b:h") anche il valore della textbox nella colonna A.
    Il valore della textbox1 deve essere copiata tante volte quante sono le righe copiate nel foglio d'appoggio.
    Es. se nella listbox2 ci sono quattro righe, nel foglio d'appoggio mi copia quattro righe. Fin qui tutto bene. Ma voglio che ad ognuna
    di queste deve riportare il valore trovato nella textbox1. Si può risolvere?
    Grazie a tutti



  • di Grograman (utente non iscritto) data: 02/05/2014 10:20:45

    A naso:
     
    Worksheet("foglio temporaneo).range("A2:A" & me.listbox1.ListCount) = me.textbox1.text



  • di alessia (utente non iscritto) data: 02/05/2014 10:55:46

    Grazie Grograman,
    Ho inserito la tua riga in questo modo:
    Set rng = Worksheets("foglio temporaneo").Range("b:h") ' inserisco nel foglio d'appoggio nel range(b:h) il contenuto della listbox2
    Worksheets("foglio temporaneo").Range("A1:A" & Me.ListBox2.ListCount) = Me.TextBox1.Text
    With Me.ListBox2

    Però sull'anteprima di stampa non esce la colonna A.
    Sicuramente perchè è impostato così:
    rng.PrintPreview ' dammi l'anteprima
    Quindi, come faccio ad inserire anche la colonna A nell'anteprima di stampa?
    Grazie



  • di alessia (utente non iscritto) data: 02/05/2014 11:27:51

    Io ho risolto così. Va bene o potrebbe darmi problemi?
    Grazie
     
    Sheets("Foglio temporaneo").PrintPreview ' seleziona foglio e dammi l'anteprima



  • di Grograman (utente non iscritto) data: 02/05/2014 11:54:53

    A meno che non rimanga qualche carattere in una cella in fondo al foglio per cui ti partono 1000 fogli in stampa non vedo problemi. Se vuoi affinare puoi usare un offset e un resize sul range:
     
    With rng
      .Offset(, -1).Resize(.Rows.Count, .Columns.Count + 1).PrintPreview
    End With



  • di alessia (utente non iscritto) data: 02/05/2014 13:10:52

    Grazie Grograman,
    io ho risolto così. Allego il codice che potrbbe venir utile a qualcun'altro. Ho fatto delle prove di stampa ed ottengo ciò che dedidero. Grazie infinitamente per il tempo a me dedicato, ma soprattuto per il tuo prezioso aiuto.
    Grazie
     
    On Error Resume Next   ' elimina errore se la listbox è vuota
    Worksheets("Foglio temporaneo").Range("A2:J65000").ClearContents ' pulisco tutte le celle
     
    Dim rng As Excel.Range
    
    Set rng = Worksheets("foglio temporaneo").Range("b2:J65000") ' inserisco nel foglio d'appoggio nel range(b2:h65000) il contenuto della listbox2
     Worksheets("foglio temporaneo").Range("A2:A" & Me.ListBox2.ListCount + 1) = Me.TextBox1.Text
     With Me.ListBox2
    rng.Resize(.ListCount, .ColumnCount) = .List
    
    With ActiveSheet.PageSetup
    'Do alla stampa l'orientamento orizzontale
    .Orientation = xlLandscape
    .PaperSize = xlPaperA4
    ' Al foglio di Stampa inserisco " Intestazione Fissa"
    .CenterHeader = "Archivio Fatture ordinati per Cod. Cliente"
    
    
    If TextBox1 = "" Then Exit Sub
    Sheets("Foglio temporaneo").PrintOut
    
    End With
    End With



  • di alessia (utente non iscritto) data: 02/05/2014 15:31:17

    P.s. Risolto!
    Grazie