Fissare bottone sul foglio



  • Fissare bottone sul foglio
    di Ambro (utente non iscritto) data: 03/07/2016 19:05:29

    Ciao io ho creato un file excel con una tabella sulla sinistra di 5 colonne e svariate righe. ho creato un bottone che colora secondo la data le righe di colori diversi.
    Io vorrei che il bottone rimanesse sempre visibile anche se scorro le righe del foglio. ora invece è nella colonna G riga 10, quindi se vado alla riga 100 non è più visibile.
    C'è un modo per far sì che sia sempre magari in corrispondenza della riga ultima della tabella e che quindi si adegui se questa avanza?

    Spero di essermi spiegato, non ho trovato discussioni esistenti col mio stesso problema e aggiungo che la mia conoscenza di vba è molto basica quindi vi chiedo pazienza ed esaustività nella spiegazione così da aumentare la probabilità che io capisca



  • di ambrovba data: 03/07/2016 19:08:44

    scusate non avevo fatto il log in. si può cancellare questa discussione. scusate



  • di Vecchio Frac data: 03/07/2016 19:15:42

    Perchè vuoi cancellarla? Hai già risolto? Se sì posta la tua soluzione a beneficio di altri.
    Comunque tra le proprietà delle forme c'è anche quella di non spostare l'oggetto mi sembra.





  • di ambrovba data: 03/07/2016 19:38:39

    No, non ho risolto, ma ne avevo aperta un'altra uguale dopo aver fatto login.

    Usiamo questa discussione?

    Comunque il bottone si deve spostare per far sì che se anche aggiungo 100 righe nuove alla tabella questo continui a essere in corrispondenza dell'ultima riga inserita



  • di Marius44 data: 03/07/2016 19:50:12

    Salve a tutti
    le due macro che ti posto sotto posizionano il pulsante SEMPRE all'altezza della cella che selezioni. Se vuoi che si posizioni ANCHE nella stessa colonna togli l'apostrofo dall'ultima riga di codice della seconda macro.

    Fai sapere. Ciao,
    Mario
     
    Private Sub cmdButton1_Click()
        Cells(3, 1).Select
    End Sub
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Dim alto, sinx As Long
        alto = ActiveCell.Top
        sinx = ActiveCell.Left
        cmdButton1.Top = alto   'alla stessa altezza di cella attiva
        'cmdButton1.Left = sinx  'alla stessa colonna di cella attiva
    End Sub



  • di Vecchio Frac data: 03/07/2016 19:54:17

    Hai ragione avevo capito male pensando che il pulsante non si dovesse spostare, invece è proprio il contrario :)
    Io risolverei in modo più semplice, bloccando la prima riga (o le prime due) e posizionando il pulsante in questa zona del foglio in modo che rimanga sempre fisso, in alto.






  • di ambrovba data: 03/07/2016 20:16:36

    non so fare le quotation quindi:

    @Vecchio Frac: giusto! Ottima idea ma vorrei capire con vba come si ottiene questa cosa che magari anche in altre situazioni potrebbe tornarmi utile

    @Marius 44: mhm dove dovrei inserire le tue stringhe? Allego le istruzioni del mio bottone così riesco a capirlo meglio

    Grazie ragazzi
     
    Private Sub CommandButton1_Click()
    Dim i As Integer
    i = 2
    Range(Cells(2, 1), Cells(2, 6)).Interior.Color = RGB(189, 215, 238)
    While (Cells(i + 1, 1) <> "")
      If Cells(i + 1, 1) <> Cells(i, 1) Then
        If Cells(i, 1).Interior.Color = RGB(255, 255, 255) Then
          Range(Cells(i + 1, 1), Cells(i + 1, 6)).Interior.Color = RGB(189, 215, 238)
        Else
          Range(Cells(i + 1, 1), Cells(i + 1, 6)).Interior.Color = RGB(255, 255, 255)
        End If
      Else
        Range(Cells(i + 1, 1), Cells(i + 1, 6)).Interior.Color = Cells(i, 1).Interior.Color
      End If
      Cells(i + 1, 7) = " "
    i = i + 1
    Wend
    End Sub



  • di Marius44 data: 03/07/2016 22:47:33

    Buona sera a tutti
    premesso che il suggerimento di Vecchio Frac (ciao) è il più valido (devi bloccare la prima o più righe del Foglio e piazzare entro questo spazio il tuo pulsante), se vuoi usare la macro (non stringa!!!) che ti ho indicato, inserisci solo la seconda nel Modulo di Classe del Foglio che stai utilizzando. La prima macro serve solo per riportare il pulsante alla riga 3 ed è collegata al pulsante stesso; visto che hai altre istruzioni nel pulsante lascia perdere.

    Fai sapere. Ciao,
    Mario



  • di ambrovba data: 04/07/2016 21:42:10

    ho provato come hai detto tu, inserendo sotto alla mia istruzione l'ultima tua, ma mi dà errore qui "cmdButton1.Top = alto" per errore di run time 424: necessario oggetto.
     
    Private Sub CommandButton1_Click()
    Dim i As Integer
    i = 2
    Range(Cells(2, 1), Cells(2, 6)).Interior.Color = RGB(189, 215, 238)
    While (Cells(i + 1, 1) <> "")
      If Cells(i + 1, 1) <> Cells(i, 1) Then
        If Cells(i, 1).Interior.Color = RGB(255, 255, 255) Then
          Range(Cells(i + 1, 1), Cells(i + 1, 6)).Interior.Color = RGB(189, 215, 238)
        Else
          Range(Cells(i + 1, 1), Cells(i + 1, 6)).Interior.Color = RGB(255, 255, 255)
        End If
      Else
        Range(Cells(i + 1, 1), Cells(i + 1, 6)).Interior.Color = Cells(i, 1).Interior.Color
      End If
      Cells(i + 1, 7) = " "
    i = i + 1
    Wend
    End Sub
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Dim alto, sinx As Long
        alto = ActiveCell.Top
        sinx = ActiveCell.Left
        cmdButton1.Top = alto   'alla stessa altezza di cella attiva
        'cmdButton1.Left = sinx  'alla stessa colonna di cella attiva
    End Sub



  • di Marius44 data: 05/07/2016 06:34:59

    Ciao
    dove ti dà l'errore devi mettere il "nome" del pulsante come lo hai chiamato tu.
    Al posto di cmdButton1 devi mettere CommandButton1 (io avevo usato un'abbreviazione).

    Ciao,
    Mario


  • Grazieee!!!
    di ambrovba data: 14/07/2016 10:42:27

    Grazie mille dei vostri consigli, ora la macro funziona perfettamente.
    Problema risolto

    Ambro


  • Fissare bottone sul foglio
    di ambrovba data: 03/07/2016 19:07:42

    Ciao io ho creato un file excel con una tabella sulla sinistra di 5 colonne e svariate righe. ho creato un bottone che colora secondo la data le righe di colori diversi.
    Io vorrei che il bottone rimanesse sempre visibile anche se scorro le righe del foglio. ora invece è nella colonna G riga 10, quindi se vado alla riga 100 non è più visibile.
    C'è un modo per far sì che sia sempre magari in corrispondenza della riga ultima della tabella e che quindi si adegui se questa avanza?

    Spero di essermi spiegato, non ho trovato discussioni esistenti col mio stesso problema e aggiungo che la mia conoscenza di vba è molto basica quindi vi chiedo pazienza ed esaustività nella spiegazione così da aumentare la probabilità che io capisca



  • di Vecchio Frac data: 03/07/2016 19:16:14

    Discussione doppia.