Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    4

    Macro Excel che trovi la prima cella libera e copi la formattazione....

    Ciao a tutti!
    dopo anni che leggo (e apprendo... le soluzioni di questo forum ho pensato che avrei potuto trovare aiuto per una richiesta che mi è stata sottoposta...
    mastico un pò poco di linguaggio Visual e quello che so l'ho imparato un pò strada facendo...in questo caso avrei bisogno di preparare una macro che sia in grado di posizionarsi sulla prima cella della prima riga libera di un foglio, e che a partire da quella cella riesca a copiare la formattazione delle 3 righe superiori e riporti tale formattazione nelle 3 righe inferiori....io sono riuscito a creare qualcosa che si riesca a posizionare nella prima cella libera del foglio

    Sub PrimCellFree()
    Application.Goto Cells(Rows.Count, "A").End(xlUp).Offset(1), Scroll:=True
    End Sub

    ma con gli altri esperimenti che ho fatto sulla copia della formattazion delle 3 righe superiori è andata maluccio...qualcuno saprebbe darmi qualche indicazione?
    Grazie in anticipo a tutti!

    Ander

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    4
    Ehi qualcuno sa aiutarmi?

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    523
    scusa, ma perché non attivi la "registra macro", fai le operazioni, fermi la registrazione e trovi tutte le "operazioni" nella macro che hai appena registrato ?
    in office 2007 ho attivato il menu "sviluppo" dove sono raggruppati tutte le funzioni per giustappunto lo sviluppo di macro

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    4
    Quote Originariamente inviata da marino51 Visualizza il messaggio
    scusa, ma perché non attivi la "registra macro", fai le operazioni, fermi la registrazione e trovi tutte le "operazioni" nella macro che hai appena registrato ?
    in office 2007 ho attivato il menu "sviluppo" dove sono raggruppati tutte le funzioni per giustappunto lo sviluppo di macro
    Ciao Marino,
    ho provato a fare la registrazione macro ma così facendo creo un'operazione che mi va a copiare la formattazione delle specifiche 3 righe superiori che seleziono durante la registrazione e le copia nelle specifiche 3 righe sottostanti che seleziono durante la registrazione; quello che vorrei creare invece è una macro che sia in grado di riconoscere le 3 righe superiori e le 3 righe inferiori, a partire dalla cella che seleziono di volta in volta, in maniera automatica (ESEMPIO: se mi posiziono sulla cella A10 e avvio la macro, voglio che in automatico vada a copiare la formattazione delle 3 righe superiori A7,A8,A9 e riporti questa formattazione nelle 3 righe sottostanti a quella selezionata A10,A11,A12 .....se poi mi posiziono su A20 deve fare lo stesso giochino su A17,A18,A19 e riportare la formattazione su A20,A21,A22 ecc..)
    ...principalmente è questa la mia esigenza...
    Ultima modifica di Ander83; 17-04-2015 a 08:48

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    523
    codice:
    Sub MayBe()
        CellaAttiva = ActiveCell.Address    
        riga = ActiveCell.Row
        colonna = ActiveCell.Column
        If riga < 4 Then
            MsgBox "ERRORE" & vbCrLf & "CellaAttiva = " & CellaAttiva & vbCrLf & _
                "riga = " & riga & vbCrLf & "colonna = " & colonna
            Exit Sub
        End If
        Range(Cells(riga - 3, colonna), Cells(riga - 1, colonna)).Activate
        Selection.Copy
        Range(Cells(riga + 1, colonna), Cells(riga + 3, colonna)).Activate
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
        Cells(riga, colonna).Activate
    End Sub
    nel foglio, puoi creare una "forma" a cui assegnare il nome della macro
    trasformandola in "bottone" per eseguirla dopo aver attivato la cella
    ciao
    Marino
    ps se ho sbagliato un indice di riga (+ 0 e +2 ) lo correggi tu
    Ultima modifica di marino51; 17-04-2015 a 21:47

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    4
    Quote Originariamente inviata da marino51 Visualizza il messaggio
    codice:
    Sub MayBe()
        CellaAttiva = ActiveCell.Address    
        riga = ActiveCell.Row
        colonna = ActiveCell.Column
        If riga < 4 Then
            MsgBox "ERRORE" & vbCrLf & "CellaAttiva = " & CellaAttiva & vbCrLf & _
                "riga = " & riga & vbCrLf & "colonna = " & colonna
            Exit Sub
        End If
        Range(Cells(riga - 3, colonna), Cells(riga - 1, colonna)).Activate
        Selection.Copy
        Range(Cells(riga + 1, colonna), Cells(riga + 3, colonna)).Activate
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
        Cells(riga, colonna).Activate
    End Sub
    nel foglio, puoi creare una "forma" a cui assegnare il nome della macro
    trasformandola in "bottone" per eseguirla dopo aver attivato la cella
    ciao
    Marino
    ps se ho sbagliato un indice di riga (+ 0 e +2 ) lo correggi tu

    Grazie mille! ho modificato il codice in alcune parti per adattarlo su misura alla mia situazione, comunque è esattamente quello di cui avevo bisogno! sei stato preziosissimo!
    Grazie ancora!

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.