scelta file



  • scelta file
    di stefanmi data: 07/04/2014 23:24:22

    salve, avrei bisogno di correggere questa macro, invece di aprire il file direttamente vorrei scegliere io il file, grazie
     
    Sub Macro3()
    '
    ' Macro3 Macro
    '
    
    '
        Range(Selection, Selection.End(xlDown)).Select
        Selection.ClearContents
        Workbooks.Open Filename:= _
            "C:UsersstefanoDocumentsMy Dropboxdativenditaarticoli.xls"
        Range("A2:E2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        ActiveWindow.WindowState = xlMinimized
        ActiveWindow.WindowState = xlMaximized
        Range("A2").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Range("A1").Select
    End Sub



  • di Raffaele_53 (utente non iscritto) data: 08/04/2014 01:32:26

    C:Temp è solo un'esempio.. della cartella da aprire (puoi anche mettere C:)
     
    Shell "explorer.exe" & " " & "C:	emp", vbNormalFocus



  • di lepat (utente non iscritto) data: 08/04/2014 05:07:34

    prova così
     
    Sub Opendialog()
    Dim strFile As String, strPath As String
        With Application.FileDialog(msoFileDialogOpen)
            .InitialFileName = "C:UsersstefanoDocumentsMy Dropboxdativendita*.xls*"
            .Title = "Seleziona il File"
            .AllowMultiSelect = False
            .Show
            If .SelectedItems.Count = 0 Then Exit Sub   
            strFile = .SelectedItems(1)
        End With
        Set mybook = Workbooks.Open(strFile)
    '   <<< qui il tuo codice
    End Sub
    



  • di stefanmi data: 08/04/2014 09:10:45

    grazie
    un'ultima cosa per chiudere il file aperto "articoli"?
    e poi magari snellirlo un pochino



  • di Lucas87 data: 08/04/2014 09:17:33

    In generale

    Workbooks("nome_file").Close savechanges:=False 'non salva

    in questo caso

    mybook .Close savechanges:=False 'non salva



  • di stefanmi data: 08/04/2014 13:13:29

    scusa, ho messo untasto in un altro foglio e ho dovuto cambiare macro, mi puoi mettere il codice per scegliere il file e poi eliminare la cartella che ho copiato, grazie
     
    Sub Macro2()
    '
    ' Macro2 Macro
    '
    
    '
        Sheets("articoli").Select
        Range("A2:E2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.ClearContents
        Workbooks.Open Filename:= _
            "C:UsersstefanoDocumentsMy Dropboxdativenditaarticoli.xls"
        Range("A2:E2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Windows("magazzino.xlsm").Activate
        Range("A2").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Sheets("magazzino").Select
        Range("I1").Select
       
      
        
    End Sub



  • di lepat (utente non iscritto) data: 08/04/2014 16:59:53

    eccolo
     
    Sub Macro2()
        Sheets("articoli").Select
        Range("A2:E2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.ClearContents
        With Application.FileDialog(msoFileDialogOpen)
            .InitialFileName = "C:UsersstefanoDocumentsMy Dropboxdativendita*.xls*"
            .Title = "Seleziona il File"
            .AllowMultiSelect = False
            .Show
            If .SelectedItems.Count = 0 Then Exit Sub   
            strFile = .SelectedItems(1)
        End With
        Set mybook = Workbooks.Open(strFile)
        Range("A2:E2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        mybook .Close savechanges:=False
        Windows("magazzino.xlsm").Activate
        Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Sheets("magazzino").Select
        Range("I1").Select
    End Sub



  • di stefanmi data: 08/04/2014 21:05:37

    mi scrive in rosso questa riga
    mybook .Close savechanges:=False



  • di Vecchio Frac data: 08/04/2014 21:38:40

    Non mettere spazi tra il nome dell'oggetto di tipo Workbook e il metodo che lo chiude.
     
    mybook.Close savechanges:=False    '<<< tutto unito mybook.Close!






  • di stefanmi data: 08/04/2014 21:52:34

    grazie, adesso funziona ma c'e' un piccolo problema non mi copia i dati nel foglio articoli se invece salto quella riga funziona



  • di Vecchio Frac data: 08/04/2014 22:05:10

    Mmmmh, ma secondo te cosa fa quell'istruzione?





  • di stefanmi data: 08/04/2014 22:26:59

    dovrebbe eliminarmi il foglio con i dati copiati, ma in quella posizione li cancella e dopo non puo' copiarli, esatto?



  • di lepat (utente non iscritto) data: 08/04/2014 22:58:52

    puoi spostare la riga
    mybook.Close savechanges:=False
    anche in fondo, prima di end sub



  • di Grograman (utente non iscritto) data: 09/04/2014 09:31:00

    Ho seri dubbi sulla funzionalità di quel codice in assenza di variabili e paternità degli oggetti



  • di stefanmi data: 09/04/2014 09:39:07

    per funzionare funziona, però se hai qualche suggerimento ben venga



  • di Grograman (utente non iscritto) data: 09/04/2014 09:58:52

    Bhè al solito, dichiarare le variabili innanzitutto, poi visto che si parla di spostare dati da un file all'altro, usare le variabili oggetto adeguate e dare quindi le paternità a fogli e workbooks.
    Cosa succede se qualcuno ha aperto, selezionato un foglio vuoto, e salvato il file che tu bersagli con la ricerca ad esempio?

    Una rivisitata, ma non l'ho provato!
     
    Option Explicit
    Sub Macro2()
      Dim wbFrom As Workbook, wbTo As Workbook
      Dim wsF As Worksheet, wsT As Worksheet
      Dim x As Long
      Dim strFile As String
         
      With Application.FileDialog(msoFileDialogOpen)
        .InitialFileName = "C:UsersstefanoDocumentsMy Dropboxdativendita*.xls*"
        .Title = "Seleziona il File"
        .AllowMultiSelect = False
        .Show
        If .SelectedItems.Count = 0 Then Exit Sub
        strFile = .SelectedItems(1)
      End With
      
      If strFile = "" Then GoTo Uscita
      Set wbTo = ThisWorkbook
      Set wsT = wbTo.Worksheets("articoli")
      Set wbFrom = Application.Workbooks.Open(strFile)
      Set wsF = wbFrom.Worksheets("ilfogliodacuicopiare")
      
      With wsT
        x = .Range("A" & .Rows.Count).End(xlUp).Row
        .Range("A2:E" & x).ClearContents
      End With
      
      With wsF
        x = .Range("A" & .Rows.Count).End(xlUp).Row
        .Range("A2:E" & x).Copy wsT.Range("A2")
        wsT.Range("A2:E" & x) = wsT.Range("A2:E" & x).Value
        .Parent.Close vbNo
      End With
      
      Set wbTo = Nothing
      Set wsT = Nothing
      Set wbFrom = Nothing
      Set wsF = Nothing
    Uscita:
    End Sub



  • di stefanmi data: 09/04/2014 13:01:19

    mi da errore su questa riga
    Set wsF = wbFrom.Worksheets("ilfogliodacuicopiare")



  • di stefanmi data: 09/04/2014 13:03:29

    e non ha sempre lo stesso nome



  • di Grograman (utente non iscritto) data: 09/04/2014 13:06:21

    Basta mettergli il numero del foglio
     
    Set wsF = wbFrom.Worksheets(1) 'o numero del foglio da cui copiare
    



  • di stefanmi data: 09/04/2014 13:10:39

    con il nome del foglio funziona, ma come ripeto ogni giorno ha un nome diverso il file



  • di Grograman (utente non iscritto) data: 09/04/2014 13:17:11

    Bhè quello mi sembrava assodato, se no perchè diremmo:
     
      Set wbFrom = Application.Workbooks.Open(strFile)
      Set wsF = wbFrom.Worksheets("ilfogliodacuicopiare")
    
    



  • di stefanmi data: 09/04/2014 13:34:28

    perfetto, grazie



  • di stefanmi data: 09/04/2014 13:42:51

    scisa non avevo letto il msg delle 13.06



  • di stefanmi data: 09/04/2014 14:25:09

    mi si è presentato un problema però
    aggiornando solo le colonne da A a F nelle colonne G H I J ci sono delle formule che vanno a popolare una pivot e cambiando dati in meno rispetto al giorno prima solo quelle dalla A alla F rimangono i dati anche in righe dove non ci sono dati



  • di stefanmi data: 09/04/2014 14:46:11

    spero di essere stato chiaro



  • di stefanmi data: 10/04/2014 09:20:22

    c'e' qualcuno che puo' aiutarmi?