Creare bordi



  • Creare bordi
    di Pich61 (utente non iscritto) data: 23/09/2013 09:49:54

    Ho creato una macro per inserire dei dati in un foglio di lavoro, vorrei che inserendo il dato nella cella mi creasse anche il bordo della cella stessa. Grazie



  • di paolomath data: 23/09/2013 09:54:46

    Oggetto Borders [F1]...

    Ad esempio:

    CELLA_CHE_VUOI.Borders.LineStyle = xlContinuous

    Bye



  • di Pich61 (utente non iscritto) data: 23/09/2013 10:04:46

    Ok grazie!!!



  • di Pich61 (utente non iscritto) data: 23/09/2013 11:21:44

    Con questa magro inserisco i dati:

    Private Sub CommandButton1_Click()

    With Worksheets("Aree Verdi").Activate
    Range("a7").Select
    Do
    ActiveCell.Offset(1).Select
    Loop Until ActiveCell.Value = ""
    ActiveCell.Value = ComboBox1.Value
    riga = ActiveCell.Row
    End With
    Worksheets("Aree Verdi").Cells(riga, 2) = CSng(TextBox1)

    With Range("a8, b8")
    With .Borders
    .LineStyle = xlContinuous
    .Weight = xlThin
    End With
    End With

    Worksheets("Sfondo").Select
    MsgBox "Inserimento effettuato"

    ComboBox1.Value = ""
    TextBox1.Value = ""

    End Sub

    Mi inserisce i bordi solo sulla prima riga come fare a inserirli anche nelle righe successive.



  • di Pich61 (utente non iscritto) data: 23/09/2013 11:22:57

    Sorry "macro"



  • di Vecchio Frac data: 23/09/2013 11:26:14

    cit. "Mi inserisce i bordi solo sulla prima riga"
    ---> Certo, gli dici di farlo solo lì infatti:
    With Range("a8, b8")

    Di quali "righe successive" stiamo parlando?

    p.s. rivedi il codice iniziale, da With Worksheets("Aree Verdi").Activate fino a Worksheets("Aree Verdi").Cells(riga, 2) = CSng(TextBox1) perchè può essere migliorato e sintetizzato.

    p.s.2 cit. "Sorry "macro"..."
    ---> stavo già per fare una battuta :P





  • di Pich61 (utente non iscritto) data: 23/09/2013 11:33:34

    Inserisco dei dati su due colonne e funziona bene.
    Però non so il comando per fare i bordi in tutte le celle che inserisco.

    p.s. Se si può semplificare puoi farlo.



  • di Vecchio Frac data: 23/09/2013 11:45:43

    Ma la mia domanda era: quante e quali sono le righe successive di cui vuoi impostare il bordo?
    Il comando lo hai già imparato: .Borders; è il range di celle su cui intervenire che manca ^_^





  • di Pich61 (utente non iscritto) data: 23/09/2013 11:59:27

    Quante non lo so, perchè devo inserire le aree verdi dei comuni della mia regione, per ogni comune un file quindi il numero di righe è variabile.
    Nella colonna 1 va il nome del comune, nella c 2 va la superficie e nella colonna 3 va il nome di chi la gestisce.



  • di Vecchio Frac data: 23/09/2013 12:05:29

    Bene, allora devi pensarla così:
    "Le righe che mi servono sono quelle valorizzate nella tabella che incomincia nelle celle A8:C8 del foglio Aree verdi e finisce all'ultima riga piena".
    Segue esempio sulla falsariga del tuo codice.
     
    Option Explicit
    
    Private Sub CommandButton1_Click()
    Dim ultima_riga As Long
    
        With Worksheets("Aree Verdi").Activate
            .Range("a7").End(xlDown).Offset(1) = ComboBox1.Value
            .Cells(ActiveCell.Row, 2) = CSng(TextBox1)
    
            ultima_riga = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
            With Range("a8:c" & ultima_riga)
                With .Borders
                    .LineStyle = xlContinuous
                    .Weight = xlThin
                End With
            End With
        End With
    
        Worksheets("Sfondo").Select
        MsgBox "Inserimento effettuato"
    
        ComboBox1.Value = ""
        TextBox1.Value = ""
    
    End Sub






  • di Pich61 (utente non iscritto) data: 23/09/2013 12:57:52

    Provato ma da errore "424"
    Necessario oggetto.



  • di Vecchio Frac data: 23/09/2013 13:50:34

    Già, togli quei punti davanti a Range e Cells dopo il primo with.
    Sono rimasti perchè nelle prove fatte non avevo impostato il riferimento al worksheet mediante Activate.
     
        With Worksheets("Aree Verdi").Activate
            Range("a7").End(xlDown).Offset(1) = ComboBox1.Value
            Cells(ActiveCell.Row, 2) = CSng(TextBox1)






  • di Pich61 (utente non iscritto) data: 23/09/2013 18:27:22

    Scusate il ritardo
    L'ho provato senza i punti ma da errore "1004".



  • di Pich61 (utente non iscritto) data: 24/09/2013 19:51:11

    Grazie a tutti