Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    2

    [niubbo alle prime armi] - Visual Basic

    Salve! Io sto usando Excel per un progetto... Necessito però di una macro (assegnata ad un pulsante) che una volta clickato il pulsante e fornita una casella, ne cambi la formattazione (cioè ne tolga l'evidenziamento), ed evidenzi quella sottostante.
    Inoltre lo stesso pulsante dovrebbe modificare varie formule.


    Per esempio nella casella C1 si trova la formula (=A1+B1).
    Clickando il pulsante e selezionando la casella B1, vorrei che si "disevidenzasse" e si evidenziasse invece B2. Inoltre vorrei che in C1 la formula diventasse (=A1+B2).
    Teoricamente sarebbe semplice, ma vorrei che ogni volta che il pulsante viene premuto, la funzione si ripeta agendo sulla casella sottostante a quella selezionata (quindi B3, poi B4, ecc) - ma sempre mantenendo in C1 la forumula (che ha però i contenuti scalati).

    Non ho molta preparazione con Visual Basic (a dire il vero nessuna), programmo abbastanza bene in Javascript quindi ho idea di come dovrebbe funzionare (una cosa tipo BX --> BX+1, ma non ho idea di come realizzarla).

    Grazie per chi mi aiuterà!

  2. #2
    Ciao,
    non sono sicuro di aver capito bene, comunque ci provo:

    codice:
    Private Sub CommandButton1_Click()
    
    ' Imposta il colore della cella attiva a bianco
    ActiveCell.Interior.Color = RGB(255, 255, 255)
    
    ' Imposta il colore della cella sotto quella attiva a giallo
    Cells(ActiveCell.Row + 1, ActiveCell.Column).Interior.Color = RGB(255, 255, 0)
    
    ' Attiva la cella sotto a quella attualmente attiva
    Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
    
    ' Imposta la formula della cella 1,3 (C1) concatenando la stringa "A1" al nome della cella attiva
    Cells(1, 3).Formula = "= A1+" & ActiveCell.Address
    
    End Sub

    probabilmente non è esattamente quello che volevi ed inoltre è un po' grezzo perché, per esempio, quando imposta il colore bianco alla cella attiva ne cancella il bordo però può servire a cominciare a circoscrivere meglio il problema e a darti qualche spunto sulla sintassi di vba.

    Facci sapere

    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    2
    Me la sono cavata giusto poche ore fa, ma mi manca ancora un minuscolo particolare!

    codice:
    Selection.Interior.ColorIndex = xlNone
    ActiveCell.Offset(0, 1).Range("A1").Select
    Selection.Interior.ColorIndex = xlNone
    ActiveCell.Offset(1, -1).Range("A1:B1").Select
    Selection.Interior.ColorIndex = 40
    ActiveCell.Offset(0, 1).Range("A1").Select
    Selection.Copy
    Range("C35").Select
    ActiveSheet.Paste
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlMedium
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .Weight = xlMedium
            .ColorIndex = xlAutomatic
        End With
    Questo fa all'incirca quello che volevo. Mi servivano alcuni particolari in più, se possibile...

    Quando incollo in una cella, è possibile sommare al contenuto una certa cifra? O comunque applicarvi una formula?

    Tipo

    Range("A1").Select
    ActiveCell.ForumulaR1C1 = "Selection.Paste + 20"


    Sarebbe anche bello, dopo aver fatto tutto, poter tornare alla seconda casella in verticale a sinistra. grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.