Sviluppare funzionalita su Microsoft Office con VBA Inserire immagine tramite macro nella prima cella vuota

LoginRegistrati
Stai vedendo 17 articoli - dal 1 a 17 (di 17 totali)
  • Autore
    Articoli
  • #29528 Risposta

    Ale984
    Partecipante

      Ciao a tutti.

      Vi pongo un quesito che probabilmente per voi sarà banale ma per me è un ostacolo non indifferente.

      Vengo al dunque: ho un file excel protetto ma sul quale voglio dare la possibilità di inserire immagini agli utenti che utilizzeranno il file senza però togliere la protezione.

      Ho quindi creato una macro che rimuove la protezione dai fogli, apre la finestra di dialogo per inserire l'immagine e dopo l'inserimento dell'immagine riblocca i fogli.

      Problema: l'immagine viene inserita (immagino di default) in alto a sinistra e ribloccando il file subito dopo l'inserimento, l'utente non ha possibilità di spostarla e ridimensionarla.

      Io vorrei inserire l'immagine nella prima cella vuota di una determinata colonna ma non so come impostare il puntamento.

      Mi dareste una mano?

      Allego file di esempio.

      Grazie mille.

      Allegati:
      You must be logged in to view attached files.
      #29536 Risposta
      patel
      patel
      Moderatore
        42 pts

        per trovare l'ultima cella occupata puoi usare questa macro

        Sub findLastCellWithShapes()
        Dim sh As Shape, isect
        r = 0
        For Each sh In ActiveSheet.Shapes
            Set isect = Application.Intersect(sh.TopLeftCell, Range("I7:I30"))
            If Not isect Is Nothing Then
              adr = sh.TopLeftCell.Address
              arr = Split(adr, "$")
              If CInt(arr(2)) > r Then r = arr(2)
            End If
        Next sh
        MsgBox r
        
        End Sub
        #29565 Risposta

        Ale984
        Partecipante

          Ciao Patel e grazie per la risposta.

          Non capisco come integrarla con la macro che ho impostato io.

          Da quello che ho capito la tua macro restituisce il numero della prima riga vuota all'interno della colonna I ma come la integro alla mia?

           

          Grazie ancora. 

          #29611 Risposta
          patel
          patel
          Moderatore
            42 pts

            Ho risposto a quello che hai chiesto e che effettivamente non era facile a realizzare, per il resto ti devi ingegnare un po', altrimenti diventa una richiesta di "pappa pronta"

            #29612 Risposta
            Oscar
            Oscar
            Partecipante
              10 pts

              Nella tua macro prima della selezione della cella metti la macro di Patel che saluto e sotto la selezione della cella dove 

              Range("A1").activate  <   diventerà   >   Range("I" & r + 1).Activate

              #29613 Risposta

              Ale984
              Partecipante

                Lo so, lo so.

                Ti ringrazio.

                Posso chiederti un ultimo favore? 

                Mi inseriresti i commenti di fianco ai punti chiave della tua macro? 

                Ho capito a grandi linee cosa fa ma voglio capire anche come utilizzarla.

                Grazie davvero.

                #29626 Risposta
                patel
                patel
                Moderatore
                  42 pts

                  la macro cicla su tutte le immagini presenti nel foglio attivo e verifica se ogni immagine è presente nel range indicato, se lo è ricava l'indirizzo della cella in cui è presente, questo indirizzo è del tipo $I$8, per estrarre il numero di riga splitto l'indirizzo in un array con separatore $ e prendo il secondo elemento, quindi confronto questo elemento con r per trovare il massimo valore della riga.

                  Un modo per capire bene è lanciare la macro col tasto F8, step by step, e per ogni riga selezionata portare il mouse sulle variabili per vederne il valore.

                  #29640 Risposta

                  Ale984
                  Partecipante

                    Non so come ringraziarvi ragazzi.

                    Grazie Oscar e Patel.

                     

                    Ultima cosa, se clicco su annulla nel momento in cui carico la foto, la macro va in errore.

                    Come si può evitare?

                    #29643 Risposta

                    Ale984
                    Partecipante

                      Alcune immagini le inserisce nella colonna errata.

                      Ho però visto che la macro lavora bene fino alla fase del ridimensionamento ed è proprio qui che avviene il problema.

                      Sapete a cosa può essere dovuto e come poter ovviare?

                      #29644 Risposta
                      patel
                      patel
                      Moderatore
                        42 pts

                        non abbiamo il codice da te modificato

                        #29645 Risposta

                        Ale984
                        Partecipante

                          Eccolo.

                          Grazie.

                          Allegati:
                          You must be logged in to view attached files.
                          #29648 Risposta
                          Oscar
                          Oscar
                          Partecipante
                            10 pts

                            Va benissimo

                            #29650 Risposta

                            Ale984
                            Partecipante

                              A te non succede che dopo il ridimensionamento l'immagine si trovi "spostata" in un'altra cella?  

                              #29651 Risposta
                              Oscar
                              Oscar
                              Partecipante
                                10 pts

                                E' nella cella sotto , ma sempre nella stessa colonna 

                                #29660 Risposta
                                patel
                                patel
                                Moderatore
                                  42 pts

                                  A me funziona, ovviamente devi impostare r = 6 invece che zero ed eliminare la riga con msgbox

                                  #29703 Risposta

                                  Ale984
                                  Partecipante

                                    Ciao ragazzi, 

                                    Grazie ancora a tutti per il supporto e mi scuso per il feedback tardivo.

                                    Sono parecchio impegnato a lavoro e leggo il forum solo tarda serata.

                                    La macro funziona perfettamente sul file di esempio ma smette di funzionare quando la vado ad implementare nel file originale (seppur senza modifiche).

                                    Ottengo il seguente errore:

                                    Errore di run-time '1004':

                                    Errore definito dall'applicazione o dall'oggetto.

                                    Purtroppo non riesco a capire dov'è il problema e non riesco a replicarlo sul file di esempio allegato a questa discussione.

                                    Sto provando a ripulire il file originale (ripulendolo dai dati sensibili) in modo da potervene girare una copia.

                                    Intanto, avreste idea di cosa possa voler dire quel messaggio di errore? 

                                    Grazie.

                                    #29705 Risposta
                                    patel
                                    patel
                                    Moderatore
                                      42 pts

                                      non fai prima a cercare con google ?

                                    LoginRegistrati
                                    Stai vedendo 17 articoli - dal 1 a 17 (di 17 totali)
                                    Rispondi a: Inserire immagine tramite macro nella prima cella vuota
                                    Gli allegati sono permessi solo ad utenti REGISTRATI
                                    Le tue informazioni:



                                    vecchio frac - 2750 risposte

                                    albatros54
                                    albatros54 - 1038 risposte

                                    patel
                                    patel - 1032 risposte

                                    Marius44
                                    Marius44 - 922 risposte

                                    Luca73
                                    Luca73 - 749 risposte