Passaggio Macro a Personal.xlsb non funziona

Anonimo
2021-03-11T17:34:28+00:00

ciao a tutti, dopo aver cercato e cercato se il mio problema fosse stato già risolto e, non avendo trovato ho deciso di porre il problema.

intanto definisco il mio livello poco più che Basic.

Nel mio file excel ho costruito, anche con il grandissimo aiuto di Daniele_G, una macro che fa determinate operazioni. Terminata la fase di prova e di funzionamento, ho deciso, dopo aver letto un pò di discussioni su questo forum, come si può condividere la macro con altri uteti.

ho optato per la versione PERSONAL.XLSB. per far ciò ho operato in questo modo:

1- ho iniziato a registrare un anuova macro

2- ho interrotto subito la registrazione senza fare nessuna operazione

3- ho copiato all'interno il contenuto della macro funzionante

4- ho salvato l amacro scegliendo l'opzione PERSONAL.XLSB.

rieseguendo la macro compare l'errore su questa istruzione

    Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
    
    With fDialog
        .AllowMultiSelect = False
        .Title = "Seleziona il file da aprire"
        .InitialFileName = ThisWorkbook.Path & "\File Precedente"
        If .Show = -1 Then

            For Each selezione In .SelectedItems <<--- ERRORE DI COMPILAZIONE VARIABILE NON DEFINITA
                fileDaAprire = selezione
            Next
        Else
        MsgBox "Operazione annullata!", vbInformation
        End If
        GoTo Fine
    End With

eppure quell'errore non è mai comparso prima.

grazie

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

4 risposte

Ordina per: Più utili
  1. Anonimo
    2021-03-12T14:36:40+00:00

    Grazie Norman. Soluzione perfetta.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2021-03-12T11:57:12+00:00

    ciao Norman, dopo aver inserito la definizione della variabile, la macro me ne ha segnalate altre le quali, ho provveduto a definire. vorrei approfittare per chiederti, come posso rendere variabile l'ultima cella da considerare presente in queste istruzioni 

        Range("F2").Select

        Selection.AutoFill Destination:=Range("F2:F108")

        Range("F2:F108").Select

    nelle mie elaborazioni la partenza è sempre F2 mentre, il termine non è sempre F108 ma varia di volta in volta.  ho provveduto a determinare l'ultima riga

    With ws1

         lRiga = .Range("A" & .Rows.Count).End(xlUp).Row

    End With              

    Ciao Antonio,

    Prova qualcosa del genere:

    '========>>

    Option Explicit

    '-------->>

    Public Sub Tester()

        Dim ws1 As Worksheet

        Dim Rng As Range

        Dim lRiga As Long

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

        Set ws1 = ThisWorkbook.Sheets(sFoglio)

        With ws1

            lRiga = .Range("A" & .Rows.Count).End(xlUp).Row

            Set Rng = .Range("F2:F" & lRiga)

        End With

        Rng.Cells(1).AutoFill Destination:=Rng

    End Sub

    '<<========

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2021-03-12T09:54:32+00:00

    ciao Norman, dopo aver inserito la definizione della variabile, la macro me ne ha segnalate altre le quali, ho provveduto a definire. vorrei approfittare per chiederti, come posso rendere variabile l'ultima cella da considerare presente in queste istruzioni 

        Range("F2").Select

        Selection.AutoFill Destination:=Range("F2:F108")

        Range("F2:F108").Select

    nelle mie elaborazioni la partenza è sempre F2 mentre, il termine non è sempre F108 ma varia di volta in volta.  ho provveduto a determinare l'ultima riga

    With ws1

         lRiga = .Range("A" & .Rows.Count).End(xlUp).Row

    End With                         

    grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2021-03-11T19:26:38+00:00

    ciao a tutti, dopo aver cercato e cercato se il mio problema fosse stato già risolto e, non avendo trovato ho deciso di porre il problema.

    intanto definisco il mio livello poco più che Basic.

    Nel mio file excel ho costruito, anche con il grandissimo aiuto di Daniele_G, una macro che fa determinate operazioni. Terminata la fase di prova e di funzionamento, ho deciso, dopo aver letto un pò di discussioni su questo forum, come si può condividere la macro con altri uteti.

    ho optato per la versione PERSONAL.XLSB. per far ciò ho operato in questo modo:

    1- ho iniziato a registrare un anuova macro

    2- ho interrotto subito la registrazione senza fare nessuna operazione

    3- ho copiato all'interno il contenuto della macro funzionante

    4- ho salvato l amacro scegliendo l'opzione PERSONAL.XLSB.

    rieseguendo la macro compare l'errore su questa istruzione

        Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
        
        With fDialog
            .AllowMultiSelect = False
            .Title = "Seleziona il file da aprire"
            .InitialFileName = ThisWorkbook.Path & "\File Precedente"
            If .Show = -1 Then

               Dim fDialog As FileDialog

    Dim Selezione As Variant
                    fileDaAprire = selezione
                Next
            Else
            MsgBox "Operazione annullata!", vbInformation
            End If
            GoTo Fine
        End With

    eppure quell'errore non è mai comparso prima.

    grazie

    Ciao Antonio,

    Alla cima della tua procedura , incolla la seguente dichiarazione:

    Dim Selezione As Variant

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento