Dimensionamento pulsante

  • Pulsanti di Enrico 38
    Ciao a tutti. i miei complimenti a mauro e a tutti i collaboratori per il bellissimo sito.
    guardando il post di elena20 , che poneva un quesito interessante, ho inserito anch’io un grafico in un foglio excel per rappresentare alcuni dati utilizzando il codice “add chart …ecc..”
    fin qui tutto bene. ho voluto inserire, sullo stesso foglio, anche un pulsante (con gli strumenti da disegno) cui ho associato una macro per il rinvio ad altro foglio della cartella.
    il problema è che non riesco a “bloccare” le dimensioni di questo pulsante così come le ho definite disegnandolo sul foglio. mi spiego meglio. ogni volta che seleziono il foglio dove ho inserito il grafico, il pulsante appare spropositatamente più grande di come lo avevo disegnato in origine.
    perchè? c’è qualcuno che può aiutarmi? --enrico

    di Enzo
    Se ho capito il tuo problema e se la mente non mi inganna dovresti posizionarti sul pulsante cliccare con il destro andare nelle proprieta' e li dovresti trovare dei flag dove uno dei quali riguarda il pulsante ossia non si ridimensiona ne si sposta nell'esecuzione delle macro
    prova e fa sapere

    Pulsanti di Ricky53
    Ulteriori chiarimenti (sempre nell'ipotesi di aver capito bene):
    ricordo che la barra strumenti “disegno” non ha pulsanti ma rettangoli, ovali, forme varie. forse tu hai inserito un “rettangolo”, qui i radio button per impedire il ridimensionamento non sono attivi; oppure hai inserito un “pulsante” con la barra “moduli” anche qui i radio button per impedire il ridimensionamento non sono attivi.
    comunque operando come ti ha suggerito enzo si risolve il problema (ho fatto una prova con il file del quesito di elena20 al quale ho collaborato anch'io).

    ti riepilogo i passi:
    tasto destro mouse,
    “formato forme” (sei hai utilizzato un rettangolo) o “formato controllo” (se hai utilizzato un pulsante),
    proprietà,
    selezionare “sposta ma non ridimensionare con le celle".
    se utilizzi un “pulsante” e’ consigliabile selezionare anche “stampa oggetto” altrimenti se effettui una stampa il pulsante non viene stampato.
    buon lavoro
    ciao,
    ricky53

    Per ricky53 ed enzo di Enrico38
    Intanto un grazie di cuore ad entrambi voi per l'interessamento. ho provato a seguire le indicazioni con scrupolo ma il pulsante continua ad ingigantirsi e addirittura la sua presenza sembra influenzare anche le dimensioni originali del grafico (si rimpicciolisce). ad ogni buon conto, vi chiedo la gentilezza di esaminare il file che vi mando nell'apposita sezione e di provare ad inserire il pulsante senza modificare le dimensioni originali del grafico. un grazie enorme sin da adesso. --enrico

    Pulsanti di Ricky53
    Ciao enrico,
    ho scaricato il tuo file ed ho verificato che nella macro “nuovo_grafico” tu vuoi ridimensionare il grafico con la seguenti istruzioni:
    activesheet.shapes(1).scalewidth 1.2, msofalse, msoscalefrombottomright
    activesheet.shapes(1).scaleheight 1.2, msofalse, msoscalefrombottomright
    activesheet.shapes(1).scalewidth 1.2, msofalse, msoscalefromtopleft
    activesheet.shapes(1).scaleheight 1.2, msofalse, msoscalefromtopleft

    ma fai riferimento alla shapes(1) che è il pulsante. modifica in shapes(2) e vedrai che il grafico si ingrandisce di 1.2 ed il pulsante rimane della stessa dimensione.
    ciao ricky53

    X ricky53 di Enrico38
    Ciao ricky!
    un particolare ringraziamento per il tuo "risolutivo" e concreto intervento.
    ora funziona tutto perfettamente. mi piacerebbe sapere con quale criterio vengono attribuiti i numeri alle shapes. ciao, enrico.

    Nomi shapes di Ricky53
    I nomi delle shapes vengono attributi in base al loro inserimento nel foglio e la numerazione è progressiva ma indipendente dal tipo, ossia ovali, rettangoli, ecc hanno un'unica numerazione progressiva assoluta.

    nel codice che ti invio c'è una semplice macro che ti trova tutte le forme presenti in tutti i fogli del tuo file xls che hai aperto.
    copia le istruzioni in "thisworkbook" e lanciala.
    in alternativa al msgbox puoi utilizzare

    activeworkbook.worksheets(j).cells(i, 1) = sh.name

    attenzione scrive il nome delle forme nella prima colonna di ogni foglio.
    ciao,
    ricky53
     
    Sub Cerca_Forme()
        Dim Forme As Range
        j = 1
        For j = 1 To Worksheets.Count
            i = 1
            Set Foglio = Worksheets(j)
            For Each sh In Foglio.Shapes
            MsgBox ("forma: " & sh.Name)
                i = i + 1
            Next
        Next j
    End Sub

    X ricky 53 di Enrico 38
    Grazie, ricky, per le delucidazioni e per il codice.
    alla prossima. ciao, enrico.