inserire riga



  • inserire riga
    di Valentina (utente non iscritto) data: 21/09/2016 12:44:48

    ciao a tutti...
    ho bisogno di due macro...

    1 macro - Nella colonna B ci sono delle immagini e sono tutte con PROPRIETA' "sposta e ridimensiona con la cella", invece dovrei metterle tutte con PROPRIETA' Sposta ma non ridimensiona con la cella.

    2 macro - nella riga 1 c'è un'intestazione, ma avrei bisogno di metterla per ogni singola riga e manualmente è un casino fare copia riga e inserisce celle copiate per ogni singola riga.

    Grazie per l'aiuto!!!



  • di alfrimpa data: 21/09/2016 17:59:15

    Ciao Valentina

    Dovresti allegare un file di esempio spiegando quello che vuoi ottenere.

    Con la macro che vedi sotto si impostano le proprietà delle forme presenti sul foglio di lavoro in modo che si spostino ma non ridimensionino.

    Non so se le immagini siano trattate come Shape (Forme)

    Ho inserito un'immagine in un foglio ma cliccando con il tasto dx del mouse le opzione che vengono fuori per le forme (sposta, ridimensiona etc.) non vengono fuori per le immagini.

    Allega il file e vediamo

    Alfredo 
     
    Sub Macro1()
    Dim shp As Shape
    For Each shp In ActiveSheet.Shapes
    shp.Placement = xlMove
    Next shp
    End Sub
    





  • alelgato
    di Valentima (utente non iscritto) data: 22/09/2016 09:42:08

    Messo un allegato di prova...
    l'immagine è inserita da fuori e con PROPRIETA' "sposta e ridimensiona con la cella", invece dovrei metterle tutte con PROPRIETA' "Sposta ma non ridimensiona con la cella".
    Nel test ci sono poche righe ovviamente.

    Inoltre nella riga 1 c'è un'intestazione, ma avrei bisogno di metterla per ogni singola riga sopra le immagini e manualmente è un casino fare copia riga e inserisce celle copiate per ogni singola riga.



  • di alfrimpa data: 22/09/2016 12:04:26

    Ciao Valentina

    Ti ho allegato un file (Valentina.xlsm) dove sono inserite le macro che vedi sotto.

    La prima imposta per tutte le immagini del foglio attivo la proprietà "Sposta ma non ridimensiona con le celle".

    Per quanto riguarda il secondo problema per poter inserire l'intestazione al di sopra di ogni immagine è necessario che al di sopra di ciascuna vi sia una riga vuota (nel tuo esempio non c'è).

    Quindi con la seconda macro si va a copiare l'intestazione nelle righe vuote al di sopra di ogni immagine.

    Io l'ho limitata alla riga 7; tu puoi modificare tale valore con quello che vuoi.

    Ovviamente anche l'inserimento delle righe si può fare con una macro.

    Prova un po' il file e fai sapere.

    Alfredo
     
    Sub prova()
    Dim img As Shape
    For Each img In ActiveSheet.Shapes
        img.Placement = xlMove
    Next img
    End Sub
    
    Sub copiaIntestazione()
    Dim i As Integer
    For i = 3 To 7 Step 2
        Range("a1:b1").Copy Destination:=Range("a" & i)
    Next i
    End Sub





  • inserimento righe
    di Valentima (utente non iscritto) data: 22/09/2016 12:18:31

    purtroppo senza l'inserimento delle righe tramite Macro prima di incollare, non mi serve a nulla.



  • di alfrimpa data: 22/09/2016 16:33:16

    Ciao Valentina

    Ho allegato nuovo file con le macro che vedi sotto.

    E' sufficiente che tu lanci solo la sub macroGenerale.

    Prova e fai sapere.

    Alfredo

     
    Sub ImpostaProprietàImmagini()
    Dim img As Shape
    For Each img In ActiveSheet.Shapes
        img.Placement = xlMove
    Next img
    End Sub
    
    Sub copiaIntestazione()
    Dim i As Integer
    Dim ur As Long
    Dim numimg As Long
    numimg = ActiveSheet.Shapes.Count
    Application.ScreenUpdating = False
    For i = 3 To numimg * 2 Step 2
        Range("a1:b1").Copy Destination:=Range("a" & i)
    Next i
    Application.ScreenUpdating = True
    End Sub
    
    Sub SubInserisciRighe()
    Dim i As Integer
    Dim numimg As Long
    numimg = ActiveSheet.Shapes.Count
    Application.ScreenUpdating = False
    For i = 3 To numimg * 2 Step 2
        Range("A" & i).Select
        Selection.EntireRow.Insert
        Selection.EntireRow.AutoFit
    Next i
    Application.ScreenUpdating = True
    End Sub
    
    Sub MacroGenerale()
    Call ImpostaProprietàImmagini
    Call SubInserisciRighe
    Call copiaIntestazione
    End Sub
    





  • inserimento intestazione una riga si e una no
    di Valentina (utente non iscritto) data: 30/09/2016 13:20:12

    come il file allegato di esempio, come devo modificare il codice perchè inserisca l'intestazione una riga si e una no, prima inserendo una riga e poi copiando l'intestazione, senza che ci sia necessariamente un'immagine?



  • di alfrimpa data: 30/09/2016 14:04:09

    Ciao Valentina

    Prova con le macro che vedi sotto lanciando solo MacroGenerale.

    Alfredo
     
    Sub copiaIntestazione()
    Dim i As Integer
    Dim ur As Long
    ur = Cells(Rows.Count, 1).End(xlUp).Row
    Application.ScreenUpdating = False
    For i = 3 To ur Step 2
        Range("a1:g1").Copy Destination:=Range("a" & i)
    Next i
    Application.ScreenUpdating = True
    End Sub
    
    Sub SubInserisciRighe()
    Dim i As Integer
    Dim ur As Long
    ur = Cells(Rows.Count, 1).End(xlUp).Row
    Application.ScreenUpdating = False
    For i = 3 To ur Step 2
        Range("A" & i).Select
        Selection.EntireRow.Insert
        Selection.EntireRow.AutoFit
    Next i
    Application.ScreenUpdating = True
    End Sub
    
    Sub MacroGenerale()
    Call SubInserisciRighe
    Call copiaIntestazione
    End Sub