Funzione Autofill Excel

Anonimo
2017-11-16T08:23:40+00:00

Salve a tutti,

Avrei bisogno di una mano per completare una macro su un foglio di calcolo

Sulla cella A2 ho un determinato valore di tipo testo, poi, nelle celle successive A3,A4 e cosi via  celle vuote finchè sulla cella A(n) vi è un nuovo valore, poi ancora celle vuote e cosi via la cosa si ripete.

Avrei bisogno che la macro mi copiasse il valore trovato nella cella A2 ed incollarlo nelle celle vuote sottostanti, dopodiché copiare il nuovo valore nella prima cella avente il nuovo testo ed incollarlo nelle celle vuote successive e cosi via.

Ho provato registrando la macro ma ovviamente funziona solo con i range che seleziono e che cambiano ogni volta.

E' per un lavoro molto importante, vi sarei grato se qualcuno mi potesse aiutare.

Grazie infinite

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2017-11-16T09:21:13+00:00

Ciao Brazil85,

Avrei bisogno di una mano per completare una macro su un foglio di calcolo

Sulla cella A2 ho un determinato valore di tipo testo, poi, nelle celle successive A3,A4 e cosi via  celle vuote finchè sulla cella A(n) vi è un nuovo valore, poi ancora celle vuote e cosi via la cosa si ripete.

Avrei bisogno che la macro mi copiasse il valore trovato nella cella A2 ed incollarlo nelle celle vuote sottostanti, dopodiché copiare il nuovo valore nella prima cella avente il nuovo testo ed incollarlo nelle celle vuote successive e cosi via.

Ho provato registrando la macro ma ovviamente funziona solo con i range che seleziono e che cambiano ogni volta. 

E' per un lavoro molto importante, vi sarei grato se qualcuno mi potesse aiutare.

Se vuoi utilizzare una macro, prova qualcosa del genere:

  • Alt+F11 per aprire l'editor di VBA
  • Alt+IM per inserire un nuovo modulo di codice
  • Nel nuovo modulo vuoto, incolla il seguente codice:

'=========>>

Option Explicit

'--------->>

Public Sub Tester()

    Dim WB As Workbook

    Dim SH As Worksheet

    Dim Rng As Range, Rng2 As Range, rArea As Range

    Dim LRow As Long

    Const sFoglio As String = "Foglio1"             '<<=== Modifica

    Set WB = ThisWorkbook

    Set SH = WB.Sheets(sFoglio)

    With SH

        LRow = LastRow(SH, .Columns("A:A"))

        Set Rng = .Range("A2:A" & LRow)

    End With

    On Error Resume Next

    Set Rng2 = Rng.SpecialCells(xlCellTypeBlanks)

    On Error GoTo 0

    If Not Rng2 Is Nothing Then

        For Each rArea In Rng2.Areas

            With rArea

                .Value = .Cells(0).Value

            End With

        Next rArea

    End If

End Sub

'--------->>

Public Function LastRow(SH As Worksheet, _

                        Optional Rng As Range, _

                        Optional minRow As Long = 1, _

                        Optional sPassword As String)

    Dim bProtected As Boolean

    With SH

        If Rng Is Nothing Then

            Set Rng = .Cells

        End If

        bProtected = .ProtectContents = True

        If bProtected Then

            .Unprotect Password:=sPassword

        End If

    End With

    On Error Resume Next

    LastRow = Rng.Find(What:="*", _

                       after:=Rng.Cells(1), _

                       Lookat:=xlPart, _

                       LookIn:=xlFormulas, _

                       SearchOrder:=xlByRows, _

                       SearchDirection:=xlPrevious, _

                       MatchCase:=False).Row

    On Error GoTo 0

    If LastRow < minRow Then

        LastRow = minRow

    End If

    If bProtected Then

        SH.Protect Password:=sPassword, _

                   UserInterfaceOnly:=True

    End If

End Function

'<<========= 

  • Alt+Q per chiudere l'editor di VBA e tornare a Excel
  • Salva il file con l’estensione xlsm
  • Alt+F8 per aprire  la finestra di gestione delle macro
  • Seleziona Tester
  • Esegui

Potresti scaricare il mio file di prova Brazil85_20171116.xlsm

In questo file, premi il pulsante Avvia Macro! per eseguire il codice.

Nota, però, che potresti ottenere i risultati voluti molto velocemente senza ricorre a VBA:

Seleziona l'intervallo di interesse, ad esempio A2:A100

F5

Speciale

Vuote

OK

Digita il segno = e premi la freccia su

Ctrl Invio

Seleziona l'intero intervallo A2:A100

Copia | Incolla speciale | Valori

OK

===

Regards,

Norman

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2017-11-16T11:13:17+00:00

    Ciao Brazil85,

    Grazie mille veramente per il tuo prezioso aiuto. 

    Funziona alla grande!

    Ti ringrazio per il cortese riscontro.

    Alla prossima.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-11-16T10:33:35+00:00

    Grazie mille veramente per il tuo prezioso aiuto.

    Funziona alla grande!

    Mitico

    La risposta è stata utile?

    0 commenti Nessun commento