Macro (?) per modifica massiva files

di il
9 risposte

Macro (?) per modifica massiva files

Ciao a tutti !

Chiedo gentilmente a voi se potete aiutarmi con una cosa che vorrei realizzare : in pratica avrei circa 500 moduli , files Excel , in cui dovrei modificare in alcune celle (sempre le stesse) il valore (in pratica sostituire in ogni files i valori attuali con altri valori sempre fissi) . Avevo pensato a una macro per evitare di andare a modificare a manina tutti i files uno per uno (fossero 10 files , ma siccome sono oltre 500) .... Secondo voi è possibile ?

Grazie a chiunque sapra' aiutarmi!!!

9 Risposte

  • Re: Macro (?) per modifica massiva files

    Ciao.
    Hai provato a cercare su goolge?
  • Re: Macro (?) per modifica massiva files

    Ciao Yago,
    questa routine gestisce tutti i files che vuoi. Devi metterli tutti in una cartella e definirne un'altra per spostare quelli lavorato
    R

    
    
    Public Fso As New FileSystemObject
    Dim fromPath 'Cartella dove trovo i Files da lavorare
    Dim toPath 'Cartella dove sposto i files lavorati
    Dim NomeFile 'File in uso nella routine
    Dim codErr As Integer 'Gestione codici errore
    Dim txtErr As String 'Testo errore
    
    
    '*****************************************
    '             Reset Variabili
    '*****************************************
    codErr = 0
    txtErr = ""
    Set Fso = Nothing
    Set fromPath = Nothing
    Set toPath = Nothing
    '*****************************************
    
    'Cerca tutti i file nella cartella
    Set Fso = CreateObject("Scripting.FileSystemObject")
    
    
    Set FromPath = "C:\........\" 'Cartella che contiene i files 
    Set toPath = "C:\........\" 'Cartella dove sposti i files dopo averli lavorati 
    rC = 8
    
    For Each NomeFile In FromPath.Files
    	
    	'Questo sistema lavora i files senza aprirli    
         	Set xlApp = CreateObject("Excel.Application")
        	Set wP = xlApp.Workbooks.Open(NomeFile)
        	Set sP = wP.Sheets("Dati")
        	Set P = wP.Sheets("Dati").Cells
     
                'Qui fai quello che devi su ogni file
                'Gestisci gli errori con la variabile codErr (integer)
    
    
        ' Quando hai finito, se è andato tutto bene sposti il file
        If codErr = 0 Then
            wP.Close SaveChanges:=False/True
            Set P = Nothing
            Set sP = Nothing
            Set wP = Nothing
            Fso.MoveFile fromPath & "\" & NomeFile.Name, toPath & "\" & NomeFile.Name
            Set xlApp = Nothing
        End If
        'Chiusura variabili ' DA VERIFICARE
    
       
    
    If codErr <> 0 Then GoTo gestErrore
        '
        
    Next
    
    Set wP = Nothing
    Set P = Nothing
    Set Fso = Nothing
    Set fromPath = Nothing
    Set toPath = Nothing
    MsgBox "Importazione completa", vbInformation, "Gestione Parco"
    Exit Sub
    
    '**************************************
    '          Gestione Errori
    '**************************************
    
    gestErrore:
    
    On Error Resume Next
    wP.Close SaveChanges:=False
    Set wP = Nothing
    Set P = Nothing
    Set Fso = Nothing
    Set fromPath = Nothing
    Set toPath = Nothing
    
    'Tipo Errore
    If codErr = 1 Then txtErr = "Testo 1"
    If codErr = 2 Then txtErr = Testo 2"
    If codErr = 3 Then txtErr = ""
    If codErr = 4 Then txtErr = ""
    If codErr = 5 Then txtErr = ""
    'If codErr = 6 Then txtErr = "" 
    'If codErr = 7 Then txtErr = ""
    'If codErr = 8 Then txtErr = "" 
    'If codErr = 9 Then txtErr = "" 
    
    
    MsgBox txtErr, vbCritical, "ERRORE"
    
    codErr = 0
    End Sub
    
  • Re: Macro (?) per modifica massiva files

    Puoi automatare facilmente Excel da delphi e credo anche VB.
    o usare scriptoni tipo il precedente.
    per delphi forse 5 minuti in tutto
  • Re: Macro (?) per modifica massiva files

    IlRed ha scritto:


    
        	[CUT]
    	'Questo sistema lavora i files senza aprirli    
         	Set xlApp = CreateObject("Excel.Application")
        	Set wP = xlApp.Workbooks.Open(NomeFile)
        	Set sP = wP.Sheets("Dati")
        	Set P = wP.Sheets("Dati").Cells
        	[CUT]
    
    Scrivere che lavora i file senza aprirli è un eresia!
    Lo sai benissimo che è IMPOSSIBILE.
    Questa non è un opinione, ma un fatto inconfutabile.
    Lo dimostra il fatto che viene usato il metodo Open().

    Cerchiamo di dare le informazioni corrette, soprattutto in un forum.

  • Re: Macro (?) per modifica massiva files

    Diciamo che E' possibile "lavorare i file" senza "aprirli con Excel", ma occorre modificare direttamente il file binario (cosa possibile - sempre con delphi di sicuro e ovviamente con "altro" -), parecchio però più difficile che la solita COM
  • Re: Macro (?) per modifica massiva files

    E dai! +m2+
    Il tuo discorso è COMPLETAMENTE inutile.
    Sempre aprirli bisogna.
  • Re: Macro (?) per modifica massiva files

    Li apre...ma con molta discrezione!!
    Effettivamente è' più corretto dire che li apre in background!
  • Re: Macro (?) per modifica massiva files

    gibra ha scritto:


    E dai! +m2+
    Il tuo discorso è COMPLETAMENTE inutile.
    Sempre aprirli bisogna.
    sarà inutile, ma non vedo alcuna necessità di APRIRLI.
    Forse lo sarà per te.
    O per molti.
    Ma non per tutti
  • Re: Macro (?) per modifica massiva files

    Ok, lasciamo perdere.
    è chiaro che parliamo di due cose diverse.
    Red ha capito perfettamente.
Devi accedere o registrarti per scrivere nel forum
9 risposte